ATENCION!! Eres profesor TIC?. Quieres publicar tus artículos u ejercicios. ünete a nuestra plantilla! AQUI
Mostrando entradas con la etiqueta Arduino. Mostrar todas las entradas
Mostrando entradas con la etiqueta Arduino. Mostrar todas las entradas

lunes, 22 de junio de 2020

BEBIAN COMO - Mblock se queda en blanco al iniciarlo (solucionado)

Hemos instalado y ejecutado en muchos equipos la instalación de mBlock 4.x (disponible en nuestro instalador y desde numerosas páginas), en muchos ha funcionado sin problemas, sin embargo, en algunos nos hemos encontrado con que no se ejecuta, y en ningún sitio de Internet (ni pidiendo soporte a la página "oficial"), tenemos la respuesta. "El producto está descatalogado" desde 2015 y no tiene soporte (nos comentan).

Instalando la misma maqueta (Bebian 64) en más de 100 equipos, nos hemos encontrado con que en unos arrancaba sin problemas y otros es imposible (ni con wine).

Tras una investigación exhaustiva, descartando el tema de flashplayer (el programa necesitaba de flash y ya no existe, por eso han migrado a la versión web) y, puesto que la maqueta era la misma para todos los equipos, nos hemos fijado en la diferencias en todos ellos, llegando a la siguiente conclusión:

mBlock 4.x, no funciona en equipos que no tienen tarjeta gráfica que soporte OPEN GL, es decir, no es tema de drivers, ni complementos del sistema, si no que se trata de un tema físico (procesador gráfico).

Dado pues, la imposibilidad de la utilización de mBlock en equipos antiguos, tras la migración a Bebian 64, aquellos equipos que no lo soporten, podrían utilizar herramientas similares, como por ejemplo "visualino". En equipos en los que no sea posible aplicar la versión 64 bits y necesiten mantenerse en 32, sólo podrán utilizar mBlock a través de Wine (también disponible en nuestro instalador).



Leer ...

miércoles, 27 de noviembre de 2019

Librerías de Makeblock para Arduino. Programar con mblock y grabar con Arduino IDE

Si ya has actualizado el arduino que biene en la maqueta base de nuestro Bebian (con el comando arduino en el setup.sh), con este truco podrás utilizar una de las últimas versiones de Arduino IDE para programar las placas Makeblock (mBlock).

Si utilizas mBlock 3.x virtualizado con wine, puede que no os funcionen correctamente los puertos serie a través de la virtualización, así pues aqui tienes una solución rápida:

Bajar las librerías de Makeblock para Arduino
1- Descarga las librerías de Makeblock para Arduino desde el siguiente enlace

Librerías Makeblock en gitHub

2- Descomprime el archivo ZIP descargado y copia la carpeta makeblock dentro de la carpeta /home/usuario/arduino/libraries/ (en nuestra maqueta bebian).

Debe quedarte una estructura similar a la que se muestra en la siguiente imagen :


3 - Ya dispones de los ejemplos y librerias necesarias y te aparecerán en el Arduino IDE de la siguiente forma:


y podrás utilizar los diferentes ejemplos desde Arduino IDE con las diferentes placas de mBlock...

Recuerda que dependiendo de la placa que tenga tu robot, deberás cambiar la cabecera correspondiente de tu librería antes de transferir el ejemplo:

Orion --------> MeOrion.h
BaseBoard ----> MeBaseBoard.h
mCore --------> MeMCore.h
Shield -------> MeShield.h
Auriga -------> MeAuriga.h
MegaPi -------> MeMegaPi.h

Este "truco" de incluir las librerías de mBlock a Arduino IDE, te permitirá seguir programando con mBlock y luego pasar el código obtenido (copiar y pegar) a la placa a programar utilizando Arduino IDE.

Acuerdate de habilitar el modo Arduino en mblock en el menú editar:



y podrás ver el código que has de copiar luego a Arduino IDE. Aquí tienes el ejemplo de parpadeo del led "hola mundo!" (pin 13) según el esquema de bloques de mBlock.


Copia las lineas de código y pásalas a un fichero nuevo de Arduino IDE, escoge el modelo de placa, el puerto, y "subir!"









Leer ...

El puerto serial /deb/ttyUSB0 no funciona con arduino

En ocasiones nos hemos encontrado que el puerto virtual que se genera al conectar una placa arduino al debian para realizar la programación no funciona.



Una serie de errores en rojo aparece en la consola. Y si te fijas, al principio de los errores del log, se trata de un error de permisos "error: cannot access /dev/ttyUSB0".



Esto puede deberse a que hayas utilizado el congelador del sistema (que toca varios permisos del usuario) o que por otra razón el puerto se haya quedado sin permiso de acceso.

