Sadržaj:
- Korak 1: Upozorenje: Oprezno pokušavajte ovo kod kuće
- Korak 2: Komponente
- Korak 6: Adresa za Pi
- Korak 7: Plan
- Korak 8: Prelazak na fizičko
- Korak 9: Automatsko pokretanje Raspberry Pi
- Korak 10: Houeston, imali smo problem … DC motori nisu isti model
- Korak 11: [TCP]: Zašto Tcp, a ne sigurna ljuska? Što je TCP?
- Korak 12: [TCP]: Omogućimo klijenta
- Korak 13: Isprobajte naše Tcp poruke
Video: Napravite svog robota za video streaming sa internetskom kontrolom s Arduinom i Raspberry Pi: 15 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:32
Ja sam @RedPhantom (zvani LiquidCrystalDisplay / Itay), 14 -godišnji učenik iz Izraela koji uči u Srednjoj školi za napredne znanosti i matematiku Max Shein. Izrađujem ovaj projekt za svakoga od kojeg mogu učiti i dijeliti ga!
Možda ste pomislili: hmm … ja sam štreber … I moja djeca žele da napravim projekt s njima … Htio je izgraditi robota. Htjela ga je odjenuti kao malo štene. To je dobar vikend projekt!
Raspberry Pi savršen je za svaku upotrebu: danas ćemo pokazati sposobnosti ovog mikroračunala da napravi robota. Ovaj robot može:
- Vozite se i kontrolirajte putem LAN -a (WiFi -a) pomoću bilo kojeg računala spojenog na istu WiFi mrežu kao i Raspberry Pi.
- Streamajte video uživo pomoću modula kamere Raspberry Pi
- Pošaljite podatke senzora pomoću Arduina
Da biste vidjeli što vam je potrebno za ovaj lijepi lagani projekt, samo pročitajte sljedeći korak (upozorenja), a nakon toga korak Wanted: Components.
Ovdje je GitHub repo: GITHUB REPO OD MENE
Evo stranice projekta: PROJEKTNO MJESTO JA
Korak 1: Upozorenje: Oprezno pokušavajte ovo kod kuće
OPREZ:
AUTOR OVOG TUTORIJALA PRETPOSTAVLJA DA IMATE DOVOLJNA ZNANJA O ELEKTRIČNOJ ENERGIJI I OSNOVNOM RADU ELEKTRIČNE OPREME. Ako niste oprezni i ne slijedite upute u ovom vodiču, MOŽETE: OŠTETITI ELEKTRONSKU OPREMU, SPALITI SE ILI IZAZOVITI POŽAR. Molimo budite oprezni i koristite zdrav razum. Ako nemate potrebno znanje za ovaj vodič (lemljenje, osnove elektronike), molimo vas da to učinite s osobom koja to radi. Hvala vam.
OVAJ UPUTNIK AUTOR UKLANJA SAMU SVOJU ODGOVORNOST ZA OŠTEĆENJA ILI IZGUBLJENJA IMOVINE ILI TJELESNE OŠTEĆENJA. KORISTITE ZAJEDNIČKI RAZUM
Korak 2: Komponente
Prije nego zagrijemo lemilicu, moramo prijeći preko toga što bi na što trebalo biti povezano. Napravio sam ovaj jednostavan grafikon (MS Paint me nikada ne iznevjerava) koji opisuje gdje se određeni dio nalazi unutar robota.
Slika je izgrađena tako da možete zumirati i vidjeti u punoj razlučivosti te pročitati tekst.
Korak 6: Adresa za Pi
Arduino razgovara s Pi prema planu. I Pi razgovara s računalom, pa kako sve ovo funkcionira?
Pogledajmo naš redoslijed pokretanja veze:
- Počinje Raspberry Pi
- Arduino počinje
- Raspberry Pi pokreće TCP klijent. Svoju IP adresu izbacuje putem LED diode.
- Raspberry Pi pokreće Serijsku komunikacijsku uslugu i povezuje se s Arduinom
Stoga smo uspostavili neku vrstu komunikacije:
Računalo Raspberry Pi Arduino
Koristio sam Visual Basic. NET (Microsoft Visual Studio 2013 zajednica) za pisanje programa koji razgovara s Raspberry Pi i Pythonom za pisanje Arduino/Raspberry Pi protokola.
Sve što trebate učiniti da biste saznali svoju Pi IP adresu je da je povežete na HDMI zaslon, prijavite se na Shell i upišite naredbu:
naziv hosta -I
Korak 7: Plan
Sad kad imamo Pi -jevu IP adresu, u nju ćemo ubaciti SSH (SSH je Secure Shell - daljinski se povezujemo s Linux ljuskom) i napisati datoteku koja prikazuje IP adresu poslužitelja. Pi, pri pokretanju će to isto učiniti i napisati port koji sluša. Ovdje ću navesti samo nekoliko primjera iz koda, ali je dostupan za preuzimanje iz ovog koraka i iz grane GitHub koju sam stvorio. Detalji o tome kasnije.
Radi ovako:
- RPi se pokreće.
- RPi pokreće Tcp program na svom lokalnom IP -u i na određenom portu.
- RPI počinje strujati video zapise
- RPI se isključuje.
Korak 8: Prelazak na fizičko
Sada smo spremni fizički izgraditi cijelu stvar. Ako niste pročitali 1. korak (tekst upozorenja i licenciranje), učinite to prije nastavka. Ne snosim odgovornost za nastalu štetu. A u slučaju sumnje, ovaj se robot ne smije koristiti u vojne svrhe, osim ako se ne radi o zombi apokalipsi. Pa čak i tada koristiti zdrav razum.
Predlaže se da na popisu za čitanje pročitate upute koje slušate.
Preuzmite shemu povezivanja iz koraka "Veze".
MOTORI
Motori koje ste kupili vjerojatno izgledaju ovako, i u redu je ako nemaju: ako imaju samo dvije žice (u većini slučajeva crnu i crvenu), trebao bi raditi. Potražite njihov podatkovni list na mreži kako biste vidjeli njihov radni napon i struju. Slobodno postavljajte pitanja u odjeljku za komentare. Uvijek ih čitam.
H-MOST
Nikad prije nisam radio s H-Bridgeom. Malo sam proguglao i pronašao dobro uputstvo koje objašnjava principe HB -a. Možete pogledati i tamo (vidi korak Popis za čitanje) i zakačiti svoju. Neću puno objašnjavati. Tamo možete pročitati i znati sve što trebate o ovom krugu.
LED
Ova mala žarulja može raditi od logičkog napona samo zato što ne zahtijeva gotovo nikakvu struju, a napon je 3V-5V 4mA-18mA. Izborno.
ARDUINO
Arduino će primati signale i naredbe putem serijske veze od Raspberry Pi. Arduino koristimo za upravljanje motorima jer Raspberry Pi ne može izlaziti analogne vrijednosti putem GPIO -a.
Korak 9: Automatsko pokretanje Raspberry Pi
Svaki put kada uključite Raspberry Pi, morat ćete upisati korisničko ime i lozinku. Ne želimo to učiniti jer ponekad jednostavno ne možemo spojiti tipkovnicu na Pi, pa ćemo slijediti ove korake iz ovog vodiča za automatsko pokretanje programa koji priprema Pi. Ako će se držati u petlji, uvijek ga možemo prekinuti pomoću Ctrl+C.
- sudo crontab -e
- Zatim ćemo unijeti naredbu koja dodaje tu datoteku za automatsko pokretanje u upravitelju crona.
Nazvat ćemo datoteku pibot.sh koja će dati naredbe za pokretanje svih vrsta python skripti za upravljanje robotom. Prijeđimo na to: (Sudo smo sa Python programima sa zavjesama kako bismo omogućili programu pristup GPIO -u)
raspivid -o --t 0 -hf -w 640 -h 360 -fps 25 | cvlc -vvv stream: /// dev/stdin --sout '#rtp {sdp = rtsp: //: 8554}': demux = h264
Kôd koji obavlja sav posao na strani pi nazivat će se upon_startup.sh.
To je jednostavna ljuska skripta koja pokreće sve.
Korak 10: Houeston, imali smo problem … DC motori nisu isti model
Već sam testirao H-Bridge i radi dobro, ali kad sam spojio motore koje sam dobio s robotske platforme, naručio sam na internetu ta dva motora se okreću različitim brzinama i proizvode različite zvukove. Promijenio sam gas na 100% na motorima. Obojica nisu mogli trčati maksimalno.
Čini se da se radi o dva različita motora. Jedan ima veći okretni moment što je odlično za ovu vrstu robota, ali drugi jednostavno ne bi pomaknuo robota. Tako se vrti u krug.
U ovom trenutku imam ono što serijski program na Arduinu radi potpuno u redu, ali Tcp poslužitelj na računalu i Tcp klijent na Pi još nisu kodirani. Moram dovršiti ovaj unos za natjecanje. Što da radim?
- Prvo, utrostručim napon motora. U podatkovnom listu je navedeno da ih 3V, 6V nisu pomaknule. Onda je 9V. Paralelno sam spojio teo baterije kako bih udvostručio struju i napon ostaje isti.
- Imam li druge motore koji odgovaraju nosaču na platformi? Možda mogu vidjeti jesu li slični modeli.
- Mogu zamijeniti Servos ako je čokolada zaista pogodila obožavatelje.
Škola je počela. Morat ću vidjeti što učiniti.
Napomena: Zašto, zaboga, pišem probleme s kojima se ovdje susrećem? Dakle, ako ste manje iskusni i imate iste probleme, znat ćete što trebate učiniti.
Rješenje:
Pa sam napravio još jedan test. Prilagodio sam razliku u brzini u Arduino kodu.
NAPOMENA: motori se za vas mogu vrtjeti različitim brzinama! Promijenite vrijednosti na Arduino skici.
Korak 11: [TCP]: Zašto Tcp, a ne sigurna ljuska? Što je TCP?
Imam dva objašnjenja zašto koristiti Tcp, a ne SSH za P. C. - Pi komunikacija.
- Prvo, SSH (Secure Shell, vidi Objašnjenja) namijenjen je pokretanju naredbi s udaljenog računala. Teže je natjerati Pi da odgovori informacijama koje želimo jer je naša jedina mogućnost analize podataka teška i dosadna obrada nizova.
- Drugo, već znamo kako koristiti SSH i želimo naučiti više načina komunikacije između uređaja u ovom vodiču.
TCP ili Transmission Control Protocol je osnovni protokol paketa Internet Protocol Suite. Nastao je u početnoj implementaciji mreže u kojoj je nadopunio internetski protokol (IP). Stoga se cijeli paket obično naziva TCP/IP. TCP pruža pouzdanu, naručenu i provjerenu pogrešku isporuku toka okteta između aplikacija koje rade na hostovima koji komuniciraju putem IP mreže.
(Iz Wikipedije)
Dakle, TCP profesionalci su:
- Siguran
- Brzo
- Radi bilo gdje na mreži
- Pruža metode za provjeru ispravnog prijenosa podataka
- Kontrola protoka: ima zaštitu u slučaju da pošiljatelj podataka šalje podatke prebrzo da bi ih klijent registrirao i obradio.
A nedostaci su:
- U TCP-u ne možete emitirati (slati podatke na sve uređaje na mreži) i multicast (isto, ali malo drugačije- daje mogućnost svakom uređaju da emitira poput poslužitelja).
- Greške u vašim knjižnicama programa i operacijskog sustava (koje same upravljaju TCP komunikacijom, vaš usmjerivač ne radi gotovo ništa osim povezivanja dva [ili više] uređaja)
Zašto ne biste koristili UDP, možda ćete se upitati? Pa, za razliku od TCP -a, UDP ne osigurava da vaš klijent dobije podatke prije nego što pošalje više. Kao slanje e -pošte i neznanje prima li je klijent. Osim toga, UDP je manje siguran. Za više informacija pročitajte ovaj post od Stack Exchange Super User
Ovaj članak je dobar i preporučljiv.
Korak 12: [TCP]: Omogućimo klijenta
Klijent (u našem slučaju Raspberry Pi), koji prima podatke s poslužitelja (naš PC u našem slučaju), dobit će podatke za slanje na Pi (serijske naredbe koje će se izvoditi na Arduinu) i primiti podatke natrag (očitanja senzora i povratne informacije izravno s Arduina. Priložena shema prikazuje odnos između ova tri.
Članak Python Wiki TcpCommunication pokazuje da je tako jednostavno uspostaviti takvu komunikaciju s nekoliko redaka koda pomoću ugrađenog modula utičnice. Imat ćemo program na računalu i drugi program na Pi -u.
Radit ćemo s prekidima. Saznajte više u koraku Objašnjenja o njima. Pročitajte i o međuspremnicima. Sada možemo pročitati podatke koje imamo koristeći data = s.recv (BUFFER_SIZE), ali bit će to koliko smo znakova definirali praznim zalogajima. Možemo li koristiti prekide? Još jedno pitanje: hoće li međuspremnik biti prazan ili će čekati da poslužitelj pošalje više podataka. U tom slučaju poslužitelj/klijent će baciti iznimku timeout -a?
Riješimo to jedno po jedno. Prije nego što smo to učinili, pregledao sam ovaj članak na Wikipediji u kojem su navedeni korišteni TCP i UDP portovi. Nakon kratkog pregleda odlučio sam da će ovaj projekt komunicirati na portu 12298 jer ga ne koriste operacijski sustav i lokalne usluge.
Korak 13: Isprobajte naše Tcp poruke
Kako bismo vidjeli možemo li koristiti prekide, napravimo jednostavnog klijenta i poslužitelja pomoću naredbenog retka Python. Učinit ću to u sljedećim koracima:
- Pokrenite program koji šalje tekst putem Tcp -a u petlji kroz port zavjese
- Pokrenite drugi program (paralelno) koji čita čitav tekst u petlji i ispisuje ga na zaslon.
Prikazat će se samo dijelovi programa. Svi programi pokrenuti s Pythonom 3. Sve što ovi programi rade je slanje serijske naredbe s tipkovnice korisnika računala na Arduino putem Pi -a.
- SBcontrolPC.py - Pokreće se na računalu. Pokreće TCP vezu na lokalnoj adresi i na navedenom priključku (koristim port 12298, pogledajte prethodni korak zašto)
- SBcontrolPi.py - Za pokretanje na Pi. Očitava svoj međuspremnik svakih pola sekunde (0,5 sekundi). Pokreće ljuskastu skriptu koja upravlja stvarima kao što su video streaming itd.
Preporučeni:
Sjajan staklenik s automatskim zalijevanjem, internetskom vezom i još mnogo toga: 7 koraka (sa slikama)
Sjajan staklenik s automatskim zalijevanjem, internetskom vezom i još mnogo toga: Dobro došli u ovaj Instructables. Početkom ožujka bio sam u vrtnoj trgovini i vidio neke staklenike. A budući da sam već dugo želio napraviti projekt s biljkama i elektronikom, otišao sam naprijed i kupio jedan: https://www.instagram.com/p
Video streaming video robot s Raspberry Pi Wifi: 8 koraka (sa slikama)
Video Streaming Robot s Raspberry Pi Wifi kontrolom: Jeste li ikada razmišljali o izgradnji cool robota s kamerom na njemu? Pa, došli ste na pravo mjesto, pokazat ću vam korak po korak o tome kako izgraditi ovog robota. Pomoću ovoga možete noću ići u lov na duhove kontroliranjem i gledanjem video zapisa na vašem
Napravite ogroman poster za ispis od svog albuma ITunes albuma!: 7 koraka (sa slikama)
Napravite ogroman poster za ispis od svog albuma albuma ITunes !: Ovo je uputstvo koje opisuje kako glomazno izvesti postojeći omot albuma iTunes i rasporediti sve omote u ogromnu mrežu, ostavljajući vam golemu, šarenu i živahnu mješavinu popularne kulture za tisak i, možda la
Kako izgraditi svog prvog robota (85 USD): 21 korak (sa slikama)
Kako izgraditi svog prvog robota (85 USD): Uradio sam novu i ažuriranu OVU VERZIJU. MOLIMO, NAĐITE OVDJE https://www.instructables.com/id/How-to-make-your-first-robot-an-actual-programma/ **************** ************************************************ ************** Ažuriranje: Nekim 1
Napravite vrlo malog robota: Napravite najmanji robot na kotačima sa hvataljkom na svijetu .: 9 koraka (sa slikama)
Napravite vrlo malog robota: Napravite najmanjeg robota na kotačima sa hvataljkom na svijetu.: Napravite robota od 1/20 kubnih inča s hvataljkom koja može pokupiti i pomicati male predmete. Njime upravlja Picaxe mikrokontroler. Vjerujem da je u ovom trenutku ovo možda najmanji robot na kotačima s hvataljkom na svijetu. To će bez sumnje biti