Obsah:
- Krok 1: Varovanie: Buďte opatrní, keď to vyskúšate doma
- Krok 2: Komponenty
- Krok 6: Adresa pre Pi
- Krok 7: Plán
- Krok 8: Fyzická aktivita
- Krok 9: Automatické spustenie Raspberry Pi
- Krok 10: Houeston, máme problém … DC motory nie sú rovnakým modelom
- Krok 11: [TCP]: Prečo TCP a nezabezpečený shell? Čo je to TCP?
- Krok 12: [TCP]: Vytvorme si klienta
- Krok 13: Vyskúšajte naše Tcp Comms
Video: Zostavte si svojho robota na streamovanie videa riadeného internetom s Arduino a Raspberry Pi: 15 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:55
Som @RedPhantom (alias LiquidCrystalDisplay / Itay), 14 -ročný študent z Izraela, ktorý sa učí na strednej škole Maxa Sheina Junior High School for Advanced Science and Mathematics. Vytváram tento projekt, aby sa z neho každý mohol učiť a zdieľať!
Možno ste si mysleli: hmm … som geek … A moje deti chcú, aby som s nimi urobil projekt … Chcel postaviť robota. Chcela to obliecť ako malé šteňa. Je to dobrý víkendový projekt!
Raspberry Pi je ideálny na každé použitie: dnes predstavíme schopnosti tohto mikropočítača vyrobiť robota. Tento robot môže:
- Jazdite a ovládajte sa prostredníctvom siete LAN (WiFi) pomocou akéhokoľvek počítača pripojeného k rovnakej sieti WiFi, ako je Raspberry Pi.
- Streamujte video naživo pomocou kamerového modulu Raspberry Pi
- Odosielajte údaje zo senzorov pomocou Arduina
Ak chcete zistiť, čo potrebujete pre tento pekný svetelný projekt, prečítajte si ďalší krok (upozornenia) a potom krok Wanted: Components.
Tu je repo GitHub: GITHUB REPO MNE
Tu je stránka projektu: MIESTO PROJEKTU
Krok 1: Varovanie: Buďte opatrní, keď to vyskúšate doma
UPOZORNENIE:
AUTOR TÝCHTO NÁVODOVÝCH ÚVAHOV, KTORÉ MÁTE DOSTATOČNÉ VEDOMOSTI O ELEKTRINE A ZÁKLADNOM PREVÁDZKE ELEKTRICKÉHO ZARIADENIA. AK NIE SÚ OPATRNÝ a NEDODRŽUJETE POKYNY V TOMTO NÁVODE, MÔŽETE: POŠKODIŤ ELEKTRONICKÉ ZARIADENIE, SPÁLIŤ SEBA ALEBO SPÔSOBIŤ POŽIAR. Buďte opatrní a používajte zdravý rozum. Ak nemáte znalosti potrebné pre tento tutoriál (spájkovanie, základy elektroniky), urobte to s osobou, ktorá to robí. Ďakujem.
TENTO INŠTRUKTÍVNY AUTOR ODSTRAŇUJE AKÚKOĽVEK ZODPOVEDNOSŤ ZA SÁM, KTORÚ spôsobili škody, ALEBO STRATU MAJETKU ALEBO FYZICKÉ POŠKODENIE. POUŽIJTE SPOLOČNÝ SMYSL
Krok 2: Komponenty
Pred zahriatím spájkovačky musíme prejsť na to, čo by malo byť s čím spojené. Vytvoril som tento jednoduchý graf (MS Paint ma nikdy nesklame), ktorý popisuje, kde sa určitá časť nachádza v robote.
Obrázok je postavený tak, aby ste si ho mohli priblížiť a vidieť v plnom rozlíšení a prečítať si text.
Krok 6: Adresa pre Pi
Arduino hovorí s Pi podľa plánu. A Pi hovorí s počítačom, ako to teda celé funguje?
Pozrime sa na našu sekvenciu inicializácie pripojenia:
- Raspberry Pi začína
- Arduino začína
- Raspberry Pi spustí klienta TCP. Vysiela svoju IP adresu pomocou LED diódy.
- Raspberry Pi spustí službu sériovej komunikácie a pripojí sa k Arduinu
Preto sme vytvorili nejaký druh komunikácie:
Počítač Raspberry Pi Arduino
Na napísanie programu, ktorý hovorí s Raspberry Pi a Python, na zápis protokolu Arduino/Raspberry Pi som použil Visual Basic. NET (komunita Microsoft Visual Studio 2013 Community).
Všetko, čo musíte urobiť, aby ste poznali svoju IP IP adresu, je pripojiť ju k obrazovke HDMI, prihlásiť sa do Shell a napísať príkaz:
názov hostiteľa -I
Krok 7: Plán
Teraz, keď máme IP adresu Pi, SSH naň vložíme (SSH je Secure Shell - vzdialene sa pripájame k Linuxovému shellu) a napíšeme súbor, ktorý zobrazí IP adresu Servera. Pi pri spustení to urobí tiež a napíše port, ktorý počúva. Tu uvediem iba niekoľko príkladov z kódu, ale je k dispozícii na stiahnutie z tohto kroku az pobočky GitHub, ktorú som vytvoril. Podrobnosti o tom neskôr.
Funguje to takto:
- RPi sa spustí.
- RPi spustí program Tcp na svojej lokálnej IP a určenom porte.
- RPI začne streamovať video
- RPI sa vypne.
Krok 8: Fyzická aktivita
Teraz sme pripravení začať fyzicky budovať celú vec. Ak ste si neprečítali krok 1 (výstražný text a licencovanie), urobte to pred pokračovaním. Nezodpovedám za žiadne spôsobené škody. A v prípade pochybností nesmie byť tento robot použitý na vojenské účely, pokiaľ nejde o zombie apokalypsu. A aj vtedy používajte zdravý rozum.
Odporúčame vám, aby ste si prečítali pokyny podľa pokynov v zozname na čítanie.
Stiahnite si schému pripojenia z kroku „Pripojenia“.
MOTORY
Motory, ktoré ste si kúpili, pravdepodobne vyzerajú takto a je v poriadku, ak nie: Ak majú iba dva vodiče (vo väčšine prípadov čierny a červený), malo by to fungovať. Ich prevádzkové napätie a prúd nájdete v online liste s údajmi. Neváhajte sa opýtať v sekcii komentárov. Vždy ich čítam.
H-MOST
Nikdy predtým som nepracoval s mostíkom H. Trochu som googlil a našiel som dobrý návod, ktorý vysvetľuje princípy HB. Môžete sa tam tiež pozrieť (pozri krok Zoznam čitateľov) a tiež pripojiť svoje. Nebudem veľa vysvetľovať. Môžete si tam prečítať a vedieť všetko, čo by ste o tomto obvode mali vedieť.
LED
Táto malá žiarovka môže pracovať z logického napätia len preto, že nevyžaduje takmer žiadny prúd a napätie 3V-5V 4mA-18mA. Voliteľné.
ARDUINO
Arduino bude dostávať signály a príkazy prostredníctvom sériového pripojenia z Raspberry Pi. Na ovládanie našich motorov používame Arduino, pretože Raspberry Pi nemôže prenášať analógové hodnoty cez GPIO.
Krok 9: Automatické spustenie Raspberry Pi
Pri každom zapnutí Raspberry Pi budete musieť zadať používateľské meno a heslo. Nechceme to robiť, pretože niekedy jednoducho nemôžeme k Pi pripojiť klávesnicu, takže v tomto návode vykonáme tieto kroky a automaticky spustíme program, ktorý Pi pripravuje. Ak sa to udrží v slučke, môžeme to kedykoľvek prerušiť Ctrl+C.
- sudo crontab -e
- A potom zadáme príkaz, ktorý tento súbor pridá do automatického spustenia v správcovi cron.
Zavoláme súbor pibot.sh, ktorý bude dávať príkazy na spustenie všetkých druhov python skriptov na obsluhu robota. Prejdeme na to: (sudo s oponou Python programy, aby sme programu umožnili prístup k GPIO)
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, ktorý vykonáva všetku prácu na strane pi, sa bude nazývať upon_startup.sh.
Jedná sa o jednoduchý shell skript, ktorý spúšťa všetko.
Krok 10: Houeston, máme problém … DC motory nie sú rovnakým modelom
H-Bridge som už vyskúšal a funguje dobre, ale keď zapojím motory, ktoré som získal z platformy robota, objednal som online, tieto dva motory sa otáčajú rôznymi rýchlosťami a vydávajú rôzne zvuky. Na motoroch som zmenil plyn na 100%. Obaja nemohli bežať na maximum.
Zdá sa, že ide o dva rôzne motory. Jeden má väčší krútiaci moment, čo je skvelé pre tento druh robota, ale druhý by s robotom len tak nepohol. Takže sa točí v kruhoch.
V tomto bode mám sériový program na Arduine úplne v poriadku, ale server Tcp na počítači a klient Tcp na počítači Pi ešte nie sú kódované. Potom musím vyplniť tento príspevok do súťaže. Čo robím?
- Najprv strojnásobím napätie v motoroch. V údajovom liste bolo uvedené, že 3V, 6V ich nehýbalo. Potom je to 9V. Paralelne som zapojil teo batérie, aby som zdvojnásobil prúd a napätie zostáva rovnaké.
- Mám ďalšie motory, ktoré sa hodia na držiak na plošine? Možno vidím, či sú to podobné modely.
- Môžem nahradiť Servos, ak čokoláda skutočne zasiahne fanúšika.
Začala škola Budem musieť zistiť, čo robiť.
Poznámka: Prečo preboha píšem problémy, s ktorými sa tu stretávam? Ak ste teda menej skúsení a máte rovnaké problémy, budete vedieť, čo máte robiť.
Riešenie:
Urobil som teda ďalší test. Prispôsobil som rozdiel v rýchlosti v kóde Arduino.
POZNÁMKA: motory sa môžu pre vás otáčať rôznymi rýchlosťami! Zmeňte hodnoty v náčrte Arduino.
Krok 11: [TCP]: Prečo TCP a nezabezpečený shell? Čo je to TCP?
Mám dve vysvetlenia, prečo používať Tcp a nie SSH pre P. C. - Komunikácia Pi.
- Po prvé, SSH (Secure Shell, pozri Vysvetlivky) je určený na spúšťanie príkazov zo vzdialeného počítača. Nechať Pi reagovať s požadovanými informáciami je náročnejšie, pretože jedinou možnosťou, ako analyzovať údaje, je náročné a namáhavé spracovanie reťazcov.
- Za druhé, už vieme, ako používať SSH, a v tomto návode sa chceme naučiť viac spôsobov komunikácie medzi zariadeniami.
TCP alebo Transmission Control Protocol je základný protokol sady Internet Protocol Suite. Pôvodom je počiatočná implementácia siete, v ktorej dopĺňa internetový protokol (IP). Celá sada sa preto bežne označuje ako TCP/IP. TCP poskytuje spoľahlivé, usporiadané a chybami kontrolované doručovanie toku oktetov medzi aplikáciami bežiacimi na hostiteľoch komunikujúcich cez IP sieť.
(Z Wikipedie)
Profesionáli TCP sú teda:
- Zabezpečiť
- Rýchlo
- Funguje kdekoľvek v sieti
- Poskytuje metódy na kontrolu správneho prenosu údajov
- Flow Control: má ochranu v prípade, že odosielateľ údajov odosiela údaje príliš rýchlo na to, aby sa ich klient mohol zaregistrovať a spracovať.
A nevýhody sú:
- V TCP nemôžete vysielať (odosielať údaje na všetky zariadenia v sieti) a multicast (rovnaké, ale málo odlišné- dáva možnosť každému zariadeniu vysielať ako server).
- Chyby vo vašich knižniciach programov a operačných systémov (ktoré si sami spravujú komunikáciu TCP, váš smerovač nerobí takmer nič okrem pripojenia dvoch [alebo viacerých] zariadení)
Prečo nepoužívať UDP, môžete sa opýtať? Na rozdiel od TCP, UDP nezabezpečuje, aby váš klient získal údaje pred odoslaním ďalších. Rovnako ako odoslanie e -mailu a nevedenie, či ho klient dostane. Okrem toho je UDP menej bezpečný. Ak chcete získať ďalšie informácie, prečítajte si tento príspevok od Stack Exchange Super User
Tento článok je dobrý a odporúčaný.
Krok 12: [TCP]: Vytvorme si klienta
Klient (v našom prípade Raspberry Pi), ktorý prijíma údaje zo servera (v našom prípade náš počítač), dostane údaje na odoslanie do Pi (Sériové príkazy, ktoré sa budú vykonávať na zariadení Arduino) a prijme údaje späť (údaje zo snímačov) a spätná väzba priamo z Arduina. Priložená schéma ukazuje vzťah medzi týmito tromi.
Článok Python Wiki TcpCommunication ukazuje, že je také jednoduché uskutočniť takúto komunikáciu pomocou niekoľkých riadkov kódu pomocou vstavaného zásuvkového modulu. Budeme mať program na PC a ďalší program na Pi.
Budeme pracovať s prerušeniami. Získajte viac informácií v kroku Vysvetlivky o nich. Prečítajte si aj o nárazníkoch. Teraz môžeme čítať údaje, ktoré máme, pomocou parametra data = s.recv (BUFFER_SIZE), ale bude to, koľko znakov sme definovali prázdnymi bitmi. Môžeme používať prerušenia? Ďalšia otázka: bude vyrovnávacia pamäť prázdna alebo bude čakať, kým server odošle viac údajov, v takom prípade server/klient vyvolá výnimku časového limitu?
Poďme to riešiť po jednom. Predtým než to urobíme, pozrel som sa na tento článok z Wikipédie, ktorý uvádza použité porty TCP a UDP. Po letmom pohľade som sa rozhodol, že tento projekt bude komunikovať na porte 12298, pretože ho nepoužíva operačný systém a miestne služby.
Krok 13: Vyskúšajte naše Tcp Comms
Aby sme zistili, či môžeme používať prerušenia, urobme si jednoduchého klienta a server pomocou príkazového riadka Python. Urobím to v nasledujúcich krokoch:
- Spustite program, ktorý odosiela text cez Tcp v slučke cez port opony
- Spustite ďalší program (súbežne), ktorý v slučke prečíta celý text a vytlačí ho na obrazovku.
Zobrazia sa iba segmenty programu. Všetky programy bežia s jazykom Python 3. Všetky tieto programy stačia na odoslanie sériového príkazu z klávesnice používateľa počítača do Arduina cez Pi.
- SBcontrolPC.py - Spúšťa sa na počítači. Spustí pripojenie TCP na lokálnej adrese a na uvedenom porte (používam port 12298, pozri predchádzajúci krok)
- SBcontrolPi.py - Beží na Pi. Číta jeho vyrovnávaciu pamäť každú pol sekundu (0,5 sekundy). Spustí shell skript, ktorý spravuje napríklad streamovanie videa atď.
Odporúča:
Začíname s ESP32 CAM - Streamovanie videa pomocou ESP CAM cez Wifi - Projekt bezpečnostnej kamery ESP32: 8 krokov
Začíname s ESP32 CAM | Streamovanie videa pomocou ESP CAM cez Wifi | Projekt bezpečnostnej kamery ESP32: Dnes sa naučíme používať túto novú dosku ESP32 CAM a ako ju môžeme kódovať a používať ako bezpečnostnú kameru a získať streamované video cez wifi
Sada Raspberry Pi Web Stream - časť 2 (Streamovanie videa Pi): 6 krokov
Sada Raspberry Pi Web Stream - 2. časť (streamovanie videa Pi): Dobre, nemyslel som si, že to vyžaduje fotografie, ale web má rád obrázky. Väčšinou ide o sériu príkazov a krokov pre vás. Existuje niekoľko ďalších stránok, ktoré sa môžu zaoberať akýmikoľvek zvláštnosťami. To sa mi osvedčilo. Toto kombinuje ostatné
Kamera ESP 32 na streamovanie videa cez WiFi - Začíname s doskou ESP 32 CAM: 8 krokov
Streamovanie videa z kamery ESP 32 cez WiFi | Začíname s doskou ESP 32 CAM: ESP32-CAM je veľmi malý kamerový modul s čipom ESP32-S, ktorý stojí približne 10 dolárov. Okrem fotoaparátu OV2640 a niekoľkých GPIO na pripojenie periférnych zariadení obsahuje aj slot na kartu microSD, ktorý môže byť užitočný na ukladanie snímok nasnímaných
Zvukové vysielanie a streamovanie videa pomocou Raspberry Pi 3 .: 6 krokov
Vysielanie zvuku a streamovanie videa pomocou Raspberry Pi 3: Hlavným nástrojom tohto projektu je vysielanie zvuku do Raspberry Pi 3 z akéhokoľvek zariadenia pripojeného k spoločnej WiFi sieti a získavanie videa z Raspberry Pi 3 do akéhokoľvek zariadenia pripojeného k spoločnej WiFi sieti
Robot na streamovanie videa Raspberry Pi ovládaný cez WiFi: 8 krokov (s obrázkami)
Robot na streamovanie videa Raspberry Pi ovládaný Wifi: Rozmýšľali ste niekedy o vybudovaní skvelého robota s kamerou? Prišli ste na správne miesto, ukážem vám krok za krokom, ako postaviť tohto robota. S týmto môžete v noci vyraziť na lov duchov ovládaním a sledovaním videa na vašom