เขียน Python ควบคุม Arduino

Python มีการใช้กันอย่างแพร่หลายในด้านการศึกษาและการเรียนรู้ Machine Learning และความสามารถ หลายๆอย่าง เช่น คุณสามารถใช้ควบคุมบอร์ด Arduino. ใช่แน่นอนคุณสามารถใช้ภาษาการเขียนโปรแกรม Python เพื่อสร้างโปรแกรมของคุณเพื่อควบคุม Arduino ได้โดยไม่มีปัญหาและด้วยวิธีง่ายๆ เราจะมาอธิบายวิธีการทำทีละขั้นตอน

รายการอุปกรณ์


ขั้นตอนการทํางาน

1 : โปรแกรมแรก กับ Arduino Keyestudio PLUS


สวัสดีชาวโลก (Hello World) คือ คำง่าย ๆ สำหรับการเขียนโปรแกรมแรกของโปรแกรมเมอร์ เป็นโปรแกรมคอมพิวเตอร์พื้นฐานที่ทำการแสดงผลคำว่า “Hello world” บนอุปกรณ์แสดงผล ซึ่งเป็นหนึ่งในโปรแกรมที่ง่ายที่สุดเท่าที่จะเป็นไปได้ในการเขียนภาษาโปรแกรมต่างๆ ตามขั้นตอนลิงค์ด้านล่าง


2 : อัพโหลดโค้ด เพื่อรอคำสั่งจาก Python



อัพโหลดโค้ด ด้านล่างไปยังบอร์ด Arduino UNO R3 รุ่น Keyestudio PLUS

void setup() {
  
  Serial.begin(9600);
  pinMode(13, OUTPUT);

}

void loop() {
  
  String readString;
  String Q;

  while (Serial.available()) {
    delay(1);
    if (Serial.available() > 0) {
      char c = Serial.read();
      if (isControl(c)) {
        break;
      }
      readString += c;
    }

    Q = readString;

    if (Q == "LED13-ON") {
      digitalWrite(13, HIGH);
    }

    if (Q == "LED13-OFF") {
      digitalWrite(13, LOW);
    }

  }
}



3: โปรแกรมแรก Python กับ PyCharm บน Windows 10


ติดตั้ง Python เวอร์ชั่น 3.7.6 ลงบน Windows และ ติดตั้งโปรแกรม PyCharm การเพิ่มแพคเก็จ ตามขั้นตอนลิงค์ด้านล่าง


4: เพิ่มแพคเก็จ pySerial เข้าไปที่ โปรแกรม PyCharm


โมดูล pySerial ทำหน้าที่เป็นตัวคอยเชื่อมโยง Python ให้สามารถส่งข้อมูลออกทางพอร์ตอนุกรม (serial port) ของคอมพิวเตอร์ได้ โดยใช้โมดูล PySerial นี้รันเป็นแบล๊กกราวด์ของโปรแกรม

เพิ่มแพคเก็จ pySerial โดยไปที่ File -> Settings… -> Python Interpreter -> คลิกเครื่องหมาย +


ทีช่องค้นหา พิมพ์ pyserial -> คลิกที่ pyserial -> Install Package


แสดงการติดตั้งสำเร็จ แล้วปิดหน้าต่างลงไป


แสดง แพคเก็จ pyserial ที่เพิ่มเข้ามา -> OK


สร้างไฟล์ Python โดยคลิกขวาที่โฟลเดอร์ venv -> New -> Python File ชื่อ test-arduino



เขียนโค้ดดังนี้

import serial
import time

ser = serial.Serial("COM3", 9600)
while True:
    input_value = "LED13-ON"
    print(input_value)
    ser.write(input_value.encode())
    time.sleep(2)

    input_value = "LED13-OFF"
    print(input_value)
    ser.write(input_value.encode())
    time.sleep(2)


โดยโค้ด “COM3” แก้ไขตามข้อมูล Ports (COM & LPT) ของคอมพิวเตอร์แต่ละเครื่อง


ทดสอบการทำงานโดย คลิกขวา ในพื้นที่การเขียนโค้ด -> Run ‘test-arduino’



ไฟ LED ที่เชื่อมต่อกับขา 13 ของ Arduino กระพริบ ติด-ดับ ทุก 2 วินาที แสดงว่าการทดสอบสำเร็จแล้ว

เขียน Python ควบคุม Arduino