なんかいろいろこんぴゅーたかんけいのなぐりがき

なんか勉強しているこんぴゅーた関係のことのメモやそれ以外のことを書こうかなあ...

logs

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Arduinoとのシリアル通信をpythonで制御

Ardiuinoを制御するためにシリアル通信を使うのだが、そのときに使う言語としてお勧めされているのがProccesingでありpythonではないわけだが、pythonでやってみたかったのでpyserialというpythonモジュールをインストールして、Windows Vista で Arduinoを制御してみた。


//Arduino側のプログラム

byte val=0;
int red = 13;
int green = 12;
int blue = 9;



void setup() {
// initialize the digital pin as an output:
pinMode(red, OUTPUT);
pinMode(green, OUTPUT);
pinMode(blue, OUTPUT);
Serial.begin(9600);
}


void loop()
{
if(Serial.available() > 0)
{

val = Serial.read();
Serial.print(val); //for debug

if(val == '3')
{
digitalWrite(red,HIGH);
digitalWrite(green,LOW);
digitalWrite(blue,LOW);
delay(1000);
}
else if(val == '2')
{
digitalWrite(red,LOW);
digitalWrite(green,HIGH);
digitalWrite(blue,LOW);
delay(1000);
}
else if(val == '1'){
digitalWrite(red,LOW);
digitalWrite(green,LOW);
digitalWrite(blue,HIGH);
delay(1000);
}
else if(val == '0')
{
digitalWrite(red,LOW);
digitalWrite(green,LOW);
digitalWrite(blue,LOW);
delay(1000);
}

}

}

回路には赤、青、緑のLEDを1つずつ用いてそれぞれ13,9,12ピンと繋いで、おき、もう片方の足はグランドにつないでおく。それで送られてきた数字(実際には文字コード?)に応じて点灯するLEDの色を変える。

#次はpython(PC)側のコード
import serial

ser = serial.Serial(3)
print ser.portstr
ser.write(1)

短いがこれで一応Arduinoに1を渡せる。Serial()の引数はArduinoの繋がっているCOMポートによって変わるので、適宜変更しないといけない、けど適当に1から数字いれてけばいつか当たる。

本当はCPU使用率に応じてLEDの色を変えるみたいなことをしたかったがCPU使用率を取得する方法が少しややこしいので本日はここまで
スポンサーサイト

トラックバックURL

http://ilovevim.blog42.fc2.com/tb.php/40-ceb53d83

この記事へのトラックバック

この記事へのコメント

コメント投稿フォーム

Paging Navigation

Navigations, etc.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。