Spørsmål:
Hvordan feste en Arduino?
Lucas Kauffman
2012-08-09 04:07:36 UTC
view on stackexchange narkive permalink

Arduino-nettstedet oppsummerer det som

Arduino er en åpen kildekode-prototypeplattform for elektronikk basert på fleksibel, brukervennlig maskinvare og programvare. Den er beregnet på kunstnere, designere, hobbyister og alle som er interessert i å skape interaktive objekter eller miljøer.

Det kan være et fint grensesnitt for å kontrollere servoer og gi andre tilkoblinger fra de mange valgfrie skjoldene.

Hvordan kobler jeg en til en Raspberry Pi? Hvordan konfigurerer jeg kommunikasjon?

Seks svar:
scruss
2012-08-09 08:14:01 UTC
view on stackexchange narkive permalink

Arduinos vises vanligvis som USB-serielle enheter. De nåværende kortene bruker USB-seriell driver innebygd i hovedmikroprosessoren, men eldre Arduinos (og kloner) brukte separate tredjeparts USB-serielle brikker.

For å bare motta Serial.print data på Raspberry Pi fra Arduino, jeg bruker GNU Screen -programmet som en grunnleggende terminal: skjerm [seriell-port] [baud-rate] (for eksempel skjerm / dev / ttyACM0 9600 ).

Jeg testet tre forskjellige Arduinos, og en ganske annen klon. De nyere variantene dukket opp som / dev / ttyACM0 porter, og de eldre / dev / ttyUSB0 . Dette er hva jeg fant, under Raspbian:

Raspberry Pi gir kanskje ikke nok strøm til å drive en Arduino, så du trenger kanskje ekstern strøm. For fullstendighet testet jeg også en Prolific PL2303, selv om den ikke er på noen Arduino jeg kjenner til. Det virket ganske lykkelig som /dev/ttyUSB0.

For mer kompleks kommunikasjon med sensorer kan du vurdere Firmata, "en generell protokoll for å kommunisere med mikrokontrollere fra programvare på vertsdatamaskinen ". Den har implementeringer for Arduino og Python-biblioteker for å kjøre på Raspberry Pi-siden.

Her er et lite eksempel som bruker pyFirmata for å lese en LM35 og endre lysstyrken på en LED:

  #! / usr / bin / python # - * - koding: utf-8 - * - # enkel test av pyfirmata og Arduino; lest fra en LM35 på A0,
# lys en LED på D3 ved hjelp av PWM # scruss, 2012-08-14 - testet på Arduino Uno & Raspberry Pi (Raspbian) import pyfirmata # Opprett et nytt kort, spesifiser seriell portboard = pyfirmata.Arduino ('/ dev / ttyACM0') # start en iteratortråd slik at seriell buffer ikke overløper pin3 = board.get_pin ('d: 3: p') # D3 PWM Output (LED) # VIKTIG! kast først til A0 får noe gyldig mens pin0.read () er Ingen: passfor i i rekkevidde (10): pin3.write (i / 10.0) # sett D3 til 0, 10%, 20%, ... lysstyrkeutskrift " PWM:% d %% Temperatur% .1f ° C "% (i * 10, pin0.read () * 5 * 100) board.pass_time (1) # pause 1 secondpin3.write (0) # turn LED back offboard. exit ()  

Det er noen advarsler når du bruker pyFirmata:

  • Analog lesing og PWM-skriving normaliseres til et 0 .. 1 område, og ikke standard Arduino 0 .. 255 og 0 .. 1023.
  • Du må virkelig starte en egen iteratortråd for å stoppe gamle avlesninger som overløper den serielle bufferen
  • Siden Arduino leses asynkront, sørg for at pyFirmata-tilkoblingen er fullstendig initialisert før du leser fra porter. Ellers følger Ingen -verdier.
