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
- Arduino Uno USB -kaapelilla
- Python asennettu tietokoneellesi (versio 3.x suositeltu)
- Arduino IDE asennettu
- 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");
}
}
}
- Avaa Arduino IDE.
- Liitä yllä oleva koodi editoriin.
- Valitse oikea Hallitus ja Satama alla Työkalut valikko.
- 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
- Kytke Arduino tietokoneeseen USB: n kautta.
- 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
).
- Päivittää
port
Python -komentosarjan arvo vastaamaan Arduinon porttia. - Suorita Python -skripti komennolla:
python your_script_name.py
- Tarkkaile Pythonin ja Arduinon välistä viestintää terminaalissa ja sarjamittarissa.
Python-Arduino -viestinnän sovellukset
- Laitteistotehtävien automatisointi (esim. LEDien kytkeminen päälle, moottorien hallinta)
- Anturitiedot tiedostoon tai tietokantaan
- Mukautettujen käyttöliittymien luominen Arduino -projekteihin käyttämällä Python -kirjastoja, kuten Tkinter tai Pyqt
- 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ä).
- Lisää viive sarjayhteyden avaamisen jälkeen (
-
UnicodeDeCodeError:
- Tarkista lähetettävien/vastaanottamien tietojen koodaus. Käyttää
.decode(errors='ignore')
tarvittaessa.
- Tarkista lähetettävien/vastaanottamien tietojen koodaus. Käyttää
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!