- Instal·lació i configuració de "Motion" per obtenir feed de vídeo:
- Configuració de Flask a Raspberry Pi per controlar el robot a través de la pàgina web:
- Codi HTML de la pàgina web:
- Robot de vigilància
- Diagrama i configuració del circuit:
- Com operar:
En aquesta sessió de bricolatge, estem construint un cotxe robòtic de vigilància controlat per web mitjançant raspberry pi i una càmera web. Podria ser una eina de seguretat i espia útil i econòmica, que té moltes opcions configurables i es pot construir en poques hores. En aquest projecte IoT, utilitzem principalment Raspberry Pi, càmera web USB i dos motors de corrent continu amb xassís Robot per construir aquest cotxe robotitzat.
Té una càmera web muntada sobre ella, a través de la qual obtindrem un feed de vídeo en directe i la part interessant aquí és que podem controlar i moure aquest robot des d’un navegador web per Internet. Com que es pot controlar mitjançant una pàgina web, significa que també es pot controlar mitjançant una pàgina web al mòbil. Hem creat una pàgina web en HTML que té enllaços esquerre, dret, endavant i enrere, fent clic sobre el qual podem moure el robot en qualsevol direcció. Aquí hem utilitzat "Motion" per obtenir un feed de vídeo en directe des de la càmera USB i hem utilitzat " Flask" per enviar ordres des de la pàgina web a Raspberry Pi mitjançant pythonper moure el robot, que s’explica detalladament a la part posterior d’aquest tutorial. Tenim el sistema operatiu Raspbian Jessie instal·lat a la nostra placa Raspberry Pi. Podeu consultar aquest article per instal·lar el sistema operatiu Raspbian i començar a utilitzar Raspberry Pi.
Instal·lació i configuració de "Motion" per obtenir feed de vídeo:
Motion (Surveillance Software) és un programari CCTV de detecció de moviment de codi obert gratuït, desenvolupat per a Linux. Detecta el moviment i comença a gravar-ne el vídeo. Amb "Motion" instal·lat al vostre Raspberry Pi, podeu convertir el vostre Raspberry Pi màgicament en una càmera de seguretat. S'utilitza per obtenir feed de vídeo en directe, fer vídeos de timelapse i fer instantànies a intervals regulars. Enregistra i desa el vídeo cada vegada que detecta moviment o qualsevol pertorbació a l'àrea de visualització. El canal de vídeo en directe es pot veure al navegador web introduint l'adreça IP de Pi juntament amb el port.
Hem creat un tutorial detallat sobre l’ús de Motion amb Raspberry Pi i càmera USB, aquí expliquem breument la seva instal·lació a Raspberry pi perquè el nostre robot enviï transmissions de vídeo en directe a la pàgina web.
Aquí només heu d'executar poques ordres per començar a obtenir el primer canal de vídeo a la xarxa. Abans d’això, comproveu correctament que el vostre Raspberry Pi estigui connectat a Internet, ja sigui mitjançant LAN o Wi-Fi i, a continuació, seguiu els passos següents:
Pas 1: primer executeu l'ordre següent per actualitzar el sistema operatiu Raspbian a Raspberry Pi:
sudo apt-get update
Pas 2: A continuació, instal·leu la biblioteca "Motion" mitjançant l'ordre següent:
sudo apt-get install motion
Pas 3: Ara configureu el daemon de moviment a sí editant el fitxer: / etc / default / motion perquè s'executi sempre. Editeu aquest fitxer amb l'editor 'nano' amb 'sudo' com s'indica a continuació:
sudo nano / etc / default / motion