La forma  más fácil de solucionar el problema (sin tener en cuenta la seguridad) es habilitar permisos totales a todos los usuarios sobre el puerto virtual serie (ATENCION: El dispositivo tiene que estar enchufado para que funcione el comando.):

chmod 777 /dev/ttyUSB0

Otra forma, es añadir únicamente al usuario (en nuestro caso "usuario") al grupo que tiene permisos sobre el puerto (device -dev-) en cuestión.

usermod -a -G dialout usuario

Que quiere decir... -a añadir al -G grupo dial out  a usuario


Leer ...

sábado, 21 de septiembre de 2019

mblock o makeblock como instalarlo. Un concepto impuesto.

Introducción (opiniones personales de un maker)...


Para un maker no es muy habitual el irse a productos comerciales, puesto que la filosofía de un desarrollador es partir de una base sólida y libre.

Sin embargo, es la forma más rápida de pasar por encima de muchas horas de trabajo y estudio, y llegar al final del camino más rápido diciendo "hacemos robótica en clase". Es como pensar que quieres hacerte un castillo de juguete y te compras un LEGO para montarlo por que ya te dan los planos.

Tras muchos años con esto del maker, os aseguro que es mucho más instructivo el hacer pasar a una clase por el proceso completo de pensar una estructura, preparar partes mecánicas y estudiar comportamiento de las maquetas, que presentar un trabajo a final de curso del cual no se ha sacado "chicha".

Con la llegada del "software libre" y de la "tecnología libre" (os invitamos a ver este vídeo), también ha llegado la moda de "modifico tecnología libre" y la vendo. Muchas empresas se han dedicado a utilizar el conocimiento libre para sacar sus productos al mercado. Se trata de hacer unas pequeñas variaciones para que el "producto libre" no sea compatible con otros productos y se transforme en un "producto propio".

Este es el caso de Makeblock, quienes basándose en ARDUINO, sacaron una serie de placas no compatibles (por los conectores) con el resto de "módulos libres" o sensores disponibles para Arduino. Cuando "un maker" con "módulos libres" puede desarrollar un robot por menos de 15€ con Arduino, es imposible comprar un "robot hecho" por menos de 100€




Lo curioso de esto, es que la administración parece que pica con estas cosas (no se quien es el ingeniero asesor), y en lugar de pagar 10€ de material por alumno, prefiere gastar 150€ encaminando a la gente a utilizar un producto comercial finalizado y "sin chicha"...

Makeblock lo ha hecho de pera. Para "proliferar", ha separado el software de programación de sus kits de montaje para habituar a la gente a utilizar su soft, y con ello engancharlos a sus productos, y así nació mblock es una adaptación basada en SCRATCH (libre) para programar ARDUINO (libre)... en lugar de aprender SCRATCH o ARDUINO (Arduino IDE), pues... ya te lo dan hecho por que tiene sus módulos. Así no aprendes comandos o bucles o condicionales.... una forma de programar sin programar... "es como darle a botones" (aún que no sepas lo que hacen los botones).

mblock es por tanto un "producto hecho" y con la mitad del camino hecho, ya solo queda el trabajo de montaje (armado) del robot (kit) que, con planos e instrucciones, no dejan cabida a confusión... "que fácil es hacer robots!"... hechos.

Si aún así quieres sacar el polvo a esas cajas del armario...

Pues bien. Manos a la obra.... que equipos tienes en clase?. Windows? Linux?, grandes, pequeños.... eh? eh?....

Lo primero que debes saber en esto de la informática y programación, es que no todo vale para todo. Y en esto del software, lo que vale hoy, no vale mañana.

Las versiones de programas como mblock son así. Pueden tener soporte para tu versión de sistema o no. Pueden desaparecer de Internet y no estar disponibles, o no. Puedes tener soporte o no.

Cosas que debes saber:

1 . Los equipos antiguos disponen de sistemas 32bits y los desarrolladores de aplicaciones ya no dan soporte para 32bits por ello es una aventura instalar mblock en sistemas como XP W7 o LINUX 32 (Debian).

2 . Si el punto uno te ha puesto los pelos de punta.... No hay versiones nuevas para LINUX 32 disponibles y las probadas (con instrucciones, no tienen por que funcionar). Además, las versiones (como en otras aplicaciones), llevan la misma numeración en LINUX, MAC o Windows y pueden variar en funcionalidad.

3 . La última versión funcional completamente operativa para LINUX (según la empresa) es la Version 3.4.12 (que resulta que no funciona por que solo "funciona en LINUX 64 bits") por lo cual indican de "solucionar el problema" utilizando el navegador (versión web). La versión 4.0.0 y siguiente no funcionan tras su intalación por falta de documentación?. La versión 3.4.5 solo era par windows y mac (las versiones anteriores han desaparecido) La versión 4.0.0 recomendada para LINUX, "ha desaparecido del planeta" incluso ni existe el servidor chino recomendado en el 2017 por suerte hemos encontrado algo (mas abajo).

