Arduino Uno��Python3�ч��篆<�����号�

Mac / PC ��Arduino Uno����篆<�������号��с��鐚�������������宴��������筝����������障����鐚������с��膣剛����������障��鐚�

Arduino�眼����PC��

Serial��篏帥�c��Arduino����絖������阪����鐚�Python�眼��������茯㏍�水����障��鐚�

Arduino��

void setup() {
  Serial.begin(9600);
}

int data = 0;
void loop() {
  data++;
  Serial.println(data); 
  delay(1000);
}

�潟�潟���ゃ�������激���≪���≪���帥�ц;腓冴��������札筝����������医���紜���������茵�ず�����障��鐚�

1
2
3
4
5
6

PC / Mac

�障��python3���医���pyserial���ゃ�潟�鴻���若�����障��鐚�

$ pip3 install pyserial

Windows���c������膣��� pip install pyyaml

�潟�若����札筝��������с��鐚�

import serial

ser = serial.Serial('/dev/cu.usbmodem1101', 9600,timeout=None)
while True:
    line = ser.readline() # �����т�茵����若�帥����緇�������byte��
    stripped_str = str(line, 'ascii').strip() # byte������絖��������������緇�����醇�壕��ゅサ
    data = int(stripped_str) # ��絖������医�ゃ��В�����眼��
    print(data)

/dev/cu.usbmodem1101��������������arduino���ゃ�����c���������若����������鐚�Win����COM1����鐚�Arduino���激���≪���≪���帥���ゃ�����c���������с���障����鐚�

���������ゃ�潟��������若�帥������������絖�����������������������������鐚�python�眼�цВ���������若�帥������������������с��鐚���絖������障�障�с����羝�箙��ゃ���������膊���筝��純�����ф�医�ゃ��В������������綽�荀��с��鐚�

������������若�帥����������

AD�潟�潟���若�睡����������鋎帥�c�����若�帥�������翫����札筝�������

Arduino��

�潟�潟���у�阪���c���茵��������������若�帥�����鴻�������障��鐚�

void setup() {
  Serial.begin(9600);
}

void loop() {
  int data1 = analogRead(A1);
  int data2 = analogRead(A2);
  int data3 = analogRead(A3);
  int data4 = analogRead(A4);
  Serial.print(data1);
  Serial.print(',');
  Serial.print(data2);
  Serial.print(',');
  Serial.print(data3);
  Serial.print(',');
  Serial.println(data4);
  delay(1000);
}

�激���≪���≪���帥�х∈茯�������札筝���������;腓冴�с��鐚�

311,301,292,305
364,336,316,315
287,283,278,286
274,274,272,275

Python��

import serial

ser = serial.Serial('/dev/cu.usbmodem1101', 9600,timeout=None)
while True:
    line = ser.readline()
    stripped_str = str(line, 'ascii').strip()
    datas = [int(d) for d in stripped_str.split(',')]
    print(datas)

���ゃ�潟���������� [int(d) for d in stripped_str.split(',')]�������с�� �㍼����������鴻������茵����篏帥�c��stripped_str.split(��,��)�ц��c���������鴻�������若�帥��弘��菴����������������鴻��������������� ��鐚�������������с���� ��,���у�阪��������������絖�������,���у���蚊�������¥�������筝��や��ゃ�������int()�∽�違��篏帥�c���医�ゃ��В����鐚�����������������鴻�������� datas��撮�ャ���障���������������с����鐚��阪����札筝��������������障��鐚�

[365, 337, 317, 291]
[270, 272, 271, 267]
[260, 264, 265, 260]
[258, 263, 265, 258]
[257, 262, 264, 257]
[257, 262, 264, 257]
[365, 337, 317, 291]

PC����Arduino��

���������障���c������������������ON��OFF����絖������������������障��鐚�

Python��

import time
import serial

ser = serial.Serial('/dev/cu.usbmodem1101', 9600,timeout=None)
while True:
    ser.write('ON\n'.encode())
    time.sleep(1.0)
    ser.write('OFF\n'.encode())
    time.sleep(1.0)

Arduino��

���<������絖�����ON���c����鐚�OFF���c�����祉�祉�祉������������荐�菴違���障��鐚�

void setup() {
  // put your setup code here, to run once:
  pinMode(13, OUTPUT);
  digitalWrite(13, HIGH);
  Serial.begin(9600);
  Serial.setTimeout(3000); /// 3 sec
}

void loop() {
  // put your main code here, to run repeatedly:
  String message = Serial.readStringUntil('\n');
  message.trim();
  if (message == "ON") {
    digitalWrite(13, HIGH);
  } else if (message == "OFF") {
    digitalWrite(13, LOW);
  }
}

ON����絖������c����Arduino�堺�推���LED (Pin 13) ���蚊����鐚�OFF����羔�����鐚������������с��鐚���絖�����紜������違�������������������障��鐚�

����篆<��腟<�障���������������с�����障����

�����������PC�����c����Arduino��菴���鐚�������������膵違��菴��������с��鐚���������������������������������障��鐚��堺�����������������с���������с�����������������帥�����������

����篁ヤ�������鐚���������PC����������Ή��Arduino�����若�帥��������������������������若�帥�������Arduino��������茵����c���祉�� ��鐚��������羆��������翫�������������Serial.available()�∽�違������篏帥���障��鐚�����篁ヤ������莨若�帥���������������с����昇�э