Jeg har også bekreftet at du kan kjøre [Processing] (http://processing.org/ "Processing") på Raspberry Pi. Det er veldig sakte, men jeg klarte å få det til å kontrollere en Arduino over en USB-lenke: [Kontrollere en Arduino fra Raspberry Pi ved hjelp av Processing] (http://scruss.com/blog/2012/08/12/controlling-an -arduino-fra-bringebær-pi-bruk-prosessering / "Kontrollere en Arduino fra Raspberry Pi ved hjelp av Processing"). Jeg får se om jeg kan portere dette til Python / tkinter ...
Takk for dette svaret, det var veldig nyttig. Jeg bruker python-serie for å lese fra / dev / ttyACM0 og synes det er veldig inkonsekvent. Jeg antok at det var mangel på strøm til arduinoen min, men jeg har koblet den til en ekstern strømforsyning og har fortsatt problemer. Noen ganger blir dataene misdannet, noen ganger kastes et unntak fordi / dev / ttyACM0 ikke blir funnet (selv om etterfølgende kjøringer finner det). Har du hatt lignende problemer?
Nei, dette stemmer ikke med min erfaring.
Takk for svaret - interessant, må være noe jeg gjør galt da!
Kanskje stille et ikke-Pi-spesifikt spørsmål på SE, eller spør direkte på Arduino-forumet. Seriekommuner gir meg ofte hodepine ...
Jeg har oppdatert prosesserings / Firmata / Arduino instruksjonene for den nye Java: [Processing 2.1 + Oracle Java + Raspberry Pi + Serial + Arduino = ☺] (http://scruss.com/blog/2014/01/07/processing -2-1-oracle-java-bringebær-pi-seriell-arduino-% e2% 98% ba / "Processing 2.1 + Oracle Java + Raspberry Pi + Serial + Arduino = ☺")
Forsøkt med en Arduino Nano, det ser ut som / dev / ttyUSB0 på min Raspberry Pi Zero, men kunne ikke få det til å fungere (sende char til serieporten ved hjelp av python på RPi, og program for å motta den på arduino). Byttet til en Arduino Leonardo, og det fungerte perfekt med samme oppsett.
prøvde * hva *, @salle55? Selv om jeg ikke tok for meg å lese data om Arduino i detalj, husk at det er en veldig enkel karakter for tegnprosess som passer en så enkel enhet. Leonardos kan gjøre morsomme ting med seriell data, [som å låse opp hjelpeløst hvis seriell lesing ikke opprettholdes] (https://raspberrypi.stackexchange.com/questions/67641/question-about-arduino-talking-to-pi-over- usb / 67673 # 67673). Nanos ville ikke ha dette problemet.
pdp7
2012-08-09 22:50:34 UTC
view on stackexchange narkive permalink

Hvis det ikke er klart, med Raspbian Wheezy, kan du kjøre Arduino IDE og laste opp skisser til Arduino når du er koblet til Raspberry Pi's USB-port. For å installere på Raspbian, skriv bare inn i skallet (aka kommandolinje):

  sudo apt-get install arduino  

Det vil laste ned og installere alle nødvendige pakker. Jeg har noen bilder av Arduino IDE på Raspbian her:

http://www.element14.com/community/groups/raspberry-pi/blog/2012/07/03 / review-of-raspberry-pi-images

(som andre har beskrevet ovenfor, kan Raspberry Pi også programmere Arduino via UART-pinnene (seriell port) på GPIO-overskriften. I dette tilfellet trenger du ikke å "kaste bort" en USB-port, men det vil kreve ytterligere konfigurasjon).

Skål, Drew

Jeg testet en Arduino Uno med RGB LED med enkel fadingskisse, og Arduino Uno ble bare drevet fra Raspberry Pi's USB-port. Jeg hadde ingen problemer, men selvfølgelig YMMV.
Lucas Kauffman
2012-08-09 04:07:36 UTC
view on stackexchange narkive permalink

Man kan velge å koble rpi til arduino ved hjelp av en USB-port eller ved å bruke GPIO-pinnene. Man kan bruke Wiringpi til å kommunisere mellom tavlene.

For tiden er det også en bro under utvikling som heter Ponte.

En grunnleggende hei-verden finner du her.

Alex Chamberlain
2012-08-09 13:43:43 UTC
view on stackexchange narkive permalink

à la mode

Fakturert som Den riktige måten å sette en Arduino i en Raspberry Pi av Hack A Day, the à la mode er en stabelbar Arduino-klon designet av Anool Mahidharia, Justin Shaw og Kevin Osborn fra Wyolum.com OSHW-samarbeidet. Hack A Day beskrev det som følger

AlaMode plugges rett utenfor flaggermusen direkte inn i GPIO-pinnene på Raspberry Pi. Derfra er kommunikasjon med ATMega til Arduino aktivert, slik at du kan sende og motta data akkurat som du ville gjort med en Arduino. Det er en sanntidsklokke, servooverskrifter, mange måter å drive styret på, og til og med et breakout for [a] GPS-modul.

Mye unødvendig cruft gjøres unna i AlaMode; Det er ingen USB-port, men den kan programmeres direkte over GPIO-pinnene på Raspberry Pi. Ganske pent, og vi gleder oss til å ta en til vår [Raspberry Pi].

Kevin gir litt mer informasjon på bloggen:

Her er funksjonene, inkludert noen ekstra godbiter:

  • Fleksibel kraft. Kan drives direkte fra Pi, frittstående med et batteri eller vegg-vorte eller USB-strøm. Dette er viktig hvis skjoldet ditt tar mer strøm enn Pi kan tilby, eller hvis du vil koble det fra for frittstående drift. Programmerbar via Pi's UART på GPIO-pinnene, eller en FTDI USB-seriell adapter eller ISP.
  • Topptekst for tilkobling av Fastrax UP501 GPS.DS3234 sanntidsklokke. Pi har ikke sitt eget batteristøttede RTC. Du kan angi et program i AlaMode for å rapportere tiden til Pi via seriell eller I2C
  • Micro-SD-kortspor. Nyttig for datalogging og stort minne for Arduino-applikasjoner
  • Rad med servooverskrifter koblet til PWM-pinnene med en konfigurerbar strøm- og jordskinne

Begrenset beta

Styret er for tiden i begrenset beta, men det fortjener å bli nevnt som en gjennomtenkt klon, som er kunngjort av en gruppe med forrige skjema.

Referanser

  1. Hack A Day's Blog Post
  2. Kevin Osborn's Blog Post
  3. Wyolum.com
Guy
2012-08-09 14:14:44 UTC
view on stackexchange narkive permalink

Du kan vurdere Gert Board, som nå er Arduino-basert, hvis du vil ha en generell maskinvaregrensesnittplattform. En fordel er at det er omfattende dokumentasjon om samhandling med RPi. Tilgjengelig for forhåndsbestilling fra Element14 fra 8/8/12.

tswaehn
2015-10-12 03:26:31 UTC
view on stackexchange narkive permalink

Det er en RaspberryPi HAT som oppfører seg som Arduino og kan programmeres via webgrensesnittet fra hvilken som helst nettleser. Prosjekt kalt CoPiino. Det kommer helt med programvare i gang. Bare skriv inn Arduino-skissen i nettlesergrensesnittet og trykk "kompiler og kjør" - det er det.

gitt at du har lagt ut minst to svar som fremmer CoPino, mistenker jeg at du er koblet til dette prosjektet. Enhver forbindelse skal noteres i svaret ditt,
Ja, det er helt riktig, og kommentaren min dekker emnet helt. CoPiino-kortet ligner det allerede nevnte a-la-mode-kortet. Hvor CoPiino kommer med noen fine tilleggsfunksjoner. Hvor programmering av Arduino fra Pi lett blir dekket - som var det første spørsmålet.
Fire år senere har du fortsatt ikke redigert i tilknytningen din. Vær så snill gjør det.


Denne spørsmålet ble automatisk oversatt fra engelsk.Det opprinnelige innholdet er tilgjengelig på stackexchange, som vi takker for cc by-sa 3.0-lisensen den distribueres under.
Loading...