Raspberry Pi ja Arduino voivat kommunikoida keskenään käyttämällä erilaisia protokollia, mukaan lukien Sarja (UART), I2C ja SPI. Tämä opas näyttää sinulle, kuinka asentaa viestintä Raspberry Pi: n ja Arduinon välillä Sarjarajapinta (UART), mikä on yleisin ja suoraviivainen menetelmä.
Mitä tarvitset
- Raspberry Pi (Mikä tahansa malli, jolla on GPIO -tuki, esim. Pi 3, pi 4)
- Arduino (esim. UNO, Mega, Nano)
- USB -kaapeli (Arduinon yhdistämiseksi Raspberry PI: hen)
- Hyppyjohdot (Jos käytät GPIO -sarjaviestintää)
- Python asennettu Raspberry Pi
- Arduino IDE asennettu Raspberry Pi: hen tai erilliseen tietokoneeseen
Vaihe 1: Arduinon yhdistäminen Raspberry Pi: hen
Voit yhdistää Raspberry Pi Arduinoon käyttämällä USB tai Gpio -nastat.
Menetelmä 1: USB -yhteys (suositeltu)
- Yhdistä Arduino Raspberry Pi: lle USB -kaapelin käyttäminen.
- Raspberry Pi havaitsee Arduinon sarjalaitteena (esim.
/dev/ttyUSB0
tai/dev/ttyACM0
).
Menetelmä 2: GPIO -nastat (laitteistosarja)
- Yhdistä Arduino TX (nasta 1) -lla Raspberry pi rx (GPIO 15, nasta 10).
- Yhdistä Arduino RX (nasta 0) -lla Raspberry Pi TX (GPIO 14, PIN 8).
- Yhdistää GND GND: hen.
- Poista Raspberry Pi: n sisäänrakennettu sarjikonsoli käytöstä:
- Siirtyä jhk Käyttöliittymävaihtoehdot> sarjaportti.
- Poista kirjautumiskuori käytöstä sarjan päällä, mutta ota sarjaporttilaitteisto käyttöön.
- Käynnistä Raspberry Pi uudelleen:
Vaihe 2: Asenna vaadittavat kirjastot
Varmista, että Raspberry Pi on asennettu tarvittavat sarjaviestinnän työkalut.
Saatavilla olevien sarjaporttien tarkistaminen:
Etsi USB -yhteys /dev/ttyUSB0
tai /dev/ttyACM0
.
Vaihe 3: Lataa Arduino -luonnos
Lähettääksesi tietoja Arduinosta Raspberry Pi: lle, lataa tämä yksinkertainen Arduino -luonnos käyttämällä Arduino IDE.
Vaihe 4: Lue sarjatiedot Raspberry Pi: stä
Luo Python -skripti Raspberry Pi: lle lukeaksesi Arduinon tiedot.
Python -koodiesimerkki
- Varmistaa, että
/dev/ttyUSB0
Vastaa havaittua sarjaporttia. - Suorita käsikirjoitus:
- Sinun pitäisi nähdä "Hei Arduinosta!" tulostettu joka sekunti.
Vaihe 5: Tietojen lähettäminen Raspberry Pi: stä Arduinoon
Muokata Arduino -koodi Tietojen vastaanottaminen Raspberry PI: lta:
Muokata Python -koodi Tietojen lähettäminen Arduinolle:
- Nyt Arduino vastaanottaa Raspberry Pi: n lähettämiä viestejä.
Vaihtoehtoiset viestintämenetelmät
-
I2C -viestintä (useille arduinoille)
- Raspberry Pi toimii Hallita, Arduino toimii Orja.
- Ota I2c käyttöön:
- Asenna vaadittavat kirjastot:
- Käyttää
Wire.h
Arduino -puolella I2C -viestintää varten.
-
SPI -viestintä (Nopea tiedonsiirto)
- Vaatii Spi-yhteensopiva Arduino ja
SPI.h
kirjasto. - Nopeampi kuin UART ja I2C, mutta vaatii Lisää johdotusta.
- Vaatii Spi-yhteensopiva Arduino ja
Vianetsintä
-
Arduinoa ei havaittu Raspberry PI: ssä
- Juoksua
ls /dev/tty*
Saatavilla olevien sarjalaitteiden tarkistaminen. - Varmista, että oikea sarjaportti on määritetty Python -komentosarjassa.
- Juoksua
-
Lupa kielsi virheen
- Lisää käyttäjä
dialout
Ryhmä:
- Lisää käyttäjä
-
Roskien merkit tulosteen
- Varmistaa Molemmat laitteet käyttävät samaa baud -määrää (esim.,
9600
). - Lisää pieni viive (
time.sleep(2)
) Ennen kuin luet tietoja Pythonissa.
- Varmistaa Molemmat laitteet käyttävät samaa baud -määrää (esim.,
Johtopäätös
Seuraamalla tätä opasta voit perustaa sarjaviestintä Arduinon ja Raspberry Pi: n välillä, jolloin ne voivat vaihtaa tietoja IoT -projektit, anturien integrointi ja automaatiojärjestelmät. Koetella jtk I2c ja spi Edistyneempiä sovelluksia varten!