A continuació, deseu el fitxer prement "CTRL + X", després "Y" i Enter.
Pas 4: ara hem d’ establir el permís per al Directori de destinació (/ var / lib / motion /), en què Motion desa totes les gravacions de vídeo i els fitxers d’imatges. Hem d’establir “Motion” com a propietari d’aquest directori mitjançant l’ordre següent:
sudo chown motion: moviment / var / lib / moviment /
Aquest permís és necessari en cas contrari, obtindreu un error quan comproveu l'estat del servei de moviment.
Podeu comprovar l’estat del servei mitjançant aquesta ordre: estat de moviment del servei sudo
Pas 5: Ara ja hem acabat, només hem de canviar una opció de configuració al fitxer de configuració de Motion (/etc/motion/motion.conf ) que està desactivat stream_localhost. Hem de desactivar aquesta transmissió d'amfitrió local, en cas contrari no podrem accedir al canal de vídeo de la nostra xarxa i només serà accessible des del mateix Raspberry Pi. Per fer-ho, editeu el fitxer de configuració de moviment amb l'editor "nano" i desactiveu-lo, tal com es mostra a continuació:
sudo nano /etc/motion/motion.conf

Ara hem acabat i llest per obtenir el nostre canal en directe des de la càmera web USB connectada a Pi. Només heu d’ iniciar (o reiniciar) el servei Motion mitjançant l’ordre següent i obrir la vostra IP de Raspberry Pi, amb el port 8081, al navegador (com ara 192.168.43.199:8081). En aquest projecte hem incorporat aquesta IP al nostre codi HTML a l’ etiqueta img src .
sudo /etc/init.d/motion restart
I veureu el feed en directe des de la càmera web. Aquí hem utilitzat una càmera web USB de baix cost que funcionava sense problemes amb la nostra Raspberry Pi, però podeu utilitzar una càmera de bona qualitat per obtenir una millor resolució. Com es mostrarà al navegador, podeu utilitzar qualsevol dispositiu per veure el feed, que admeti navegadors web com ara mòbils, tauletes, etc.
Proveu a reiniciar el Raspberry Pi com a pas de resolució de problemes quan calgui:
sudo reiniciar
Tot es tracta d’ utilitzar Motion per al nostre robot de vigilància, a part d’això, té diverses opcions de configuració que ja hem comentat al nostre tutorial anterior.
Nota: Si sou un model de Raspberry Pi per sota de la versió 3, és possible que necessiteu un dongle Wi-Fi per connectar sense fils Raspberry Pi al router.
Configuració de Flask a Raspberry Pi per controlar el robot a través de la pàgina web:
Aquí hem creat un servidor web mitjançant Flask, que proporciona una manera d’ enviar les ordres des de la pàgina web a Raspberry Pi per controlar el robot a la xarxa. Flask ens permet executar els nostres scripts python a través d’una pàgina web i podem enviar i rebre dades de Raspberry Pi al navegador web i viceversa. Flask és un microframework per a Python. Aquesta eina està basada en Unicode i té un servidor i un depurador de desenvolupament integrats, suport integrat per a proves d’unitats, suport per a cookies segures i fàcil d’utilitzar; aquestes coses el fan útil per a l’aficionat.
Instal·leu un paquet de suport de matràs al Raspberry Pi mitjançant l'ordre donada:
$ pip install Flask
A continuació, podem utilitzar el Flask només important-lo al nostre programa, de la mateixa manera que hem importat els següents paquets de Flask per a aquest projecte:
des de la importació de flascó Flascó des de la importació de flascó Flascó, render_template, sol·licitud
Podeu obtenir més informació sobre la programació mitjançant Flask aquí, consultar també els nostres projectes anteriors en què hem utilitzat Flask per enviar el missatge de la pàgina web a Raspberry Pi i enviar valor de pes a Raspberry Pi a Smart Container.
Codi HTML de la pàgina web:
Hem creat una pàgina web amb llenguatge HTML per mostrar enllaços de control (esquerra, dreta, endavant, enrere) per moure el robot del navegador web. Hem utilitzat un script jQuery per trucar a les funcions del nostre programa Python. Hi ha cinc funcions en Python Code per moure el robot cap a l'esquerra, cap a la dreta, cap endavant, cap enrere i aturar-lo. Al final s’ha donat un codi complet de Python. Aquestes funcions s'executaran fent clic als enllaços de control de la pàgina web i els motors es mouran en funció de l'enllaç que es faci clic. Aquí hem escrit el codi de manera que el robot es mogui en certa direcció mentre feu clic i mantingueu premut l'enllaç i, tan bon punt deixem el botó del ratolí, el robot s'aturarà. A continuació es mostra el codi HTML de la pàgina web, inclosa la jQuery:
Aquí podeu veure l’adreça IP, en què s’emmarca el vídeo, a la pàgina web mitjançant l’ etiqueta img src . Canvieu l'adreça IP segons el vostre Raspberry Pi, però mantingueu el mateix port.
L'usuari ha de copiar-enganxar el codi HTML indicat anteriorment en algun editor de text (bloc de notes) i desar el fitxer amb l'extensió.HTML (robot.html). A continuació, poseu aquest fitxer HTML a la carpeta / templates pel que fa a la vostra ubicació de script python. Vol dir que heu de crear una carpeta anomenada plantilles, on heu col·locat el fitxer de codi Python per a aquest robot de vigilància del gerd i, a continuació, poseu el fitxer robot.html en aquesta carpeta de plantilles. Aquest pas és important, en cas contrari el nostre projecte no funcionarà. Podeu obrir directament el fitxer robot.html fent doble clic sobre ell per veure com quedaran els vostres enllaços de control. Consulteu tot el procés a Vídeo de demostració al final. Després d’haver acabat amb la programació i tot, només podem executar el codi Python a Raspberry Pi i obrir la IP_address_of_your_Pi: 5010 al navegador web (com

Podeu comprovar l’adreça IP del vostre Raspberry Pi mitjançant l’ ordre ifconfig :
ifconfig
Diagrama i configuració del circuit:
Després de provar el canal de vídeo en viu i el codi HTML, hem de construir un robot mitjançant xassís, rodes i cargols de robot fets a mà o ja fets a mà. A continuació, col·loqueu-hi el banc d’energia per alimentar el Raspberry pi i, a continuació, col·loqueu el Raspberry Pi i la càmera web sobre el banc d’alimentació i fixeu la configuració amb cinta de violoncel o tires de goma, connecteu la càmera USB amb Raspberry Pi


En aquest projecte IoT, no necessitem fer moltes connexions, només necessitem connectar alguns cables per als motors de controlador IC L293D i motors DC. A continuació es mostren les connexions al diagrama de circuits. Aquí hem utilitzat un PCB d’ús general per muntar IC L293D per reduir l’espai, però també podeu utilitzar una placa de pa petita per connectar motors de CC amb L293D.

Com operar:
El funcionament i el funcionament d’aquest robot de vigilància és molt fàcil. Creeu un fitxer python (extensió.py) i copieu-hi el codi següent i deseu-lo al vostre Raspberry Pi. A continuació, poseu el fitxer HTML a la carpeta de plantilles tal com s’explica més amunt. No oblideu canviar l'adreça IP al fitxer HTML.
A continuació, executeu el codi Python introduint l'ordre següent:
nom_de_fitxer.python
A continuació, obriu la vostra adreça IP de Raspberry Pi amb el port 5010, com ara http://192.168.43.199:5010 (substituïu de nou l'adreça IP per la vostra adreça). Ara veureu la pàgina web amb quatre enllaços de control de robots i vídeo en directe. L’usuari pot controlar el robot fent clic i mantenint premuts els enllaços. Si l’usuari fa clic i manté premuts els enllaços, el robot es mourà d’acord amb l’enllaç en què es faci clic i quan l’usuari deixarà l’enllaç, el robot s’aturarà automàticament.


A continuació es mostra el codi complet de Python, on hem escrit diverses funcions per controlar el robot fent clic als enllaços de la pàgina web. Els podeu entendre fàcilment o si sou principiant, consulteu els nostres tutorials anteriors de Raspberry Pi. També visiteu la nostra secció de robòtica per obtenir robots més interessants i fàcils de construir.
