Recientes

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, que te explican paso por paso el funcionamiento de la programación por bloques.

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