Preparad@ para la aventura?

Tras tres días probando diferentes métodos de instalación, consultas,pruebas, etc. puedes salir del apuro con la versión 3.4.12 que funciona en windows (32 bits) y que"por suerte" podemos correr en distribuciones Debian (como nuestro BEBIAN) gracias al emulador wine. Así pues. Descárgalo y ejecútalo (si te pregunta, con wine) y te aparecerá en el escritorio el icono!

Ten en cuenta que se trata de un programa emulado (estará corriendo sobre una "maquina virtual" de windows) con lo cual puede ar problemas de cuelgues y demás.... pero funciona!

Respecto a la versión 4.0.4 instalada desde el root...



Se queda en blanco!

...y tras investigar desde el terminal con la cuenta de usuario, non encontramos con errores de script (sin soporte, por el momento)

A JavaScript error occurred in the main process
Uncaught Exception:
Error: listen EADDRINUSE :::7070
    at Object.exports._errnoException (util.js:1026:11)
    at exports._exceptionWithHostPort (util.js:1049:20)
    at Server._listen2 (net.js:1253:14)
    at listen (net.js:1289:10)
    at Server.listen (net.js:1385:5)
    at EventEmitter.listen (/opt/makeblock/mBlock/resources/app.asar/node_modules/express/lib/application.js:618:24)
    at Object.<anonymous> (/opt/makeblock/mBlock/resources/app.asar/main.js:39:6)
    at Module._compile (module.js:556:32)
    at Object.Module._extensions..js (module.js:565:10)
    at Module.load (module.js:473:32)

La versión desaparecida 4.0


Trasteando por el buscador y restringiendo fechas, nos encontramos una WIKI sobre la versión donde nos indica una url todavía operativa:


wget https://github.com/Makeblock-official/mBlock/releases/download/V4.0.0-Linux/mBlock-4.0.0-linux-4.0.0.tar.gz

tar zxvf mBlock-4.0.0-linux-4.0.0.tar.gz 

cd mBlock/

./mblock

Probamos!

bash: ./mblock: cannot execute binary file: Formato de ejecutable incorrecto

No funciona!

CONCLUSIONES!

Tras muchas horas invertidas, nos encontramos CON QUE EL PROYECTO NO FUNCIONA DESDE 2015, O NO HACEN MAS QUE SACAR PARCHES:


MBLOCK 3 utiliza FLASHPLAYER!, que ya no se puede instalar (y menos en equipos linux) y el MBLOCK 4 necesita una tarjeta con procesador que soporte OPENGL (impensable en equipos antiguos) 

EL poryecto MBLOCK 5 basado en web, no tiene soporte para LINUX y falla en instalaciones con Windows... un desastre.

Como alternativa, recomendamos VISUALINO o utilizar ARDUINO con las librerías de MBLOCK.




Leer ...

BEBIAN COMO - Instalar Arduino 1.8.9




Una nueva versión de Arduino IDE... La necesitamos?. Nos es suficiente con la que ya tenemos?. Para lo que hacemos, necesitamos más librerías?....

Poca variación hay entre unas versiones y otras del IDE de Arduino, la principal característica entre las diferentes versiones, es la inclusión de librerías para nuevos componentes, pero también la incompatibilidad con aplicaciones desarrolladas con un IDE anterior. Por eso es tan importante plantearte si debes o no actualizar el IDE (entorno de desarrollo) puesto que muchos ejemplos que puedes encontrar por la red, pueden no estar soportados por un IDE actualizado.

Si aún así decides actualizar, la cosa no es tan sencilla, puesto que existen problemas conocidos para cada versión. En nuestro caso, la versión arduino-1.8.9 no ha estado libre de incidentes.

Tras su descarga, nos encontramos que tras descomprimirla en la carpeta /home/usuario, y tras ejecutar la instalación con el comando ./install.sh, la aplicación se abría y cerraba. No se ejecutaba al ajecutarla desde el navegador de archivos... desde el terminal, al ejecutar ./arduino nos encontramos con este mensaje:

Picked up JAVA_TOOL_OPTIONS:
Carpeta de instalación del IDE Incorrecta: La copia del IDE está instalado en una subcarpeta del cuaderno de bocetos
Por favor, mueve el IDE a otra carpeta.

¿¿?¿?¿?

Las instalaciones requieren permisos en carpeta y prilegios... una tortura.

La solución?, pues que la carpeta de la ruta de instalación NO DEBE CONTENER CARACTERES EXTRAÑOS, así que pasamos de /home/usuario/arduino/arduino-1.8.9/ a pasar todo el contenido a /home/usuario/arduino (pensábamos poder disponer de varias versiones en el mismo equipo, pero hemos visto que puede haber problemas de ejecución). Curioso que al poner un carácter en mayúsculas en la ruta, tampoco funciona la instalación!

