複数センサーを付けるのも必要なんですが、
そろそろArduinoで取得している情報をPCとかで使えるようにしたいので、
今回はシリアル通信です。
ArduinoだとSerial.print~とかで書いている時点で
それはシリアルで出力しているようなので、
これをPC側とかで取得できればいいのですかね?
受信側はPythonでとりあえず実験。
まあ、シリアル通信が取得できるなら何でもできそうだけどね。
Arduino側は今回は何も接続なし、
USBでPCから繋がっているだけです。
int gNumber = 0;
void setup()
{
Serial.begin( 9600 );
}
void loop()
{
Serial.print( "Hello World From Arduino... " );
Serial.println( (gNumber++) );
delay( 200 );
}
とりあえず、これでArduinoがつながっているシリアルポートから
ボー・レート9600でシリアル通信が行われるようになります。
(ボー・レートって何なんでしょうね…)
んで、今度はPythonです。
あんまり書いたことがないのでちょっと怪しめ。
serialのライブラリはインストールが必要
python -m pip install pyserial
これでインストールできるはず。
ちなみにpython2.7です。3系はちょっと違うとか…。
今回はCOM5のシリアルポートにつないでいますので、このような感じ。
#coding utf-8
import serial
import re
def main():
with serial.Serial( 'COM5', 9600, timeout=1 ) as ser:
while True:
c = ser.readline()
print( c )
ser.close()
if __name__=="__main__":
main()
最後にArduinoをUSBでPCにつないで、
Pythonのコードを実行します。
成功していればArduinoから信号が来るはず。
よし!
後はこのシリアル通信で送る情報を
センサーで取得した温度であったり、角度であったりすれば使える…かな?
0 件のコメント:
コメントを投稿