2021年9月4日土曜日

学び直しのPython 1日目 UARTでArudinoと通信

 今日からPythonの学び直しをすることにしました。

成果:

1)UARTでArduino(Teensy3.6だけど、、)とUARTで通信できるようになりました。

①WindowsからArduinoのLEDをON/OFF

<Windows>

import serial
import time
 
ser = serial.Serial('com3'baudrate=115200parity=serial.PARITY_NONE)

for i in range(10):
        ser.write(b'a')
        print("LED ON")
        time.sleep(0.5)
        ser.write(b'0')
        print("LED OFF")
        time.sleep(0.5)

ser.close()
print("bbb")

<Arduino>

byte val=0;

#define LED_PIN 13

void setup() { 

   pinMode(LED_PIN, OUTPUT); 

   Serial.begin(115200);

}

void loop() {

   if(Serial.available() > 0){ 

      val = Serial.read();

   }

   if(val == 'a') digitalWrite(LED_PIN, HIGH);

   else if(val == '0') digitalWrite(LED_PIN, LOW);

}

// https://shizenkarasuzon.hatenablog.com/entry/2019/03/04/004048

// TeensyのLEDが a で点灯 0 で消灯 プログラム

②ArduinoからWindowsへデータ送信

<Windows>

import serial
ser = serial.Serial('COM3'115200)
while True:
    String_data = ser.readline()
    print(String_data.strip().decode('utf-8'))
ser.close()

<Arduino>

void setup(){

  Serial.begin(115200);

  pinMode(13, OUTPUT);

}

void loop(){

  Serial.println("LED ON");

  digitalWrite(13, HIGH);

  delay(500);

  Serial.println("LED OFF");

  digitalWrite(13, LOW);

  delay(500); 

}

③その他Topics

3-1 PythonでStripを身に着けた。

これは使える。

data1 = "123.4 5423.2 162.10 1.0 0.9 20.3 0.01"
split_data = data1.split(" ")
print (split_data)
data1="123.0,456.5,0.8,1.0,9"
split_data = data1.split(",")
print (split_data[0])
add_0 = float(split_data[0]) + float(split_data[1])
print (add_0

3-2 Arduionのコメントは// Cと一緒

0 件のコメント:

コメントを投稿