Al ejecutar de nuevo el ./install.sh nos encontramos con lo siguiente:

rm: no se puede borrar «/usr/local/bin/arduino»: No existe el fichero o el directorio

por lo que volvimos de nuevo al terminal para eliminar el fichero y volver a insistir en la instalación...

Así pues finalmente ejecutamos lo siguiente desde el root:

Descargamos...

wget https://downloads.arduino.cc/arduino-1.8.9-linux32.tar.xz

Movemos una unstalacion anterior al _old (por si acaso)

mv /home/usuario/arduino /home/usuario/aduino_old

Borramos el fichero "conflictivo"

rm -r /usr/local/bin/arduino

Descomprimimos el IDE a usuario

tar -xf arduino-1.8.9-linux32.tar.xz -C /home/usuario/

Cambiamos el nombre de la carpeta para evitar errores del java

mv /home/usuario/arduino-1.8.9 /home/usuario/arduino

Borramos la descarga

rm -R arduino-1.8.9-linux32.tar.xz

Damos permiso a la carpeta para que el usuario pueda manipular el contenido

chmod 777 -R /home/usuario/arduino/

Hacemos la intalación

sh /home/usuario/arduino/install.sh

El proceso instalará el Arduino IDE en la carpeta /home/usuario/arduino/ y nos permitirá modificar directamente (sin permisos) el contenido de las librerías, etc. así como actualizar el contenido (version). Por último verificamos que funcionan los accesos del menú o hacemos un "atajo" desde el escritorio.



Quieres instalar Ardublock (complemento para programación en bloques)?

descargar de aqui: https://sourceforge.net/projects/ardublock/files/

La versión en concreto:
https://sourceforge.net/projects/ardublock/files/ardublock-beta-20140702.jar/download

Manual pagina oficial.

http://blog.ardublock.com/engetting-started-ardublockzhardublock/

Carpeta: sketchbook/tools/ArduBlockTool/tool/

  
Puedes instalarlo desde nuestro script setup.sh con la opcion "arduino" (a la espera de un apartado específico para robótica).

Leer ...

martes, 30 de abril de 2019

La tecnología que esconden los desechos.


Lo importante no es solo tener una idea, si no el compartirla con alguien que quiera participar en ella.

Afaté Gnikou es diseñador de sistemas que en el año 2014 construyó en Togo, y a partir de basura electrónica, una impresora 3D que funcionaba a la perfección.

 

Para que sirve una impresora 3D?
Leer ...

miércoles, 13 de febrero de 2019

CURSO DE ROBOTICA. Introducción a la robótica educativa en las escuelas (5)

La programación

Espero hayáis sido curiosos con los artículos anteriores, por que si no no seguiremos el ritmo...



Como habéis visto en el artículo anterior, nos hemos basado en la utilización del entorno Ardunio (a estas alturas, ya habréis comprendido que, Arduino, a parte de ser una placa electrónica - de muchos tipos - También es el programa con el que se programan las placas).

No solo podemos programar con Arduino el lenguaje C, si no que podemos utilizar el bloc de notas, word, programas deitore s de texto, etc... pero ahora lo que se lleva es programar con programas basados en SCRATCH, pero debemos entender que, estos programas, no son ni mas ni menos que conversores de lenguaje.

La ventaja de estos nuevos programas con respecto a la programación que veníamos haciendo hasta ahora, es que en el propio programa de edición, tenemos el apartado que nos hace la grabación al chip (cosa que veníamos haciendo con otros programas).

En el caso de los entornos de programación de bloques, basados en SCRATCH, convierten los esquemas de bloques en "codigo C", y este a su vez, es convertido en código binario en le proceso de "quemado" (grabación del chip), a través de nuestro cable de programación (que utiliza una comunicación serie).

Existe otro tipo de programación del cual hemos hablado en un artículo pasado, llamada "programación de lineas", que es la que se venía utilizando a nivel industrial para, por ejemplo, programar los autómatas de SIEMENS, en especial los modelos S7, que invadieron en su día muchas fábricas para la automatización de sus procesos, en especial SIEMENS y OMROM

AUTOMATA SIEMENS (LOGO)


AUTOMATA OMROM
Si estáis interesados en la programación por lineas (PLC), revisad este articulo. y echad un vistazo a este otro, donde se comenta la comunicación entre un Arduino y un autómata. Podríamos quitarnos el polvo de encima los que hemos utilizado este lenguaje de programación y seguir utilizándolo, pero no os lo recomendamos. Por que?, por que la programacón de bloques, nos podrá extrapolar nuestra programación a otros modelos de equipos sin necesidad de mucha conversión en el programa. Hacer un repaso rápido a este artículo de la wikipedia.

