今日からPythonの学び直しをすることにしました。
成果:
1)UARTでArduino(Teensy3.6だけど、、)とUARTで通信できるようになりました。
①WindowsからArduinoのLEDをON/OFF
<Windows>
import serial
import time
ser = serial.Serial('com3', baudrate=115200, parity=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と一緒