Hola buenos d\u00edas\u2026 hoy cumplo con una de las promesas y proyectos de mi tintero\u2026 un juego con detecci\u00f3n de infrarrojos en los 360grados\u2026 con 4 sectores y uno adicional arriba.<\/p>\n
B\u00e1sicamente se compone de 5 sensores de infrarrojo que detectan cualquier obst\u00e1culo a menos de 30 cent\u00edmetros, y lo traduce en un color diferente dependiendo de donde provenga el objeto\u2026 por ejemplo si ponemos un objeto o interceptamos el as del norte\u2026 el cubo cambiar\u00eda a rojo\u2026 si incidimos desde arriba cambiar\u00eda a blanco\u2026 y si incidimos desde cualquier otro lado, el cubo cambiar\u00eda de color.<\/p>\n
Un ejemplo fotogr\u00e1fico de lo que he realizado\u2026 aunque no es un cubo en cuanto pueda conseguir un tooper que se adecue a las dimensiones\u2026 lo clono.<\/p>\n
<\/p>\n
Un v\u00eddeo al respecto para que se entienda un poco m\u00e1s.<\/p>\n
<\/embed><\/object><\/p>\n<\/p>\n\nEl circuito es f\u00e1cil.<\/p>\nLos cuatro sensores infrarrojos se conectan en las 4 entradas anal\u00f3gicas 13, 14, 15 y 16, y las salidas digitales se conectan en los puertos 0, 1 y 2.<\/p>\nNOTA a mi: PONER CIRCUITO… \ud83d\ude42<\/p>\nUn poco de c\u00f3digo para condimentar y listo.<\/p>\n[sourcecode language=\u00bbpy\u00bb]\n\/\/ Infrared sensors and RGB pinguino.walii.es\n\/** Vamos a tomar dos lecturas de cada infrarrojo, guardando la anterior en proxSenlast\npara asi comparar luego cual es la diferencia, y si esta es mayor al diferencial es que\nun objeto se interpuso en dicho sensor. Y ordena encender el color correspondiente.\n**\/\n#define 18f4550\nunsigned\u00a0 int i;\n\/\/ aqui configuramos cuanta es la diferencia de valores\nunsigned int diferencial=20;\nunsigned int finalproxSen;\nunsigned int proxSenlast;\nunsigned int proxSen1;\nunsigned int finalproxSen1;\nunsigned int proxSenlast1;\nunsigned int proxSen2;\nunsigned int finalproxSen2;\nunsigned int proxSenlast2;\nunsigned int proxSen3;\nunsigned int finalproxSen3;\nunsigned int proxSenlast3;\nunsigned int proxSen4;\nunsigned int finalproxSen4;\nunsigned int proxSenlast4;\nunsigned int proxSen;<\/p>\nvoid setup()\n{\nfor (i=0;i<4;i++) \u00a0\u00a0 \u00a0{\n pinMode(i,OUTPUT);\n digitalWrite(i,LOW);\n }\nSerial.begin(9600); \/\/opcional\n}<\/p>\nvoid loop()\n{\n\/\/tomamos la primer lectura\n proxSen=analogRead(13);\n proxSen1=analogRead(14);\n proxSen2=analogRead(15);\n proxSen3=analogRead(16);\n proxSen4=analogRead(17);\n\/\/si desean pueden excluir del codigo lo referente al serial.\n\/\/yo uso para debug.\n\/**\nif (Serial.available())\n {\nSerial.print("\\n\\r");\nSerial.print("Distancia en digital: ");\nSerial.print("\\n\\r");\nSerial.print(proxSen,DEC);\nSerial.print("\\n\\r");\nSerial.print(proxSen1,DEC);\nSerial.print("\\n\\r");\nSerial.print(proxSen2,DEC);\nSerial.print("\\n\\r");\nSerial.print(proxSen3,DEC);\nSerial.print("\\n\\r");\nSerial.print(proxSen4,DEC);\nSerial.print("\\n\\r");\n }\n**\/\n\/\/guardamos la lectura en "LAST" y esperamos 10 milisegundos\n\/\/ para volver a leer la puerta\nproxSenlast=proxSen;\ndelay(10);\nproxSen=analogRead(13);\nproxSenlast1=proxSen1;\ndelay(10);\nproxSen1=analogRead(14);\nproxSenlast2=proxSen2;\ndelay(10);\nproxSen2=analogRead(15);\nproxSenlast3=proxSen3;\ndelay(10);\nproxSen3=analogRead(16);\nproxSenlast4=proxSen4;\ndelay(10);\nproxSen4=analogRead(17);<\/p>\n\/\/restamos los valores obtenidos y obtenemos el diferencial en cada caso\nif (proxSen>=proxSenlast) {\nfinalproxSen=proxSen-proxSenlast;\n}else{\nfinalproxSen=proxSenlast-proxSen;\n}\nif (proxSen1>=proxSenlast1) {\nfinalproxSen1=proxSen1-proxSenlast1;\n}else{\nfinalproxSen1=proxSenlast1-proxSen1;\n}\nif (proxSen2>=proxSenlast2) {\nfinalproxSen2=proxSen2-proxSenlast2;\n}else{\nfinalproxSen2=proxSenlast2-proxSen2;\n}\nif (proxSen3>=proxSenlast3) {\nfinalproxSen3=proxSen3-proxSenlast3;\n}else{\nfinalproxSen3=proxSenlast3-proxSen3;\n}\nif (proxSen4>=proxSenlast4) {\nfinalproxSen4=proxSen4-proxSenlast4;\n}else{\nfinalproxSen4=proxSenlast4-proxSen4;\n}<\/p>\n\/\/Con el diferencia u la lectura sabemos si un objeto se interpuso.\nif(finalproxSen>diferencial) {\ndigitalWrite(0,HIGH);\ndigitalWrite(1,HIGH);\ndigitalWrite(2,HIGH);\n};\nif(finalproxSen1>diferencial) {\ndigitalWrite(0,LOW);\ndigitalWrite(1,HIGH);\ndigitalWrite(2,LOW);\n};\nif(finalproxSen2>diferencial) {\ndigitalWrite(0,LOW);\ndigitalWrite(1,LOW);\ndigitalWrite(2,HIGH);\n};\nif(finalproxSen3>diferencial) {\ndigitalWrite(0,HIGH);\ndigitalWrite(1,LOW);\ndigitalWrite(2,HIGH);\n};\nif(finalproxSen4>diferencial) {\ndigitalWrite(0,HIGH);\ndigitalWrite(1,LOW);\ndigitalWrite(2,LOW);\n};\n}\n[\/sourcecode]<\/p>\nAqu\u00ed el invento por dentro.<\/p>\nIzquierda los 3 leds RGB con tres transistores para descargar de trabajo al PIC, y a la derecha el cacharo con los sensores infrarrojos.<\/p>\n<\/p>\naqu\u00ed se pueden observar los sensores infrarrojos.<\/p>\n<\/p>\n\nEn cuanto pueda os subo los circuitos, porque siempre es bueno tener circuito de sensores y fase de potencia RGB<\/p>\n","protected":false},"excerpt":{"rendered":"Hola buenos d\u00edas\u2026 hoy cumplo con una de las promesas y proyectos de mi tintero\u2026 un juego con detecci\u00f3n de infrarrojos en los 360grados\u2026 con…<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[],"_links":{"self":[{"href":"https:\/\/pinguino.walii.es\/index.php?rest_route=\/wp\/v2\/posts\/267"}],"collection":[{"href":"https:\/\/pinguino.walii.es\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pinguino.walii.es\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pinguino.walii.es\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/pinguino.walii.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=267"}],"version-history":[{"count":11,"href":"https:\/\/pinguino.walii.es\/index.php?rest_route=\/wp\/v2\/posts\/267\/revisions"}],"predecessor-version":[{"id":268,"href":"https:\/\/pinguino.walii.es\/index.php?rest_route=\/wp\/v2\/posts\/267\/revisions\/268"}],"wp:attachment":[{"href":"https:\/\/pinguino.walii.es\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=267"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pinguino.walii.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=267"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pinguino.walii.es\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}
\n
El circuito es f\u00e1cil.<\/p>\n
Los cuatro sensores infrarrojos se conectan en las 4 entradas anal\u00f3gicas 13, 14, 15 y 16, y las salidas digitales se conectan en los puertos 0, 1 y 2.<\/p>\n
NOTA a mi: PONER CIRCUITO… \ud83d\ude42<\/p>\n
Un poco de c\u00f3digo para condimentar y listo.<\/p>\n
[sourcecode language=\u00bbpy\u00bb]\n\/\/ Infrared sensors and RGB pinguino.walii.es\n\/** Vamos a tomar dos lecturas de cada infrarrojo, guardando la anterior en proxSenlast\npara asi comparar luego cual es la diferencia, y si esta es mayor al diferencial es que\nun objeto se interpuso en dicho sensor. Y ordena encender el color correspondiente.\n**\/\n#define 18f4550\nunsigned\u00a0 int i;\n\/\/ aqui configuramos cuanta es la diferencia de valores\nunsigned int diferencial=20;\nunsigned int finalproxSen;\nunsigned int proxSenlast;\nunsigned int proxSen1;\nunsigned int finalproxSen1;\nunsigned int proxSenlast1;\nunsigned int proxSen2;\nunsigned int finalproxSen2;\nunsigned int proxSenlast2;\nunsigned int proxSen3;\nunsigned int finalproxSen3;\nunsigned int proxSenlast3;\nunsigned int proxSen4;\nunsigned int finalproxSen4;\nunsigned int proxSenlast4;\nunsigned int proxSen;<\/p>\n
void setup()\n{\nfor (i=0;i<4;i++) \u00a0\u00a0 \u00a0{\n pinMode(i,OUTPUT);\n digitalWrite(i,LOW);\n }\nSerial.begin(9600); \/\/opcional\n}<\/p>\n
void loop()\n{\n\/\/tomamos la primer lectura\n proxSen=analogRead(13);\n proxSen1=analogRead(14);\n proxSen2=analogRead(15);\n proxSen3=analogRead(16);\n proxSen4=analogRead(17);\n\/\/si desean pueden excluir del codigo lo referente al serial.\n\/\/yo uso para debug.\n\/**\nif (Serial.available())\n {\nSerial.print("\\n\\r");\nSerial.print("Distancia en digital: ");\nSerial.print("\\n\\r");\nSerial.print(proxSen,DEC);\nSerial.print("\\n\\r");\nSerial.print(proxSen1,DEC);\nSerial.print("\\n\\r");\nSerial.print(proxSen2,DEC);\nSerial.print("\\n\\r");\nSerial.print(proxSen3,DEC);\nSerial.print("\\n\\r");\nSerial.print(proxSen4,DEC);\nSerial.print("\\n\\r");\n }\n**\/\n\/\/guardamos la lectura en "LAST" y esperamos 10 milisegundos\n\/\/ para volver a leer la puerta\nproxSenlast=proxSen;\ndelay(10);\nproxSen=analogRead(13);\nproxSenlast1=proxSen1;\ndelay(10);\nproxSen1=analogRead(14);\nproxSenlast2=proxSen2;\ndelay(10);\nproxSen2=analogRead(15);\nproxSenlast3=proxSen3;\ndelay(10);\nproxSen3=analogRead(16);\nproxSenlast4=proxSen4;\ndelay(10);\nproxSen4=analogRead(17);<\/p>\n
\/\/restamos los valores obtenidos y obtenemos el diferencial en cada caso\nif (proxSen>=proxSenlast) {\nfinalproxSen=proxSen-proxSenlast;\n}else{\nfinalproxSen=proxSenlast-proxSen;\n}\nif (proxSen1>=proxSenlast1) {\nfinalproxSen1=proxSen1-proxSenlast1;\n}else{\nfinalproxSen1=proxSenlast1-proxSen1;\n}\nif (proxSen2>=proxSenlast2) {\nfinalproxSen2=proxSen2-proxSenlast2;\n}else{\nfinalproxSen2=proxSenlast2-proxSen2;\n}\nif (proxSen3>=proxSenlast3) {\nfinalproxSen3=proxSen3-proxSenlast3;\n}else{\nfinalproxSen3=proxSenlast3-proxSen3;\n}\nif (proxSen4>=proxSenlast4) {\nfinalproxSen4=proxSen4-proxSenlast4;\n}else{\nfinalproxSen4=proxSenlast4-proxSen4;\n}<\/p>\n
\/\/Con el diferencia u la lectura sabemos si un objeto se interpuso.\nif(finalproxSen>diferencial) {\ndigitalWrite(0,HIGH);\ndigitalWrite(1,HIGH);\ndigitalWrite(2,HIGH);\n};\nif(finalproxSen1>diferencial) {\ndigitalWrite(0,LOW);\ndigitalWrite(1,HIGH);\ndigitalWrite(2,LOW);\n};\nif(finalproxSen2>diferencial) {\ndigitalWrite(0,LOW);\ndigitalWrite(1,LOW);\ndigitalWrite(2,HIGH);\n};\nif(finalproxSen3>diferencial) {\ndigitalWrite(0,HIGH);\ndigitalWrite(1,LOW);\ndigitalWrite(2,HIGH);\n};\nif(finalproxSen4>diferencial) {\ndigitalWrite(0,HIGH);\ndigitalWrite(1,LOW);\ndigitalWrite(2,LOW);\n};\n}\n[\/sourcecode]<\/p>\n
Aqu\u00ed el invento por dentro.<\/p>\n
Izquierda los 3 leds RGB con tres transistores para descargar de trabajo al PIC, y a la derecha el cacharo con los sensores infrarrojos.<\/p>\n
aqu\u00ed se pueden observar los sensores infrarrojos.<\/p>\n
En cuanto pueda os subo los circuitos, porque siempre es bueno tener circuito de sensores y fase de potencia RGB<\/p>\n","protected":false},"excerpt":{"rendered":"
Hola buenos d\u00edas\u2026 hoy cumplo con una de las promesas y proyectos de mi tintero\u2026 un juego con detecci\u00f3n de infrarrojos en los 360grados\u2026 con…<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[],"_links":{"self":[{"href":"https:\/\/pinguino.walii.es\/index.php?rest_route=\/wp\/v2\/posts\/267"}],"collection":[{"href":"https:\/\/pinguino.walii.es\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pinguino.walii.es\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pinguino.walii.es\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/pinguino.walii.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=267"}],"version-history":[{"count":11,"href":"https:\/\/pinguino.walii.es\/index.php?rest_route=\/wp\/v2\/posts\/267\/revisions"}],"predecessor-version":[{"id":268,"href":"https:\/\/pinguino.walii.es\/index.php?rest_route=\/wp\/v2\/posts\/267\/revisions\/268"}],"wp:attachment":[{"href":"https:\/\/pinguino.walii.es\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=267"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pinguino.walii.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=267"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pinguino.walii.es\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}