Pero sigamos con los lenguajes de programación...

Necesitamos, para programar nuestras placas ARDUINO y derivados comerciales como makeblock, robots BQ, etc unos programas que nos permitan generar el código, así, que si aún no los tenéis (en nuestra maqueta BEBIAN ya están incluidos), aquí van los links de los más interesantes y seguimos con esto en el próximo artículo.

DESCARGAS
(puede haber versiones nuevas)

Programas basados en ARDUINO:

Arduino
Arduino para nuestro BEBIAN,

Programas basados en SCRATCH:

Scratch
Scratch para nuestroBEBIAN
Visualino (Recomendado. Los alumnos verán directamente el código de bloques y al lado el código C)
Visualino para nuestro BEBIAN
S4A
S4A para nuestro BEBIAN
mBlock (En Editar, modo Arduino, se comporta como visualino)
mBlock (otras versiones)
mblock para nuestro BEBIAN

Programas basados en PLC:

Waltech
LDmicro


Admitimos sugerencias para incluir en nuestro listado.


 SIGUIENTE
Leer ...

miércoles, 6 de febrero de 2019

CURSO DE ROBOTICA. Introducción a la robótica educativa en las escuelas (4)

Por que empezar con el "Hola Mundo" de siempre encendiendo y apagando un led?... Si ya has visto lo que hemos publicado anteriormente y has visto los artículos propuestos, aventúrate a algo "mas dificil", transferir el código siguiente al Arduino.

Trabajar con sonido en Arduino.

Partiendo de que el sonido se genera por una bibracion (frecuencia), este circuito se basa en el movimiento de un BUZZ generando la frecuencia deseada por la puesta en estado alto (1) y bajo (0) la salida del pin 3 de la placa Arduino.

