1
6

筝�罩���茵���DIY鐚�Python��Arduino�т������鴻�帥��LED�潟�潟���㏍�若���激�鴻����

��腟��贋�井�� ��腮炊�� 2024綛�01��25��

��������

�����篋��с����Python��篏睡������Arduino��GPIO���潟�����阪����茵����号�������������顄������障����

������������

������������Python��GUI���帥�潟��������������������Arduino���若�������� ���寂拭�激���������劫������潟����High�������5V�障����3.3V鐚���拭�激���阪�������������с��������拭�激��LED���������荀�����∈茯����障���� Python��PC筝��у�茵�����Arduino��USB�宴�若������������PC��・膓������障����

綽�荀�������

  1. Arduino���若�� (箴�鐚�Arduino Uno)
  2. LED ���究��
  3. USB�宴�若���� (Arduino��PC��・膓�)
  4. Arduino IDE (Arduino���㏍�違�������吾�����)
  5. Python (Python�婣����������絎�茵���������)
  6. PySerial���ゃ������ (Python�����激���≪����篆<��茵�������)

Arduino �鴻�宴���������

Arduino IDE���������違�����鴻�宴������篏������障����

  1. �������若��������������絎����������潟��HIGH��┃絎������潟�若�����吾���障����
  2. 箴����違������13��LED���ョ����������翫����札筝��������������障����
  3. �鴻�宴������Arduino���若�����≪�����㏍�若�����障����
void setup() {
  pinMode(13, OUTPUT); // ����13���阪���≪�若����┃絎�
  Serial.begin(9600);  // �激���≪����篆<����紮�
}

void loop() {
  if (Serial.available() > 0) { // �激���≪�����若���с���若�帥��������純�����с����
    char data = Serial.read(); // ���若�帥��茯㏍�粋昭��
    if (data == '1') {
      digitalWrite(13, HIGH); // ����13��HIGH��┃絎�
    } else if (data == '0') {
      digitalWrite(13, LOW); // ����13��LOW��┃絎�
    }
  }
}

Python�鴻�������������

1. �堺���潟�若��

  1. Python�鴻����������篏�������PySerial��篏帥�c��Arduino����篆<���障����
  2. 篁ヤ���Python�鴻�����������堺��������с����
import serial
import time

# �激���≪�����若����┃絎�鐚����若�������医������c���違����鐚�
ser = serial.Serial('COM3', 9600) # Windows���翫��
# ser = serial.Serial('/dev/ttyACM0', 9600) # Linux���翫��
# ser = serial.Serial('/dev/tty.usbmodem14201', 9600) # macOS���翫��

time.sleep(2) # Arduino����・膓���絎�絎������障�у�罘�

# LED���合��
ser.write(b'1')

time.sleep(10) # 10腱����合��

# LED��羔���
ser.write(b'0')

ser.close() # �激���≪�����若����������


羈����

  1. �垩���≪�����若��: Arduino IDE�����若���<���ャ�若�т戎�����������激���≪�����若����腆肴�����Python�鴻����������serial.Serial�ф��絎��������若����������Ή���������
  2. ��鋓♂��綺�: Arduino�鴻�宴������Python�鴻����������検�鴻�у�������若���若��鐚�������с��9600鐚���荐㊤��������������
  3. ������絎���: Python�鴻����������Arduino����・膓�緇���絨���緇�罘����������ч��篆<��絎�絎����障����
    �����с��Python����Arduino���������若��������LED���九勝�����激�鴻������絎������障����

2. GUI�潟�若��

Tkinter��篏帥�c��GUI���帥�潟��篏��������������帥�潟���若����Arduino腟��宴��LED��10腱����合������Python�鴻����������篏������障����篁ヤ��������堺�������潟�若���с����

import tkinter as tk
import serial
import time

def toggle_led():
    ser.write(b'1')  # LED���合��
    window.after(10000, lambda: ser.write(b'0'))  # 10腱�緇���LED��羔���

# �激���≪�����若����┃絎�鐚��医�����������紊��器�
ser = serial.Serial('COM3', 9600)  # Windows���翫��
# ser = serial.Serial('/dev/ttyACM0', 9600) # Linux���翫��
# ser = serial.Serial('/dev/tty.usbmodem14201', 9600) # macOS���翫��

time.sleep(2)  # Arduino����・膓���絎�絎������障�у�罘�

# Tkinter���c�潟���������
window = tk.Tk()
window.title("LED Control")

# ���帥�潟�����
button = tk.Button(window, text="LED���合��", command=toggle_led)
button.pack(pady=20)

# ���c�潟�������<�ゃ�潟���若��
window.mainloop()

# ���c�潟���������������激���≪�����若����������
ser.close()

絎�茵�腟���

篁ヤ����糸���GIF����筝�荐����鴻����������絎�茵��������������腓冴�������障����Python��������GUI����Arduino���若���吾���������守��篆<��������LED���合���������罩e幻��������������腆肴��с���障����

image.png

ezgif-7-bd0025f62f.gif

1
6
0

�域��脂�蚊���������c��梢����Qiita��篏帥�c���帥����

  1. ������������������荐�篋�����絮������障��
  2. 箴水�������宴�������у�合�������粋����障��
  3. ���若�����若���������с���障��
�㏍�違�ゃ�潟������戎����罘��純���ゃ����

�潟�<�潟��

�����篋����潟�<�潟���������障������

�����℡札筝�������<���潟�<�潟����

1
6