Kuinka käyttää Pythonia kommunikoidaksesi arduino uno: n kanssa sarjan yli

How to Use Python to Communicate with an Arduino Uno Over Serial

Kommunikointi Pythonin ja Arduino Unon välillä Serialista antaa sinun hallita laitteistoa Python -skripteillä tai lähettää tietoja Arduinosta Pythoniin käsittelyä varten. Tämä opetusohjelma opastaa sinut Pythonin perustamiseen ja käyttämiseen kommunikoimaan Arduino UNO: n kanssa sarjayhteyden kautta.


Mitä tarvitset

  1. Arduino Uno USB -kaapelilla
  2. Python asennettu tietokoneellesi (versio 3.x suositeltu)
  3. Arduino IDE asennettu
  4. Python -sarjaviestinnän kirjasto (esim. pyserial)

Vaihe 1: Asenna vaadittu ohjelmisto

1. Asenna Python

Jos sinulla ei ole pythonia asennettuna, lataa se python.org ja noudata asennusohjeita.

2. Asenna Arduino IDE

Lataa ja asenna Arduino IDE: stä arduino.cc.

3. Asenna pyserial -kirjasto

Pyserial vaaditaan Pythonin kommunikoimaan sarjaporttien yli. Asenna se seuraavan komennon avulla:

pip install pyserial

Vaihe 2: Kirjoita ja lataa Arduino -koodi

Arduino lähettää ja vastaanottaa tietoja sarjaportista. Alla on esimerkki luonnos:

Arduino -koodi

void setup() {
  Serial.begin(9600); // Start serial communication at 9600 baud
  while (!Serial);    // Wait for the serial port to connect
  Serial.println("Arduino is ready!");
}

void loop() {
  // Check if data is available on the serial port
  if (Serial.available()) {
    String data = Serial.readString(); // Read the incoming data
    Serial.print("Received: ");
    Serial.println(data); // Echo the data back

    // Optional: Respond based on the received data
    if (data.trim() == "LED_ON") {
      Serial.println("Turning LED on");
    } else if (data.trim() == "LED_OFF") {
      Serial.println("Turning LED off");
    }
  }
}
  1. Avaa Arduino IDE.
  2. Liitä yllä oleva koodi editoriin.
  3. Valitse oikea Hallitus ja Satama alla Työkalut valikko.
  4. Napsauttaa Ladata Lataa koodi Arduino UNO: lle.

Vaihe 3: Kirjoita Python -koodi

Alla on esimerkki Python -käsikirjoituksesta, joka kommunikoida Arduinon kanssa:

Python -koodi

import serial
import time

# Configure the serial connection
arduino = serial.Serial(port='COM3', baudrate=9600, timeout=1) # Replace 'COM3' with your Arduino's port

def send_data(data):
    print(f"Sending: {data}")
    arduino.write(f"{data}\n".encode()) # Send data to Arduino
    time.sleep(0.1)

    response = arduino.readline().decode().strip() # Read response from Arduino
    if response:
        print(f"Arduino responded: {response}")

if __name__ == "__main__":
    time.sleep(2)  # Wait for Arduino to initialize
    print("Connected to Arduino")

    # Example: Send commands to Arduino
    send_data("LED_ON")
    time.sleep(2)
    send_data("LED_OFF")

    # Close the serial connection
    arduino.close()

Vaihe 4: Testaa asennus

  1. Kytke Arduino tietokoneeseen USB: n kautta.
  2. Löydä Arduinon satama:
    • Windowsissa: Tarkista Device Manager -portti (esim. COM3).
    • MacOS/Linux: käytä ls /dev/tty.* Komento löytää oikea portti (esim. /dev/ttyUSB0).
  3. Päivittää port Python -komentosarjan arvo vastaamaan Arduinon porttia.
  4. Suorita Python -skripti komennolla:
python your_script_name.py
  1. Tarkkaile Pythonin ja Arduinon välistä viestintää terminaalissa ja sarjamittarissa.

Python-Arduino -viestinnän sovellukset

  1. Laitteistotehtävien automatisointi (esim. LEDien kytkeminen päälle, moottorien hallinta)
  2. Anturitiedot tiedostoon tai tietokantaan
  3. Mukautettujen käyttöliittymien luominen Arduino -projekteihin käyttämällä Python -kirjastoja, kuten Tkinter tai Pyqt
  4. Arduinon integrointi IoT -alustoihin

Vianetsintä

  • Ei yhteyttä Arduinoon:

    • Varmista, että oikea portti on määritetty Python -komentosarjassa.
    • Varmista, että baud -arvo vastaa Arduino -luonnokseen.
  • Ei vastausta Arduinosta:

    • Lisää viive sarjayhteyden avaamisen jälkeen (time.sleep(2)).
    • Varmista, että toinen ohjelma ei käytä Arduinoa (esim. Sarjamonitori Arduino IDE: ssä).
  • UnicodeDeCodeError:

    • Tarkista lähetettävien/vastaanottamien tietojen koodaus. Käyttää .decode(errors='ignore') tarvittaessa.

Johtopäätös

Olet onnistuneesti perustanut viestintää Pythonin ja Arduino Unon välillä sarjan yli. Tämä avaa loputtomia mahdollisuuksia integroida Pythonin voimakkaat kirjastot Arduinon laitteistoominaisuuksiin. Kokeile tarkemmin lisäämällä antureita, moottoreita tai luomalla Python-pohjaisia ​​käyttöliittymiä projekteihisi!

Jätä kommentti

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.