Este programa puedes pasarlo a la placa transfiriéndolo (copiar y pegar el código en el Arduino (programa).

Fuente: https://www.princetronics.com/supermariothemesong/

Material:

1 Arduino (en cualquiera de sus variantes)
1 buzz
1 resistencia para proteger el circuito.

EL CIRCUITO:



Recordar, los comentarios externos al programa van precedidos de // o entre /* comentario */

EL PROGRAMA:
/*
Arduino Mario Bros Tunes
With Piezo Buzzer and PWM
Connect the positive side of the Buzzer to pin 3,
then the negative side to a 1k ohm resistor. Connect
the other side of the 1 k ohm resistor to
ground(GND) pin on the Arduino.
by: Dipto Pratyaksa
last updated: 31/3/13
*/
/*************************************************
* Constantes definidas
*************************************************/
#define NOTE_B0 31
#define NOTE_C1 33
#define NOTE_CS1 35
#define NOTE_D1 37
#define NOTE_DS1 39
#define NOTE_E1 41
#define NOTE_F1 44
#define NOTE_FS1 46
#define NOTE_G1 49
#define NOTE_GS1 52
#define NOTE_A1 55
#define NOTE_AS1 58
#define NOTE_B1 62
#define NOTE_C2 65
#define NOTE_CS2 69
#define NOTE_D2 73
#define NOTE_DS2 78
#define NOTE_E2 82
#define NOTE_F2 87
#define NOTE_FS2 93
#define NOTE_G2 98
#define NOTE_GS2 104
#define NOTE_A2 110
#define NOTE_AS2 117
#define NOTE_B2 123
#define NOTE_C3 131
#define NOTE_CS3 139
#define NOTE_D3 147
#define NOTE_DS3 156
#define NOTE_E3 165
#define NOTE_F3 175
#define NOTE_FS3 185
#define NOTE_G3 196
#define NOTE_GS3 208
#define NOTE_A3 220
#define NOTE_AS3 233
#define NOTE_B3 247
#define NOTE_C4 262
#define NOTE_CS4 277
#define NOTE_D4 294
#define NOTE_DS4 311
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_FS4 370
#define NOTE_G4 392
#define NOTE_GS4 415
#define NOTE_A4 440
#define NOTE_AS4 466
#define NOTE_B4 494
#define NOTE_C5 523
#define NOTE_CS5 554
#define NOTE_D5 587
#define NOTE_DS5 622
#define NOTE_E5 659
#define NOTE_F5 698
#define NOTE_FS5 740
#define NOTE_G5 784
#define NOTE_GS5 831
#define NOTE_A5 880
#define NOTE_AS5 932
#define NOTE_B5 988
#define NOTE_C6 1047
#define NOTE_CS6 1109
#define NOTE_D6 1175
#define NOTE_DS6 1245
#define NOTE_E6 1319
#define NOTE_F6 1397
#define NOTE_FS6 1480
#define NOTE_G6 1568
#define NOTE_GS6 1661
#define NOTE_A6 1760
#define NOTE_AS6 1865
#define NOTE_B6 1976
#define NOTE_C7 2093
#define NOTE_CS7 2217
#define NOTE_D7 2349
#define NOTE_DS7 2489
#define NOTE_E7 2637
#define NOTE_F7 2794
#define NOTE_FS7 2960
#define NOTE_G7 3136
#define NOTE_GS7 3322
#define NOTE_A7 3520
#define NOTE_AS7 3729
#define NOTE_B7 3951
#define NOTE_C8 4186
#define NOTE_CS8 4435
#define NOTE_D8 4699
#define NOTE_DS8 4978
#Se define la salida de la melodía en el Pin 3
//Mario Notas del tema
int melody[] = {
NOTE_E7, NOTE_E7, 0, NOTE_E7,
0, NOTE_C7, NOTE_E7, 0,
NOTE_G7, 0, 0, 0,
NOTE_G6, 0, 0, 0,
NOTE_C7, 0, 0, NOTE_G6,
0, 0, NOTE_E6, 0,
0, NOTE_A6, 0, NOTE_B6,
0, NOTE_AS6, NOTE_A6, 0,
NOTE_G6, NOTE_E7, NOTE_G7,
NOTE_A7, 0, NOTE_F7, NOTE_G7,
0, NOTE_E7, 0, NOTE_C7,
NOTE_D7, NOTE_B6, 0, 0,
NOTE_C7, 0, 0, NOTE_G6,
0, 0, NOTE_E6, 0,
0, NOTE_A6, 0, NOTE_B6,
0, NOTE_AS6, NOTE_A6, 0,
NOTE_G6, NOTE_E7, NOTE_G7,
NOTE_A7, 0, NOTE_F7, NOTE_G7,
0, NOTE_E7, 0, NOTE_C7,
NOTE_D7, NOTE_B6, 0, 0
};
//Mario matriz de tiempos de la melodia
int tempo[] = {
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
9, 9, 9,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
9, 9, 9,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
};
//Melodia
int underworld_melody[] = {
NOTE_C4, NOTE_C5, NOTE_A3, NOTE_A4,
NOTE_AS3, NOTE_AS4, 0,
0,
NOTE_C4, NOTE_C5, NOTE_A3, NOTE_A4,
NOTE_AS3, NOTE_AS4, 0,
0,
NOTE_F3, NOTE_F4, NOTE_D3, NOTE_D4,
NOTE_DS3, NOTE_DS4, 0,
0,
NOTE_F3, NOTE_F4, NOTE_D3, NOTE_D4,
NOTE_DS3, NOTE_DS4, 0,
0, NOTE_DS4, NOTE_CS4, NOTE_D4,
NOTE_CS4, NOTE_DS4,
NOTE_DS4, NOTE_GS3,
NOTE_G3, NOTE_CS4,
NOTE_C4, NOTE_FS4, NOTE_F4, NOTE_E3, NOTE_AS4, NOTE_A4,
NOTE_GS4, NOTE_DS4, NOTE_B3,
NOTE_AS3, NOTE_A3, NOTE_GS3,
0, 0, 0
};
//Tiempo
int underworld_tempo[] = {
12, 12, 12, 12,
12, 12, 6,
3,
12, 12, 12, 12,
12, 12, 6,
3,
12, 12, 12, 12,
12, 12, 6,
3,
12, 12, 12, 12,
12, 12, 6,
6, 18, 18, 18,
6, 6,
6, 6,
6, 6,
18, 18, 18, 18, 18, 18,
10, 10, 10,
10, 10, 10,
3, 3, 3
};
void setup(void)
{
pinMode(3, OUTPUT);//buzzer
pinMode(13, OUTPUT);//El led 13 sigue la musica
}
void loop()
{
// canta las canciones
sing(1);
sing(1);
sing(2);
}
int song = 0;
void sing(int s) {
// iterar sobre las notas de la melodía:
song = s;
if (song == 2) {
Serial.println(" 'Underworld Theme'");
int size = sizeof(underworld_melody) / sizeof(int);
for (int thisNote = 0; thisNote < size; thisNote++) {
//para calcular la duració de la nota, respecto 1 segundo
// se divide por la duracion de la nota.
//e.j. un cuarto de nota = 1000 / 4, un octavo = 1000/8, etc.
int noteDuration = 1000 / underworld_tempo[thisNote];
buzz(melodyPin, underworld_melody[thisNote], noteDuration);
// para distinguir las notas, establecer un tiempo mínimo entre ellas.
// La duración de la nota + 30% parece funcionar bien:
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
// deja de tocar el tono:
buzz(melodyPin, 0, noteDuration);
}
} else {
//"imprime" El titulo en el puerto serie para verlo.
Serial.println(" 'Mario Theme'");
int size = sizeof(melody) / sizeof(int);
for (int thisNote = 0; thisNote < size; thisNote++) {
//para calcular la duració de la nota, respecto 1 segundo
// se divide por la duracion de la nota.
//e.j. un cuarto de nota = 1000 / 4, un octavo = 1000/8, etc.
int noteDuration = 1000 / tempo[thisNote];
buzz(melodyPin, melody[thisNote], noteDuration);
// para distinguir las notas, establecer un tiempo mínimo entre ellas.
// La duración de la nota + 30% parece funcionar bien:
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
// deja de tocar el tono:
buzz(melodyPin, 0, noteDuration);
}
}
}
void buzz(int targetPin, long frequency, long length) {
digitalWrite(13, HIGH);
long delayValue = 1000000 / frequency / 2;
// calcular el valor de retardo entre transiciones
// 1 segundo de microsegundos, dividido por la frecuencia, luego dividido por la mitad desde
// hay dos fases en cada ciclo
 long numCycles = frequency * length / 1000;
// calcular el número de ciclos para el tiempo apropiado
// multiplicar frecuencia, que es realmente ciclos por segundo, por el número de segundos a
// obtener el número total de ciclos para producir
for (long i = 0; i < numCycles; i++) {// para el tiempo calculado...
digitalWrite(targetPin, HIGH); // escribe el pin del timbre alto para empujar el diafragma
delayMicroseconds(delayValue); // espera el valor de retardo calculado
digitalWrite(targetPin, LOW); // poner el pin del zumbador bajo
delayMicroseconds(delayValue); //espera de nuevo o el valor de retardo calculado
}
digitalWrite(13, LOW);
}

Resultado:



No sabes como pasarlo al arduino?.

Visita el post de www.pesadillo.com donde hace la programación del robot PS


 SIGUIENTE
Leer ...

martes, 5 de febrero de 2019

CURSO DE ROBOTICA. Introducción a la robótica educativa en las escuelas (3)

El proyecto!!



El trabajo de programación se basa en disponer de un objetivo. Asigna objetivos a los alumnos o grupos, o haz que ellos busquen un objetivo cumplir. El trabajo de programador consiste en buscar soluciones a través de crear un código (proceso).

Un vehiculo, un ascensor, un sistema de riego, un seguidor de luz...

La forma más habitual de conseguir ideas, es echar un vistazo a Youtube y ver algunos proyectos.

Puedes seguir a varios canales de Youtube, donde publican contenidos sobre los temas que te interesen. en este caso te vamos a proponer dos fuentes de información relacionadas con nuestra página.

La pagina www.pesadillo.com, donde encontraras circuitos electrónicos para preparar tus sensores para aplicar a tus proyectos y donde también podrás ver paso a paso la construcción de lo que podríra ser tu primer robot Arduino, con un coste inferior a los 20€, date cuenta que este coste es ínfimo, teniendo en cuenta que lo que más cuestan son las baterías (AA). La web también dispone de un canal de Youtube, donde podrás ver en su playlist recopilación de vídeos sobre robótica, arduino y avances en tecnología robótica

Por otro lado ya hay miles de canales que podrías seguir, pero en especial, te recomiendo que visites el canal de El Profe García, quien, a la vez que muchos de nosotros, se ha interesado por compartir conocimiento.

Por poneros los dientes largos, aquí una muestra de cosas que podrás hacer con tus kits de Arduino (play list de www.pesadillo.com):


 SIGUIENTE
Leer ...

lunes, 4 de febrero de 2019

CURSO DE ROBOTICA. Introducción a la robótica educativa en las escuelas (2)

El lenguaje de programación.

Parte del principio de que después de tener una idea, hay que llevarla a cabo, en la programación se hace lo mismo, partimos de una estructura, creamos un programa, y luego lo convertimos al un fichero (binario) que pasamos a nuestro proyecto (en caso del Arduino, a través de una comunicación SERIE -puerto emulado por el USB-).

Por donde empezar?


La programación de los distintos aparatos, LEGOS, mBlock, Arduino,están ahora mismo enfocados a la utilización del lenguaje de bloques. Seguramente has oido hablar del SCRATCH, desarrollado por el MIT. Este programa, sin conocimientos previos, permite programar juegos en su página directamente a base de incluir bloques de ordenes....

Eh?

Si, que ahora no hay que aprender lenguaje de programación (en este caso lenguaje de programación "C"),  para programar Arduinos, si no que tan solo siguiendo unas pequeñas pautas, se insertan unos bloques que dan lugar a una secuencia (programa).

Si no tengo conocimientos, de programación por bloques por donde empiezo?


Por AQUI!! https://blockly-games.appspot.com/




Intenta completar estos juegos. Te explican paso por paso el funcionamiento de la programación por bloques.

Otras páginas que te pueden interesar para profundizar en la programación por bloques:

CODE.ORG (recomebdado) Si ya habéis hecho vuestros pinitos con el blockly, ha llegado el momento de la programación. En esta página, podrás seguir desarrollando las "Ciencias de la Computación" y aprender a realizar juegos, herramientas, animaciones,.... echad un vistazo (para los mas jóvenes es adictiva, ya que plantean los problemas como juegos).

Y luego que?


Este lenguaje nuevo de programación , se aplica para desarrollo de juegos, programas de móvil, páginas web... Se trata de convertir el esquema de bloques en el lenguaje que necesitamos para nuestro proyecto...

Lo entenderás mejor si visitas esta página: https://developers.google.com/blockly/ en ella aprenderás, que con un sencillo programa, podrás convertirlo en distintos lenguajes de programación.



 SIGUIENTE
Leer ...

domingo, 3 de febrero de 2019

CURSO DE ROBOTICA. Introducción a la robótica educativa en las escuelas (1)

Que hacer con esos kits que hay en los armarios?
Que finalidad les puedo dar?
Les gustará a los alumnos?

A estas alturas, si aún no has empezado con el desarrollo de kits o la electrónica aplicada, estás posiblemente a la cola de otros centros educativos de Galicia. Que quiere decir esto?. Que esos alumnos que tienes en clase, estarán menos preparados que otros que cursan sus estudios en otros centros y que ya han aprendido a automatizar o crear sus propios juguetes...

Implica mucho tiempo implementar el desarrollo en la clase?

No. Los kits proporcionados son tan básicos que ya vienen con todo hecho. Tienen sus piezas y sus componentes que permiten su ensamblado y configuración.

Cual es el objetivo de los kits?

La comprensión de los lenguajes de programación, y de la automatización de procesos que ya se aplican a todas las cosas (cafeteras, cocinas, frigoríficos, coches, aviones, teléfonos...). Todo ya tiene o esta controlado por un chip o tiene un chip en su interior.

Es fácil montar y programar?

Si. El problema no es montar o programar, si no buscar lo que montar o programar. Es decir, lo primero, es buscar un objetivo, y luego ver como conseguirlo. Por ejemplo; quiero montar una grua, pues tendré que montar una estructura, estudiar su funcionamiento, aplicar la electrónica, y generar la programación. Quiero montar un coche?, quiero montar un dron?... que queréis montar?

Que tengo en el armario?





Tienes un KIT modular (de montaje por bloques) comercial que se llama mblock. Un Kit que sobrepasa los 140€ unidad y que no es "accesible" a una familia media para regalar a su hijo, pero al que si le puedes sacar partido tu en clase, pues dispones de muchos accesorios y estructuras interesantes que puedes aplicar a tus proyectos. Aquí tienes manuales de la placa Auriga para empezar con tus proyectos. Así como un enlace al centro de descargar (curiosea!!!) Aqui, un curso (en ingles) paso a paso con la placas makeblock (mblock). Su página de soporte.

Y si buscas un poco, te encuentras páginas como esta, donde descargar manuales completos en castellano!!

Eh! que el Instituto de Culleredo, incluso se busca sus manuales!
Es hora de recopilar información y sacar polvo a los cacharros.

Y otros institutos ya han salido en periódicos y medios:

http://www.ticgalicia.com/2014/11/la-revolucion-educativa-ya-esta-aqui.html
http://www.ticgalicia.com/2014/05/los-cerebritos-de-ribeira-se-unen-en.html



También tienes unas plaquitas pequeñas azules (Arduinos), que pueden controlar mas me 8 cosas a la vez y que no superan en coste los 3€ (en ebay) y que te permitirían, por ejemplo, automatizar la iluminación de una vivienda!.

Nos centraremos en Arduino, pues los KITs, son lo mismo (son arduinos modificados) y como son versiones comerciales, son mucho más caros y con clabijas de conexión no estandar. Basicamente, lo que hacen con los KITs, es coger una idea libre y barata, aplicarle una marca, gente de desarrollo, y vender el aparato.

Que puedo hacer con Arduino?

Todo. Arduino dispone de varias versiones, las cuales varían en memoria y numero de patillas, que permiten controlar desde impresoras 3D, hasta vehiculos, pasando por modelos que pueden montarse dentro de una bombilla para controlarla en remoto. Simplemente hay que buscar un objetivo, y ver las posibilidades.

Cual seria el siguiente paso después de conocer Arduino?

Los micro PC o la "Rasberri", ya son mini ordenadores con su sistema (linux) que ya serían "lo más de lo más".
Pero antes de ello, por que no participas con tus alumnos en concursos de robotica?.
Hay páginas con concursos y premios a nivel nacional e internacional, como el que permitió a un cole de A Coruña, ir al premio internacional de Tailandia!!

 AQUI
 SIGUIENTE

Leer ...
Designed By
Diseño tic galicia