Përmbajtje:
- Hapi 1: Paralajmërim: Kini kujdes ta provoni këtë në shtëpi
- Hapi 2: Përbërësit
- Hapi 6: Adresa për Pi
- Hapi 7: Plani
- Hapi 8: Të ecësh fizikisht
- Hapi 9: Fillimi automatik i Raspberry Pi
- Hapi 10: Houeston, Ne kishim një Problem … DC Motors nuk janë i njëjti model
- Hapi 11: [TCP]: Pse Tcp dhe Shell jo i sigurt? Çfarë është TCP?
- Hapi 12: [TCP]: Le të bëjmë një klient
- Hapi 13: Provoni Komunikatat tona Tcp
Video: Ndërtoni robotin tuaj të kontrolluar nga interneti me video me Arduino dhe Raspberry Pi: 15 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:10
Unë jam @RedPhantom (aka LiquidCrystalDisplay / Itay), një student 14 vjeçar nga Izraeli që mëson në Shkollën e Mesme Max Shein Junior për Shkencë dhe Matematikë të Avancuar. Po e bëj këtë projekt për të gjithë që të mësojnë dhe të ndajnë!
Ju mund të keni menduar me vete: hmm … Unë jam një geek … Dhe fëmijët e mi duan që unë të bëj një projekt me ta … Ai donte të ndërtonte një robot. Ajo donte ta veshë atë si një qenush të vogël. Projectshtë një projekt i mirë për fundjavë!
Raspberry Pi është perfekte për çdo përdorim: sot ne do të shprehim aftësitë e këtij mikro-kompjuteri për të bërë një robot. Ky robot mund të:
- Udhëtoni përreth dhe kontrolloheni përmes LAN (WiFi) duke përdorur çdo kompjuter të lidhur me të njëjtin rrjet WiFi si Raspberry Pi.
- Transmetoni video drejtpërdrejt duke përdorur modulin e kamerës Raspberry Pi
- Dërgoni të dhëna të sensorit duke përdorur Arduino
Për të parë se çfarë ju nevojitet për këtë projekt të këndshëm të dritës, thjesht lexoni hapin tjetër (paralajmërimet) dhe pas kësaj hapi i Kërkuar: Komponentët.
Këtu është repoja e GitHub: GITHUB REPO BY ME
Këtu është Faqja e Projektit: Faqja e Projektit NGA MUA
Hapi 1: Paralajmërim: Kini kujdes ta provoni këtë në shtëpi
KUJDES:
AUTORI I K ASTIJE PARASYSHME TUTORILE KU KENI NJOHURI TF Mjaftueshme RRETH ENERGJIS DHE VEPRIMIT THEMELOR T OF PAJISJEVE ELEKTRIKE. NFSE NUK JENI TAR KUJDES DHE MOS I Ndiqni UDHZIMET N IN KT T UDHZUES MUAJ T MUND: D DMTONI PAJISJET ELEKTRONIKE, Djegni VET OR OSE SHKAKTUAR NJ Zjarr. Ju lutemi jini të kujdesshëm dhe përdorni sens të përbashkët. Nëse nuk keni njohuritë e kërkuara për këtë mësim (bashkim, bazat e elektronikës), ju lutemi bëni me një individ që e ka. Faleminderit.
AUTORI I K INTI UDHUCTZUES H RN AN ÇDO P RRGJEGJSI NGA VETA P FORR D DMET E SHKAKTUARA OSE E HUMBURA DHE DAMMIN FIZIK. P USRDORIM SHKENCA TMM ZAKONSHME
Hapi 2: Përbërësit
Para se të ngrohim Hekurin bashkues, duhet të kalojmë se çfarë duhet të lidhet me çfarë. Kam bërë këtë tabelë të thjeshtë (MS Paint kurrë nuk më lë poshtë) që përshkruan se ku ndodhen pjesë të caktuara brenda robotit.
Imazhi është ndërtuar në mënyrë që të zmadhoni dhe shihni në rezolucion të plotë dhe të lexoni tekstin.
Hapi 6: Adresa për Pi
Arduino bisedon me Pi sipas planit. Dhe Pi flet me kompjuterin, kështu si funksionon e gjithë kjo?
Le të shikojmë sekuencën tonë të fillimit të lidhjes:
- Raspberry Pi fillon
- Arduino fillon
- Raspberry Pi fillon TCP Client. Ai nxjerr adresën e tij IP përmes një LED.
- Raspberry Pi fillon shërbimin e Komunikimeve Seriale dhe lidhet me Arduino
Prandaj ne kemi krijuar një lloj komunikimi:
Kompjuter Raspberry Pi Arduino
Unë kam përdorur Visual Basic. NET (Microsoft Visual Studio 2013 Community) për të shkruar programin që bisedon me Raspberry Pi dhe Python për të shkruar protokollin Arduino/Raspberry Pi.
E tëra çfarë ju duhet të bëni për të ditur adresën tuaj Pi IP, është ta lidhni atë me një ekran HDMI, të regjistroheni në Shell dhe të shkruani komandën:
emri i hostit -I
Hapi 7: Plani
Tani që kemi adresën IP të Pi, ne do të futim SSH në të (SSH është Secure Shell - ne lidhemi nga distanca me guaskën Linux) dhe shkruajmë një skedar që shfaq adresën IP të Serverit. Pi, me fillimin do ta bëjë këtë gjithashtu dhe do të shkruajë portën që po dëgjon. Këtu do të jap vetëm disa shembuj nga kodi, por është i disponueshëm për tu shkarkuar nga ky hap dhe nga dega GitHub që kam krijuar. Detajet për këtë më vonë.
Punon kështu:
- RPi fillon.
- RPi fillon programin Tcp në IP -në e tij lokale dhe një port të caktuar.
- RPI fillon të transmetojë video
- RPI fiket.
Hapi 8: Të ecësh fizikisht
Tani, ne jemi gati të fillojmë të ndërtojmë fizikisht gjithçka. Nëse nuk e keni lexuar hapin 1 (tekst paralajmërues dhe licencim) ju lutemi bëni këtë para se të vazhdoni. Unë nuk jam përgjegjës për dëmet e shkaktuara. Dhe në rast dyshimi, ky robot nuk duhet të përdoret për qëllime ushtarake nëse nuk është një apokalips zombie. Dhe madje edhe atëherë përdorni sensin e përbashkët.
Sugjerohet që të lexoni udhëzimet e dëgjueshme në Listën e Leximit.
Shkarkoni skemën e lidhjes nga hapi "Lidhjet".
MOTOR
Motorët që keni blerë ndoshta duken kështu, dhe është mirë nëse nuk kanë: nëse kanë vetëm dy tela (të zezë dhe të kuq në shumicën e rasteve) duhet të funksionojë. Shikoni fletën e të dhënave të tyre në internet për të parë tensionin dhe rrymën e tyre të funksionimit. Mos ngurroni të bëni pyetje në pjesën e komenteve. Unë gjithmonë i lexoj ato.
H-BRIDGE
Unë kurrë nuk kam punuar me një H-Bridge më parë. Gogolova pak dhe gjeta një udhëzues të mirë që shpjegon parimet e një HB. Ju gjithashtu mund të shikoni atje (shikoni hapin Lista e Leximit) dhe lidhni edhe tuajin. Nuk do të shpjegoj shumë. Ju mund të lexoni atje dhe të dini gjithçka që duhet për këtë qark.
LED
Ky llambë e vogël mund të funksionojë nga tensioni logjik vetëm sepse nuk kërkon pothuajse asnjë rrymë, dhe një tension prej 3V-5V 4mA-18mA. Opsionale.
ARDUINO
Arduino do të marrë sinjale dhe komanda përmes lidhjes serike nga Raspberry Pi. Ne përdorim Arduino për të kontrolluar motorët tanë sepse Raspberry Pi nuk mund të nxjerrë vlera analoge përmes GPIO.
Hapi 9: Fillimi automatik i Raspberry Pi
Sa herë që aktivizoni Raspberry Pi, do të duhet të shkruani emrin e përdoruesit dhe fjalëkalimin. Ne nuk duam ta bëjmë këtë sepse ndonjëherë thjesht nuk mund të lidhim një tastierë me Pi, kështu që ne do të ndjekim këto hapa nga ky tutorial për të nisur automatikisht programin që përgatit Pi. Nëse do të ngjitet në një lak, ne gjithmonë mund të Ctrl+C për ta ndërprerë atë.
- sudo crontab -e
- Dhe pastaj ne do të futim komandën që shton atë skedar në auto-strartup në menaxherin cron.
Ne do ta quajmë skedarin pibot.sh i cili do të japë komanda për të filluar të gjitha llojet e shkrimeve python për të operuar robotin. Le ta kalojmë atë: (Ne sudo me perde programet Python për të lejuar që programi të ketë qasje në GPIO)
raspivid -o --t 0 -hf -w 640 -h 360 -fps 25 | rryma cvlc -vvv: /// dev/stdin --sout '#rtp {sdp = rtsp: //: 8554}': demux = h264
Kodi që bën të gjithë punën në anën e pi do të quhet upon_startup.sh.
Shtë një skript i thjeshtë shell që drejton gjithçka.
Hapi 10: Houeston, Ne kishim një Problem … DC Motors nuk janë i njëjti model
Unë tashmë e kam testuar H-Bridge dhe funksionon mirë, por kur i lidh motorët që kam marrë nga platforma e robotit i porosita në internet ata dy motorë rrotullohen me shpejtësi të ndryshme dhe bëjnë zhurma të ndryshme. Kam ndryshuar gazin në 100% në motorët. Të dy ata nuk mund të vraponin në aftësinë e tyre maksimale.
Duket se këto janë dy motorë të ndryshëm. Njëri ka një çift rrotullues më të madh i cili është i shkëlqyeshëm për këtë lloj roboti, por tjetri thjesht nuk do ta lëvizte robotin. Kështu kthehet në qarqe.
Në këtë pikë, ajo që kam është se programi serik në Arduino funksionon shumë mirë, por serveri Tcp në PC dhe Tcp Client në Pi ende nuk janë të koduar. Më duhet të plotësoj këtë hyrje për konkursin. Çfarë të bëj?
- Së pari, trefishoj tensionin për motorët. Fleta e të dhënave tha 3V, 6V nuk i lëvizi. It'sshtë 9V atëherë. Unë lidha bateritë teo paralelisht për të dyfishuar rrymën dhe tensioni mbetet i njëjtë.
- A kam motorë të tjerë që përshtaten me montimin në platformë? Ndoshta mund ta shoh nëse janë modele të ngjashme.
- Unë mund të zëvendësoj me Servos nëse çokollata me të vërtetë godet tifozin.
Shkolla filloi. Më duhet të shoh se çfarë të bëj.
Shënim: Pse në tokë i shkruaj problemet që has këtu? Pra, nëse jeni më pak me përvojë dhe keni të njëjtat probleme, do të dini se çfarë të bëni.
Zgjidhja:
Kështu që unë bëra një provë tjetër. Unë kam përshtatur ndryshimin në shpejtësinë në kodin Arduino.
SHENIM: motorët mund të rrotullohen me shpejtësi të ndryshme për ju! Ndryshoni vlerat në skicën Arduino.
Hapi 11: [TCP]: Pse Tcp dhe Shell jo i sigurt? Çfarë është TCP?
Unë kam dy shpjegime pse të përdorim Tcp dhe jo SSH për P. C. - komunikimi Pi.
- Së pari, SSH (Shell i Sigurt, shih Shpjegimet) ka për qëllim të nisë komandat nga një kompjuter në distancë. Bërja e Pi të përgjigjet me informacionin që duam është më e vështirë sepse opsioni ynë i vetëm për të analizuar të dhënat është përmes përpunimit të ashpër dhe të lodhshëm të vargut.
- Së dyti, ne tashmë dimë se si të përdorim SSH dhe duam të mësojmë më shumë mënyra të komunikimit midis pajisjeve në këtë tutorial.
TCP, ose Protokolli i Kontrollit të Transmetimit, është një protokoll bazë i Suite Protokollit të Internetit. Filloi në zbatimin fillestar të rrjetit në të cilin plotësoi Protokollin e Internetit (IP). Prandaj, e gjithë suita zakonisht quhet TCP/IP. TCP siguron shpërndarje të besueshme, të porositur dhe të kontrolluar nga gabimet e një rryme oktete midis aplikacioneve që funksionojnë në hostet që komunikojnë përmes një rrjeti IP.
(Nga Wikipedia)
Pra, TCP Pro janë:
- E sigurt
- Shpejtë
- Punon kudo në një rrjet
- Ofron metoda për të kontrolluar transmetimin e saktë të të dhënave
- Kontrolli i rrjedhës: ka mbrojtje në rast se dërguesi i të dhënave dërgon të dhëna shumë shpejt që klienti të regjistrohet dhe përpunojë.
Dhe të këqijat janë:
- Në TCP nuk mund të transmetoni (Dërgo të dhëna në të gjitha pajisjet në një rrjet) dhe multicast (e njëjtë, por pak e ndryshme- jep aftësinë për çdo pajisje të transmetuar si një server).
- Gabimet në programin tuaj dhe bibliotekat e sistemit operativ (që menaxhojnë vetë komunikimin TCP, ruteri juaj nuk bën pothuajse asgjë përveç lidhjes së dy [ose më shumë] pajisjeve)
Pse të mos përdorni UDP, mund të pyesni? Epo, ndryshe nga TCP, UDP nuk sigurohet që klienti juaj të marrë të dhënat para se të dërgojë më shumë. Si të dërgosh një email dhe të mos dish nëse klienti e merr atë. Për më tepër, UDP është më pak e sigurt. Për më shumë informacion, lexoni këtë postim nga Stack Exchange Super User
Ky artikull është i mirë dhe i rekomanduar.
Hapi 12: [TCP]: Le të bëjmë një klient
Klienti (Raspberry Pi në rastin tonë), që merr të dhënat nga serveri (PC -ja jonë në rastin tonë) do të marrë të dhëna për t'i dërguar në Pi (komandat serike që do të kryhen në Arduino) dhe do të marrë të dhëna mbrapa (Leximet e sensorit dhe reagime drejtpërdrejt nga Arduino. Skema e bashkangjitur tregon marrëdhënien midis të treve.
Artikulli Python Wiki TcpCommunication tregon se është kaq e thjeshtë të bësh një komunikim të tillë me disa rreshta kodi duke përdorur modulin e integruar të prizës. Ne do të kemi një program në PC dhe një program tjetër në Pi.
Ne do të punojmë me ndërprerje. Mësoni më shumë në hapin Shpjegimet rreth tyre. Lexoni atje edhe për tamponët. Tani, ne mund të lexojmë të dhënat që kemi duke përdorur data = s.recv (BUFFER_SIZE), por do të jetë sa karaktere kemi përcaktuar me kafshime boshe. A mund të përdorim ndërprerje? Një pyetje tjetër: a do të jetë tamponi bosh apo do të presë që serveri të dërgojë më shumë të dhëna në të cilin rast serveri/klienti do të bëjë një përjashtim të kohës?
Le ta trajtojmë atë një nga një. Para se ta bëjmë këtë, unë kam kërkuar këtë artikull të Wikipedia që liston portet e përdorura TCP dhe UDP. Pas një vështrimi të shpejtë kam vendosur që ky projekt të komunikojë në portin 12298 sepse nuk përdoret nga Sistemi Operativ dhe shërbimet lokale.
Hapi 13: Provoni Komunikatat tona Tcp
Për të parë nëse mund të përdorim ndërprerjet, le të bëjmë një klient të thjeshtë dhe një server duke përdorur Linjën e Komandës Python. Unë do ta bëj atë në hapat e mëposhtëm:
- Filloni një program që dërgon një tekst përmes Tcp në një lak përmes një porte perde
- Filloni një program tjetër (paralelisht) që lexon të gjithë tekstin në një lak dhe e printon atë në ekran.
Do të shfaqen vetëm segmente të programit. Të gjithë programet funksionojnë me Python 3. Të gjitha këto programe janë që të dërgojnë komandën serike nga tastiera e përdoruesit të kompjuterit në Arduino përmes Pi.
- SBcontrolPC.py - Për tu ekzekutuar në PC. Fillon një lidhje TCP në adresën lokale dhe në portin e specifikuar (unë përdor portin 12298, shihni hapin e mëparshëm pse)
- SBcontrolPi.py - Të drejtohet në Pi. Lexon tamponin e tij çdo gjysmë sekonde (0.5 sekonda). Fillon një skenar shell që menaxhon gjëra të tilla si transmetimi i videove etj.
Recommended:
Ndërtoni një robot 15 -dollarësh të kontrolluar nga telekomanda ESP8266 / makinë / rezervuar për iOS dhe Android: 4 hapa
Ndërtoni një Robot Butler / Makinë / Tank 15 dollarësh të kontrolluar nga distanca për Ios dhe Android: A e urreni të ecni në kuzhinë për të kapur një meze të lehtë? Apo për të pirë një pije të re? E gjithë kjo mund të rregullohet me këtë shërbëtor të thjeshtë me telekomandë 15 dollarë. Para se të vazhdojmë më tej, unë jam duke drejtuar një projekt Kickstarter tani për një brez led RGB të kontrolluar me zë
Otto DIY - Ndërtoni robotin tuaj në një orë !: 9 hapa (me fotografi)
Otto DIY - Ndërtoni robotin tuaj në një orë !: Otto është një robot interaktiv që çdokush mund ta bëjë !, Otto ecën, vallëzon, bën tinguj dhe shmang pengesat. Otto është plotësisht me burim të hapur, i pajtueshëm me Arduino, i printueshëm 3D dhe me një rrjet social mision ndikimi për të krijuar një mjedis gjithëpërfshirës për të gjithë k
Automatizimi dhe monitorimi i shtëpisë i kontrolluar nga zëri/interneti duke përdorur ESP8266 dhe Google Home Mini: 6 hapa
Automatizimi dhe monitorimi i shtëpisë i kontrolluar nga zëri/interneti duke përdorur ESP8266 dhe Google Home Mini: Hej !! Pas një pushimi të gjatë unë jam këtu pasi të gjithë duhet të bëjmë diçka të mërzitshme (punë) për të fituar. Pas të gjithë artikujve të AUTOMATITS SOM SHTPIS kam shkruar nga BLUETOOTH, IR, Local WIFI, Cloud dmth ato të vështirat, * TANI * vjen më e lehtë por më efikase
Kontrolloni Esp6266 tuaj nga Interneti? Falas dhe e lehtë: 7 hapa
Kontrolloni Esp6266 tuaj nga Interneti? Falas dhe e lehtë: Sa herë nuk kemi kërkuar një mënyrë të thjeshtë për të komunikuar me pajisjet tona përmes internetit pa komplikime dhe / ose aplikacione komplekse ndërmjetësuese, DNS, adresa IP ose VPN. Shumë herë më është pyetur se si të aktivizoj një udhëhequr, r
Ndërtoni Robotin tuaj Butler !!! - Tutorial, Fotografi dhe Video: 58 hapa (me fotografi)
Ndërtoni Robotin tuaj Butler !!! - Tutorial, Fotografi dhe Video: EDIT: Më shumë informacion mbi projektet e mia shikoni faqen time të re në internet: narobo.com Unë gjithashtu këshillohem për robotikë, mekatronikë dhe projekte/produkte me efekte speciale. Shikoni faqen time në internet - narobo.com për më shumë detaje. Keni kërkuar ndonjëherë një robot shërbëtor që bisedon me ju