a) 1 Canakit. Es un kit que contiene un paquete básico para que comiences a crear circuitos para Raspberry. De CanaKit utilizaremos el protoboard, un led, un push button, una resistencia de 220ohms, una resistencia de 10Kohms, tres cables para conectar el led y push button, el cable de conexión del raspberry al circuito con pines que se coloca en el protoboard.
b) Ver la distribución del GPIO de tú raspberry:
c) En node red, vas a necesitar lo siguiente:
1 nodo GPIO output
2 nodo debug
2 nodo function
2 nodo inject
Listo es todo lo que necesitas para empezar.
Paso 1. Conecta tú raspberry al protoboard, observa la imagen:
c) En node red, vas a necesitar lo siguiente:
1 nodo GPIO output
2 nodo debug
2 nodo function
2 nodo inject
Listo es todo lo que necesitas para empezar.
Paso 1. Conecta tú raspberry al protoboard, observa la imagen:
Paso 2. conecta el servo de la siguiente forma:
Cable rojo hacia la alimentación de 5VCC
Cable negro hacia GND
Cable blanco hacia GPIO 23
NOTA; Revisa distribución de GPIO de Raspberry Pi
Paso 3: Genera el siguiente flujo en Node Red:
Los nodos Inject solo etiquetalos, no importa nada adicional
Con los nodos function ingresa el siguiente código:
En uno de ellos:
var count = global.get('cuenta')||0; //Obtiene el valor de la variable global cuenta
count += 4; //Incremento su valor.
if (count>=23)
{count=23;} //Condición de parada de acuerdo al funcionamiento de mi servo
global.set('cuenta',count); //guardo el valor dentro del flujo
msg.payload = count;//escribo el valor de payload
return msg;
En el otro nodo:
var count = global.get('cuenta')||0;//Obtiene el valor de la variable global cuenta
count -= 4; //disminuyo su valor
if (count<=0)
{count=0;} //Condición de parada de acuerdo al funcionamiento de mi servo
global.set('cuenta',count);//guardo el valor dentro del flujo
msg.payload = count; //escribo el valor de payload
return msg;
Paso 4. Configura la salida de GPIO
Para controlar un servo tenemos que configurar una salida PWM el cual manda un pulso de amplitud en el tiempo, entre mayor sea el valor que enviamos a payload mayor el ancho del pulso en el tiempo.
Paso 5. Despliega el flujo de NodeRed y debe verse similar a lo siguiente:
Una
de las grandes ventajas de NodeRed es que puedes compartir flujos
hechos por otras personas. Estos se almacenan en formato JSON y es sólo
texto. Te comparto, el código de este flujo para que lo puedas probas de
inmediato:
[{"id":"c92f2951.2eb738","type":"inject","z":"21821840.07b3e8","name":"","topic":"Arriba","payload":"","payloadType":"num","repeat":"","crontab":"","once":false,"x":184.1666717529297,"y":129.99996948242188,"wires":[["7ea3653d.966b24"]]},{"id":"a8e1f137.373cd","type":"inject","z":"21821840.07b3e8","name":"","topic":"Abajo","payload":"","payloadType":"num","repeat":"","crontab":"","once":false,"x":188.1666717529297,"y":302,"wires":[["2fdeef31.3fa1b8"]]},{"id":"7ea3653d.966b24","type":"function","z":"21821840.07b3e8","name":"","func":"var count = global.get('cuenta')||0;\ncount += 4;\n// store the value back\nif (count>=23)\n {count=23;}\nglobal.set('cuenta',count);\n// make it part of the outgoing msg object\nmsg.payload = count;\nreturn msg;","outputs":1,"noerr":0,"x":348.1666717529297,"y":129.83333587646484,"wires":[["93ba49b6.bb3c48","2615b848.8317e8"]]},{"id":"2fdeef31.3fa1b8","type":"function","z":"21821840.07b3e8","name":"","func":"var count = global.get('cuenta')||0;\ncount -= 4;\n// store the value back\nif (count<=0)\n {count=0;}\nglobal.set('cuenta',count);\n// make it part of the outgoing msg object\nmsg.payload = count;\n\nreturn msg;","outputs":1,"noerr":0,"x":348.16668701171875,"y":301.8333435058594,"wires":[["2615b848.8317e8","90f6085a.ccd8f8"]]},{"id":"93ba49b6.bb3c48","type":"debug","z":"21821840.07b3e8","name":"","active":true,"console":"false","complete":"false","x":538.1666870117188,"y":130,"wires":[]},{"id":"2615b848.8317e8","type":"rpi-gpio out","z":"21821840.07b3e8","name":"","pin":"16","set":"","level":"0","out":"pwm","x":541.1666870117188,"y":220.5,"wires":[]},{"id":"90f6085a.ccd8f8","type":"debug","z":"21821840.07b3e8","name":"","active":true,"console":"false","complete":"false","x":541.75,"y":306,"wires":[]}]
Dentro de node red, crea un flujo nuevo y en el menú selecciona importar desde el clipboard y pegas el código anterior.