Diferència entre revisions de la pàgina «Robot versió 6»
Línia 54: | Línia 54: | ||
=== Transmissió de dades als actuadors === | === Transmissió de dades als actuadors === | ||
+ | Es fa mitjançant un JSON amb els camps ''left'' i ''right'' que controlen les rodes de la dreta i les de l'esquerra. Els valors corresponen al cicle de treball (''duty cicle'') del sistema de modulació per amplada de pols (''PWM: Pulse Width Modulation''). Els valors entre -255 i 0 corresponen al 100% i 0% del cicle de treball amb els motors en marxa enrere, i els valors entre 0 i 255 corresponen al 0% i 100% del cicle de treball amb els motors en marxa endavant. | ||
+ | |||
+ | [[Image:ActuadorsRobot.png|center|ActuadorsRobot.png]] | ||
+ | |||
+ | En aquest exemple els motors de l'esquerra del robot van enrere amb un cicle de treball del 50% (el 100% és 255) i els motors de la dreta van endavant amb un cicle de treball del 50%: | ||
+ | |||
+ | {"left":-127,"right":127} | ||
=== Activació dels actuadors en funció dels sensors === | === Activació dels actuadors en funció dels sensors === |
Revisió del 10:30, 26 set 2019
Contingut
Robot
Aquesta és la sisena versió del robot educatiu dissenyat conjuntament per Edco i els professors Carles Olivé i Jordi Binefa de l'Escola del Clot - Jesuïtes El Clot.
Aquest robot està pensat per a funcionar amb un Arduino Nano o una Raspberry Pi Zero W.
La darrera versió dels codis per a fer-lo funcionar són al dipòsit d'Arduino i al dipòsit de la Raspberry Pi.
Connexions
Esborrany de l'esquema electrònic
Control des del NodeRED i MQTT
NodeRED
Python
Interacció amb el maquinari
Inici i aturada del procés al rerefons
Per a fer la comunicació entre el maquinari i el NodeRED cal executar:
/home/pi/code/robot/robot_01.py
Altrament, també es pot executar des dels nodes del NodeRED:
Anomenem l'execució del codi com a procesUnic:
bash -c "exec -a procesUnic /usr/bin/python3 /home/pi/code/robot/robot_01.py"
I per a matar el procés pel nom procesUnic:
pkill -f procesUnic
Recepció de les dades dels sensors
Objecte JSON amb les dades del sensor:
us: distància en centímetres del sensor d'ultrasons.
bL i bR: Sensors infrarojos (IR) darrere esquerre (back left) i darrere dret (back right). L'estat W és la detecció d'un color blanc (white) quan rebota el llum i l'estat B és la detecció d'una absorció de llum, normalment la detecció del color negre (black).
bFL, bCL, bCC, bCR i bFR: Sensors infarojos (IR) frontals (far left, center left, center, center right i far right). L'estat W és la detecció d'un color blanc (white) quan rebota el llum i l'estat B és la detecció d'una absorció de llum, normalment la detecció del color negre (black).
button: El botó entre els sensors ultarsònics i la Raspberry Pi. L'estat N és de no premut (not pressed) i P és premut (pressed).
Objecte JSON en format de cadena de caràcters:
Transmissió de dades als actuadors
Es fa mitjançant un JSON amb els camps left i right que controlen les rodes de la dreta i les de l'esquerra. Els valors corresponen al cicle de treball (duty cicle) del sistema de modulació per amplada de pols (PWM: Pulse Width Modulation). Els valors entre -255 i 0 corresponen al 100% i 0% del cicle de treball amb els motors en marxa enrere, i els valors entre 0 i 255 corresponen al 0% i 100% del cicle de treball amb els motors en marxa endavant.
En aquest exemple els motors de l'esquerra del robot van enrere amb un cicle de treball del 50% (el 100% és 255) i els motors de la dreta van endavant amb un cicle de treball del 50%:
{"left":-127,"right":127}