Obsah:
- Krok 1: Varování: Buďte opatrní a zkuste to doma
- Krok 2: Součásti
- Krok 6: Adresa pro Pi
- Krok 7: Plán
- Krok 8: Jít fyzicky
- Krok 9: Automatické spuštění Raspberry Pi
- Krok 10: Houestone, měli jsme problém … DC motory nejsou stejný model
- Krok 11: [TCP]: Proč TCP a nezabezpečené prostředí? Co je TCP?
- Krok 12: [TCP]: Pojďme si vytvořit klienta
- Krok 13: Vyzkoušejte naše Tcp Comms
Video: Vytvořte si svého robota pro streamování videa řízeného internetem s Arduino a Raspberry Pi: 15 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:18
Jsem @RedPhantom (aka LiquidCrystalDisplay / Itay), 14letý student z Izraele, který se učí na střední škole Maxe Sheina Junior High School for Advanced Science and Mathematics. Dělám tento projekt, aby se každý mohl učit a sdílet!
Možná jste si řekli: hmm … jsem geek … A moje děti chtějí, abych s nimi udělal projekt … Chtěl postavit robota. Chtěla to obléknout jako malé štěně. Je to dobrý víkendový projekt!
Raspberry Pi je ideální pro každé použití: dnes si vysvětlíme schopnosti tohoto mikropočítače vyrobit robota. Tento robot může:
- Jezděte a buďte ovládáni přes LAN (WiFi) pomocí jakéhokoli počítače připojeného ke stejné WiFi síti jako je Raspberry Pi.
- Živý přenos videa pomocí kamerového modulu Raspberry Pi
- Odesílejte data ze senzorů pomocí Arduina
Chcete -li zjistit, co potřebujete pro tento pěkný světelný projekt, přečtěte si další krok (varování) a poté krok Wanted: Components.
Zde je repo GitHub: GITHUB REPO BY ME
Zde je stránka projektu: MÍSTO PROJEKTU
Krok 1: Varování: Buďte opatrní a zkuste to doma
POZOR:
AUTOR TÝCHTO NÁVODOVÝCH PŘEDPOKLADŮ, KTERÉ MÁTE DOSTATEČNÉ ZNALOSTI O ELEKTRICKÉ ENERGII A ZÁKLADNÍM PROVOZU ELEKTRICKÉHO ZAŘÍZENÍ. POKUD NEJSTE OPATRNÍ A NEDODRŽUJETE POKYNY V TÉTO NÁVODU, MŮŽETE: POŠKODIT ELEKTRONICKÉ ZAŘÍZENÍ, SPÁLIT SE NEBO ZPŮSOBIT POŽÁR. Buďte opatrní a používejte zdravý rozum. Pokud nemáte znalosti potřebné pro tento tutoriál (pájení, základy elektroniky), proveďte prosím s osobou, která ano. Děkuji.
TENTO NÁVOD NA AUTOMATIKU ODSTRAŇUJE JAKOUKOLI ZODPOVĚDNOST ZE SEBE ZA ZPŮSOBENÉ POŠKOZENÍ NEBO ZTRACENÝ MAJETEK NEBO FYZICKÉ POŠKOZENÍ. POUŽIJTE SPOLEČNÝ SMYSL
Krok 2: Součásti
Než zahřejeme páječku, musíme si projít, co by mělo být s čím spojeno. Vytvořil jsem tento jednoduchý graf (MS Paint mě nikdy nezklame), který popisuje, kde se určitá část nachází v robotu.
Obrázek je postaven tak, že jej můžete přiblížit a zobrazit v plném rozlišení a přečíst si text.
Krok 6: Adresa pro Pi
Arduino mluví s Pi podle plánu. A Pi mluví s počítačem, jak to tedy celé funguje?
Podívejme se na naši sekvenci zahájení připojení:
- Raspberry Pi začíná
- Arduino začíná
- Raspberry Pi spustí TCP klienta. Svou IP adresu vysílá pomocí LED.
- Raspberry Pi spouští službu sériové komunikace a připojuje se k Arduinu
Proto jsme vytvořili nějaký druh komunikace:
Počítač Raspberry Pi Arduino
Použil jsem Visual Basic. NET (komunita Microsoft Visual Studio 2013 Community) k napsání programu, který hovoří s Raspberry Pi a Python k zápisu protokolu Arduino/Raspberry Pi.
Vše, co musíte udělat, abyste znali svou IP IP adresu, je připojit ji k obrazovce HDMI, přihlásit se do prostředí a zadat příkaz:
název hostitele -I
Krok 7: Plán
Nyní, když máme IP adresu Pi, do ní vložíme SSH (SSH je Secure Shell - připojujeme se vzdáleně k Linuxovému shellu) a napíšeme soubor, který zobrazí IP adresu Serveru. Pi při spuštění to udělá také a napíše port, který poslouchá. Zde uvedu pouze několik příkladů z kódu, ale je k dispozici ke stažení z tohoto kroku az pobočky GitHub, kterou jsem vytvořil. Podrobnosti o tom později.
Funguje to takto:
- RPi se spustí.
- RPi spouští program Tcp na své lokální IP a určeném portu.
- RPI začne streamovat video
- RPI se vypne.
Krok 8: Jít fyzicky
Nyní jsme připraveni celou věc fyzicky vybudovat. Pokud jste krok 1 (varovný text a licencování) nečetli, udělejte to, než budete pokračovat. Nezodpovídám za žádné způsobené škody. A v případě pochybností nesmí být tento robot použit pro vojenské účely, pokud nejde o zombie apokalypsu. A i tak použijte zdravý rozum.
Doporučuje se přečíst si pokyny v seznamu pro čtení.
Stáhněte si schéma připojení z kroku „Připojení“.
MOTORY
Motory, které jste si koupili, pravděpodobně vypadají takto a je v pořádku, pokud ne: pokud mají pouze dva vodiče (ve většině případů černý a červený), mělo by to fungovat. Vyhledejte jejich datový list online a podívejte se na jejich provozní napětí a proud. Neváhejte se zeptat v sekci komentáře. Vždy je čtu.
H-MOST
Nikdy předtím jsem s H-Bridge nepracoval. Trochu jsem googlil a našel jsem dobrý návod vysvětlující principy HB. Můžete se tam také podívat (viz krok Seznam čtení) a také připojit svůj. Nebudu moc vysvětlovat. Můžete si zde přečíst a vědět vše, co byste o tomto okruhu měli vědět.
VEDENÝ
Tato malá žárovka může běžet z logického napětí jen proto, že nevyžaduje téměř žádný proud a napětí 3V-5V 4mA-18mA. Volitelný.
ARDUINO
Arduino bude dostávat signály a příkazy přes sériové připojení z Raspberry Pi. K ovládání našich motorů používáme Arduino, protože Raspberry Pi nemůže přenášet analogové hodnoty přes GPIO.
Krok 9: Automatické spuštění Raspberry Pi
Při každém zapnutí Raspberry Pi budete muset zadat uživatelské jméno a heslo. Nechceme to dělat, protože někdy prostě nemůžeme připojit klávesnici k Pi, takže budeme postupovat podle těchto kroků z tohoto tutoriálu, abychom automaticky spustili program, který Pi připravuje. Pokud se dostane do smyčky, můžeme jej kdykoli přerušit pomocí Ctrl+C.
- sudo crontab -e
- A pak zadáme příkaz, který přidá tento soubor do automatického strartup ve správci cron.
Zavoláme soubor pibot.sh, který bude dávat příkazy ke spuštění všech druhů pythonových skriptů pro ovládání robota. Pojďme na to: (sudo s oponou Python programy, aby program pří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, který vykonává veškerou práci na straně pí, bude volán upon_startup.sh.
Jedná se o jednoduchý shell skript, který spouští vše.
Krok 10: Houestone, měli jsme problém … DC motory nejsou stejný model
H-Bridge jsem již testoval a funguje dobře, ale když připojím motory, které jsem získal z platformy robotů, objednal jsem online, tyto dva motory se otáčejí různými rychlostmi a vydávají různé zvuky. U motorů jsem změnil plyn na 100%. Oba nemohli běžet na maximum.
Vypadá to, že se jedná o dva různé motory. Jeden má větší točivý moment, což je skvělé pro tento druh robota, ale druhý by s robotem nepohyboval. Takže se točí v kruzích.
V tuto chvíli mám sériový program na Arduinu naprosto v pořádku, ale server Tcp na PC a klient Tcp na Pi zatím nejsou kódovány. Ve chvíli, kdy potřebuji vyplnit tento příspěvek do soutěže. Co mám dělat?
- Nejprve ztrojnásobím napětí pro motory. V datovém listu bylo uvedeno, že 3V, 6V je nehýbalo. Pak je to 9V. Paralelně jsem připojil teo baterie, abych zdvojnásobil proud a napětí zůstává stejné.
- Mám jiné motory, které se hodí k držáku na plošině? Možná vidím, jestli jsou to podobné modely.
- Mohu nahradit Servos, pokud čokoláda opravdu zasáhne fanouška.
Začala škola. Budu muset zjistit, co dělat.
Poznámka: Proč proboha píšu problémy, se kterými se tu setkávám? Pokud jste tedy méně zkušení a máte stejné problémy, budete vědět, co dělat.
Řešení:
Udělal jsem tedy další test. Přizpůsobil jsem rozdíl v rychlosti v kódu Arduino.
POZNÁMKA: motory se pro vás mohou točit různými rychlostmi! Změňte hodnoty v náčrtu Arduino.
Krok 11: [TCP]: Proč TCP a nezabezpečené prostředí? Co je TCP?
Mám dvě vysvětlení, proč používat Tcp a ne SSH pro P. C. - Komunikace Pi.
- Za prvé, SSH (Secure Shell, viz Vysvětlení) je určen ke spouštění příkazů ze vzdáleného počítače. Zajistit, aby Pi reagovalo požadovanými informacemi, je obtížnější, protože jedinou možností, jak analyzovat data, je náročné a únavné zpracování řetězců.
- Za druhé, již víme, jak používat SSH, a v tomto kurzu se chceme naučit více způsobů komunikace mezi zařízeními.
TCP nebo Transaction Control Protocol je základní protokol sady Internet Protocol Suite. Vznikl v počáteční implementaci sítě, ve které doplňoval internetový protokol (IP). Celá sada se proto běžně označuje jako TCP/IP. TCP poskytuje spolehlivé, seřazené a chybově kontrolované doručování proudu oktetů mezi aplikacemi běžícími na hostitelích komunikujících přes IP síť.
(Z Wikipedie)
Profesionálové TCP jsou tedy:
- Zajistit
- Rychle
- Funguje kdekoli v síti
- Poskytuje metody pro kontrolu správného přenosu dat
- Flow Control: má ochranu v případě, že odesílatel dat odesílá data příliš rychle na to, aby se klient mohl zaregistrovat a zpracovat.
A nevýhody jsou:
- V TCP nemůžete vysílat (odesílat data na všechna zařízení v síti) a vícesměrové vysílání (stejné, ale málo odlišné- dává možnost každému zařízení vysílat jako server).
- Chyby ve vašich knihovnách programů a operačních systémů (které si samy spravují komunikaci TCP, váš router nedělá téměř nic kromě připojení dvou [nebo více] zařízení)
Proč nepoužívat UDP, můžete se zeptat? Na rozdíl od TCP UDP nezajistí, aby váš klient získal data před odesláním dalších. Stejně jako odeslání e -mailu a nevědět, zda jej klient obdrží. Kromě toho je UDP méně bezpečný. Pro více informací si přečtěte tento příspěvek od Stack Exchange Super User
Tento článek je dobrý a doporučený.
Krok 12: [TCP]: Pojďme si vytvořit klienta
Klient (v našem případě Raspberry Pi), který přijímá data ze serveru (v našem případě Náš počítač), získá data k odeslání na Pi (Sériové příkazy, které budou prováděny na Arduinu) a bude přijímat data zpět (Čtení senzorů a zpětná vazba přímo z Arduina. Přiložené schéma ukazuje vztah mezi těmito třemi.
Článek Python Wiki TcpCommunication ukazuje, že je tak jednoduché provést takovou komunikaci pomocí několika řádků kódu pomocí integrovaného modulu soketu. Budeme mít program na PC a další program na Pi.
Budeme pracovat s přerušeními. Další informace najdete v kroku Vysvětlení o nich. Přečtěte si také o vyrovnávacích pamětech. Nyní můžeme číst data, která máme, pomocí data = s.recv (BUFFER_SIZE), ale bude to, kolik znaků jsme definovali s prázdnými kousky. Můžeme použít přerušení? Další otázka: bude vyrovnávací paměť prázdná nebo bude čekat, až server odešle více dat, v takovém případě server/klient vyvolá výjimku časového limitu?
Pojďme to řešit po jednom. Než tak učiníme, podíval jsem se na tento článek Wikipedie, který uvádí použité porty TCP a UDP. Po letmém pohledu jsem se rozhodl, že tento projekt bude komunikovat na portu 12298, protože jej nepoužívá operační systém a místní služby.
Krok 13: Vyzkoušejte naše Tcp Comms
Abychom zjistili, zda můžeme používat přerušení, vytvořme jednoduchého klienta a server pomocí příkazového řádku Pythonu. Udělám to v následujících krocích:
- Spusťte program, který ve smyčce přes port opony odešle text přes Tcp
- Spusťte další program (paralelně), který přečte celý text ve smyčce a vytiskne jej na obrazovku.
Zobrazí se pouze segmenty programu. Všechny programy běží s Pythonem 3. Všechny tyto programy stačí poslat sériový příkaz z klávesnice uživatele PC do Arduina přes Pi.
- SBcontrolPC.py - Spuštění na PC. Spustí připojení TCP na místní adrese a na uvedeném portu (používám port 12298, viz předchozí krok)
- SBcontrolPi.py - Spouští se na Pi. Čte jeho vyrovnávací paměť každou půl sekundy (0,5 sekundy). Spustí skript prostředí, který spravuje například streamování videa atd.
Doporučuje:
Živé streamování/nahrávání videa na OBS: 5 kroků
Živé streamování/nahrávání videa na OBS: Tento Instructable učí, jak živě streamovat nebo nahrávat video přímo z obrazovky počítače. Existuje několik způsobů živého přenosu a ještě více způsobů nahrávání, ale tato příručka se zaměří na streamovací platformu OBS. Jakýkoli rozumně moderní komp
Začínáme s ESP32 CAM - Streamování videa pomocí ESP CAM přes Wifi - Projekt bezpečnostní kamery ESP32: 8 kroků
Začínáme s ESP32 CAM | Streamování videa pomocí ESP CAM přes Wifi | Projekt bezpečnostní kamery ESP32: Dnes se naučíme používat tuto novou desku ESP32 CAM a jak ji můžeme kódovat a používat jako bezpečnostní kameru a získávat streamované video přes wifi
Sada Raspberry Pi Web Stream - Část 2 (streamování videa Pi): 6 kroků
Raspberry Pi Web Stream Kit - Část 2 (Pi Video Streaming): Dobře, nemyslel jsem si, že to potřebuje fotografie, ale web má rád obrázky. Většinou se jedná o sérii příkazů a kroků pro vás. Existuje řada dalších stránek, které se mohou zabývat jakýmikoli zvláštnostmi. To se mi osvědčilo. To kombinuje další
Zvukové vysílání a streamování videa pomocí Raspberry Pi 3 .: 6 kroků
Vysílání zvuku a streamování videa pomocí Raspberry Pi 3: Hlavním nástrojem tohoto projektu je vysílání zvuku do Raspberry Pi 3 z jakéhokoli zařízení připojeného ke společné WiFi síti a získávání videa z Raspberry Pi 3 na jakékoli zařízení připojené ke společné WiFi síti
Robot pro streamování videa Raspberry Pi Wifi: 8 kroků (s obrázky)
Robot pro streamování videa Raspberry Pi Wifi: Přemýšleli jste někdy o vybudování skvělého robota s kamerou? Přišli jste na správné místo, krok za krokem vám ukážu, jak postavit tohoto robota. S tímto můžete v noci vyrazit na lov duchů ovládáním a sledováním videa na vašem