ニンテンドー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-さらにシンプルな接続オプション



All Articles