誰でも簡単にアレできると評判のArduinoですが、Leonardoになってキーボードとマウスのエミュレーション機能がついたので超簡単にこういうことができます。
ペイントソフト側からは普通にマウス動かして絵を描いているように見えている。のでマウスでカーソル移動できてクリックで描画するソフトなら何でも使える。
この機能使えばなんとか専用コントローラみたいなやつ作り放題なので超いい感じですね。
なんか描画中はLED光らせようとした形跡がブレッドボード上にもコード上にもあるんだけどGNDが繋がっていなくて光ってない、しかし製作途中の段階でそもそも光らせようとしていたこと自体忘れているので不具合に全く気づいていないまま動画をアップしている。
拙いコードですがご参考まで
void setup() { pinMode(12, INPUT_PULLUP); pinMode(10, OUTPUT); Mouse.begin(); } void loop() { int bodyXArray[] = {1,1,1,1,1,1,0,1,0,1,1,1,1,1,0,1,0,0,0,0,0,0,-1,0,-1,0,0,1,1,0,0,-1,-1,-1,-1,-1,-1,0,0,0,0,1,0,1,1,-1,-1,-1,-1, 0,-1, 0,-1, 0,-1,-1,-1,0,0,0,-1, 0,-1,-1,-1,-1, 0, 0, 0, 0, 0, 1, 0,-1,-1,0,-1,-1,-1, 0, 0, 1, 1, 0, 1,-1,-1,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0,-1,-1,-1,-1,-1, 0, 0, 1, 1,1,1,1,1,1,1,0,1,0,1, 1,1, 1, 0, 0,-1, 0,-1, 0, 1}; int bodyYArray[] = {0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1, 1,1,1,1,1,1,1, 1, 0,-1, 0, 0, 1,1,1,1,1,1,1,1,1, 1, 0, 0, 0,-1, 0,-1, 0,-1,-1, 0, 0,1,1,1, 1, 1, 0, 0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 1,1, 1,-1, 0,-1,-1,-1,-1,-1,-1, 1, 0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,1,1,1,1,1,1,1,0,-1,0,-1,-1,-1,-1,-1,-1,-1,-1}; int face1XArray[] = { 1,1,1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,0,1,1,1,1,1,1,1,1,1,1,1,1, 1, 1, 1, 0, 0, 0,-1,-1,-1,-1}; int face1YArray[] = {-1,0,1, 1, 0,-1, 0, 0, 0,1, 0, 1, 1, 1, 1,1,1,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0}; int face2XArray[] = {0}; int face2YArray[] = {1}; int face3XArray[] = {-1,-1,-1}; int face3YArray[] = { 0, 0, 1}; int face4XArray[] = {-1, 0,1,0}; int face4YArray[] = { 0,-1,0,1}; int bodyToFace1[] = {2,11}; int face1to2[] = {0,3}; int face2to3[] = {-1,2}; int face3to4[] = {0,-3}; int d = 3; d = analogRead(0) / 150 + 3; if(!digitalRead(12)) { digitalWrite(10, HIGH); draw(bodyXArray, bodyYArray, sizeof(bodyXArray) / sizeof(bodyXArray[0]), d); move(bodyToFace1[0], bodyToFace1[1], d); draw(face1XArray, face1YArray, sizeof(face1XArray) / sizeof(face1XArray[0]),d); move(face1to2[0], face1to2[1], d); draw(face2XArray, face2YArray, sizeof(face2XArray) / sizeof(face2XArray[0]),d); move(face2to3[0], face2to3[1], d); draw(face3XArray, face3YArray, sizeof(face3XArray) / sizeof(face3XArray[0]),d); move(face3to4[0], face3to4[1], d); draw(face4XArray, face4YArray, sizeof(face4XArray) / sizeof(face4XArray[0]),d); move(-100, face3to4[1], d); delay(1000); digitalWrite(10, LOW); } } void draw(int arrayX[], int arrayY[], int s, int d) { Mouse.press(); for(int i = 0; i < s ; i++){ Mouse.move(arrayX[i] * d, arrayY[i] * d, 0); delay(30); } Mouse.release(); } void move(int x, int y, int d){ int step; if(x > 0){ step = 1; } else { step = -1; } for(int i = 0; i < abs(x); i++){ Mouse.move(d * step, 0, 0); delay(30); } if(y > 0){ step = 1; } else { step = -1; } for(int i = 0; i < abs(y); i++){ Mouse.move(0, d * step, 0); delay(30); } }
あとパッケージが今まで見たおしゃれコンドーム以外の商品の中で一番おしゃれコンドームっぽい。
- 出版社/メーカー: GHEO SA
- メディア: エレクトロニクス
- この商品を含むブログを見る
- 出版社/メーカー: オカモト
- メディア: ヘルスケア&ケア用品
- 購入: 9人 クリック: 14回
- この商品を含むブログを見る