ひとまずコンソールからモータを動かせるようなプログラムを作ってみた。
あとはrubyのruby-serialportあたりを利用してコマンドを送ってもいいし、もっと単純にコマンドラインから
int pin[4] = {8,9,10,11}; int incomingByte = 0; int STEPWAIT = 50; void setup(){ Serial.begin(9600); for(int i=0;i < 4;i++){ pinMode(pin[i], OUTPUT); } } void loop(){ //入力があったら対応 if (Serial.available() > 0) { incomingByte = Serial.read(); switch(incomingByte){ case 'r': turnRight(10); break; case 'l': turnLeft(10); break; } } delay(100); } /** 右回転 */ void turnRight(int count){ for(int i=0; i< count;i++){ for(int j=0;j<4;j++){ int pre = j-1; int next = j+1; if(pre < 0){ pre = 3; } if(next > 3){ next = 0; } digitalWrite(pin[pre], LOW); digitalWrite(pin[j], HIGH); digitalWrite(pin[next], HIGH); delay(STEPWAIT); } } pinOff(); } /** 左回転 */ void turnLeft(int count){ for(int i=0; i < count;i++){ for(int j=3;j>=0;j--){ int pre = j+1; int next = j-1; if(pre > 3){ pre = 0; } if(next < 0){ next = 3; } digitalWrite(pin[pre], LOW); digitalWrite(pin[j], HIGH); digitalWrite(pin[next], HIGH); delay(STEPWAIT); } } pinOff(); } /** オフ */ void pinOff(){ for(int i=0;i<4;i++){ digitalWrite(pin[i], LOW); } }
$ echo llrl > /dev/ttyUSB1こんな感じのコマンドを送るだけでも動作する。
あとは電子の付かない純粋な工作と、Webから操作できるように適当なページとCGIの作成で、
まあそれはどうとでもできるでしょ。
No comments:
Post a Comment