ニンテンドーDSとArduinoタッチスクリーン

突然、ニンテンドーDSに小さなタッチスクリーンを注文し、それをArduinoに接続したかったのです。
タッチスクリーンnds


問題


最初の問題は接続方法です。コネクタがないため、どこからでも取り出すことができず、購入するのに費用がかかります(約4〜5ドル、画面価格2〜3ドル)。 そのため、メス、刃、または小さなハサミを用意し、ケーブルを慎重に切断します。その後、ワイヤをはんだ付けするのは非常に簡単です。主なことは、たとえばこれを行うことによって、絶縁す​​ることです。
タッチスクリーンnds


接続とプログラミング


Arduinoフォーラムからの無料翻訳:
ケーブルが右下になるように画面を見ると、連絡先は次の順序で移動します。
TOP | LEFT | BOTTOM | RIGHT

Arduinoに接続する

LEFT 2
BOTTOM 3
RIGHT 4
TOP 5

2つの配線をアナログ入力に接続します:
TOP 3 ( 5)
RIGHT 4 ( 4)

タッチスクリーンNDS Arduino


スケッチ

ロビンホイットフィールドとマルコニコラトの修正コード(タッチスクリーンコード自体)
#define Lo 2 // LEFT 2
#define Bo 3 // BOTTOM 3
#define Ro 4 // RIGHT 4
#define To 5 // TOP 5

#define Ti 3 // TOP 3 ( 5)
#define Ri 4 // RIGHT 4 ( 4)

//
int touchX = 0;
int touchY = 0;

void setup() {
Serial.begin(9600);
}

void loop() {
if (touched()) {
// /
Serial.print(touchX);
Serial.print(",");
Serial.print(touchY);
Serial.println();
delay(100);
}
}

boolean touched() {
boolean touch = false;
pinMode(Lo, OUTPUT);
digitalWrite(Lo, LOW);
pinMode(Ro, OUTPUT);
digitalWrite(Ro, HIGH);
pinMode(To, INPUT);
pinMode(Bo, INPUT);
delay(10);
touchX = analogRead(Ti);
pinMode(Bo, OUTPUT);
digitalWrite(Bo, LOW);
pinMode(To, OUTPUT);
digitalWrite(To, HIGH);
pinMode(Ro, INPUT);
pinMode(Lo, INPUT);
delay(10);
touchY = analogRead(Ri);
if(touchX < 1000 and touchX > 0 and touchY < 1000 and touchY > 0)
touch = true;
return touch;
}

まとめ


その結果、起動後、クリックポイントの座標はコンソール/ターミナル/ your_processorに落ち、エラーは+ -2ポイント、両方の軸で100から900の値ですが、明らかにスクリーンのモデル、0から1000および200から500

UPD: tronixstuff.wordpress.com/2010/12/29/tutorial-arduino-and-the-ds-touch-screen-さらにシンプルな接続オプション

Source: https://habr.com/ru/post/J108972/


All Articles