martes, 25 de noviembre de 2014

JUGANDO CON ROBOTS

 
 
Los alumnos del IES "Ciudad de Ángeles" presentaron un magnífico trabajo de robótica ayudados por sus profes Carmen Banegas y Dionisio Fernández
 




lunes, 24 de noviembre de 2014

PROGRAMANDO EN ANDROID

TALLER DE ANDROIDES

Se trata de la actividad dirigida a los más pequeños que participan en la feria del FINDE, y consiste en construir  en tiempo record, unos Androides a partir de objetos reciclados, y personalizarlos, a través de elementos del taller como , led, resistencias, tornillos…; en fin, lo que el visitante infantil le guste más.

El cuerpo será un envase de plástico reciclado, las pierna tapones y los brazos pueden ser pinza, cucharitas de plástico…, se trata de reciclar de forma divertida.

Si es posible por tema de tiempo, también se les puede ofrecer la posibilidad de  ponerles un bocadillo a los Android con una frase, su nombre …

 
 

 
 
 

Se trata del proyecto de 1º ESO, consiste en un muñeco tipo Android a los que los alumnos han caracterizado de diversas formas. Fabricado con un cuerpo de plástico de tuberia de PVC, cabeza de corcho y pata y brazos de madera.

El funcionamiento se basa en el control a través de dos conmutadores de cada uno de los motores de la base. Pudiendo asi  girar a izquirda y derecha, tanto hacia delante como hacia atrás, estos movimientos están dirigidos por los motores y los permite la rueda loca que hemos colocado en la parte delantera de chasis, al mismo tiempo si ambos motores giran a la vez el Androd puede circular en linea recta en ambos sentidos.

Cada Android ha sido personalizado, con led, zumbadores , luces y muchos de ellos llevan un  imán de neodinio con el objeto de poder aprovechar la fuerza del magnetismo para por ejemplo transportar cosas, o jugar con bolines de metal.
Los cochecitos Android llevaran en algunos casos unas banderitas  el nombre de nuestro instituto, y lo utilizaremos para animar el visitante a que se acerque a nuestro stand.

 
 





 

PROGRAMANDO EN ARDUINO



ARDUINO


Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares

El
hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida.4 Los microcontroladores más usados son el Atmega168, Atmega328, Atmega1280, ATmega8 por su sencillez y bajo coste que permiten el desarrollo de múltiples diseños. Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programación Processing/Wiring y el cargador de arranque que es ejecutado en la placa.4

Arduino se inició en el año 2005 como un proyecto para estudiantes en el Instituto IVREA, en Ivrea (Italia).

Por aquella época, uno de los fundadores de Arduino, Massimo Banzi, daba clases en Ivrea.

El nombre del proyecto viene del nombre del Bar di Re
Arduino (Bar del Rey Arduino) donde Massimo Banzi pasaba algunas horas.En su creación, contribuyó el estudiante colombiano Hernando Barragán, quien desarrolló la tarjeta electrónica Wiring, el lenguaje de programación y la plataforma de desarrollo. Banzi afirmaría años más tarde, que el proyecto nunca surgió como una idea de negocio, sino como una necesidad de subsistir ante el inminente cierre del Instituto de diseño Interactivo IVREA. Es decir, que al crear un producto de hardware abierto, éste no podría ser embargado.

Posteriormente, Google colaboró en el desarrollo del Kit Android ADK, una placa Arduino capaz de comunicarse directamente con teléfonos móviles inteligentes bajo el sistema operativo
Android para que el teléfono controle luces, motores y sensores conectados de Arduino.

En el año 2005, se incorporó al equipo el profesor Tom Igoe. Él ofreció su apoyo para desarrollar el proyecto a gran escala y hacer los contactos para distribuir las tarjetas en territorio estadounidense.

Constantes



HIGH/LOW: representan los niveles alto y bajo de las señales de entrada y salida. Los niveles altos son aquellos de 3 voltios o más.
INPUT/OUTPUT: entrada o salida.
false (falso): Señal que representa al cero lógico. A diferencia de las señales HIGH/LOW, su nombre se escribe en letra minúscula.
true (verdadero): Señal cuya definición es más amplia que la de false. Cualquier número entero diferente de cero es "verdadero", según el
álgebra de Boole, como en el caso de -200, -1 o 1. Si es cero, es "falso".

Sintaxis Básica

· Delimitadores:;, {}

· Comentarios: //, /* */

· Cabeceras: #define, #include

· Operadores aritméticos: +, -, *, /, %

· Asignación: =

· Operadores de comparación: ==, !=, <, >, <=, >=

· Operadores Booleanos: &&, ||, !

· Operadores de acceso a punteros: *, &

· Operadores de bits: &, |, ^, ~, <<, >>

· Operadores compuestos:

· Incremento y decremento de variables: ++, --

· Asignación y operación: +=, -=, *=, /=, &=, |=

Funciones Básicas 


 (1) E/S Digital
· pinMode(pin, modo)
· digitalWrite(pin, valor)
· int digitalRead(pin)
(2) E/S Analógica
· analogReference(tipo)
· int analogRead(pin)
. analogWrite(pin, valor)
(3) E/S Avanzada
· shiftOut(dataPin, clockPin, bitOrder, valor)
· unsigned long pulseIn(pin, valor)
(4) Tiempo
· unsigned long millis()
· unsigned long micros()
· delay(ms)
· delayMicroseconds(microsegundos)
(5) Matemáticas
· min(x, y), max(x, y), abs(x), constrain(x, a, b), map(valor, fromLow, fromHigh, toLow, toHigh), pow(base, exponente), sqrt(x)


Ejemplo sencillo de programación en Arduino


El primer paso antes de comprobar que la instalación es correcta y empezar a trabajar con Arduino, es usar ejemplos prácticos que vienen disponibles con el dispositivo. Se recomienda abrir el ejemplo “led_blink” el cual crea una intermitencia por segundo en un led conectado en el pin 13. El código necesario es el siguiente:

# define LED_PIN 13
void setup () {
// Activado del contacto 13 para salida digital
pinMode (LED_PIN, OUTPUT);
}
// Bucle infinito
void loop () {
// Encendido del diodo LED enviando una señal alta
digitalWrite (LED_PIN, HIGH);
// Tiempo de espera de 1 segundo (1000 ms)
delay (1000);
// Apagado del diodo LED enviando una señal baja.
digitalWrite (LED_PIN, LOW);
// Tiempo de espera de 1 segundo
delay (1000);
}

Vídeos tutoriales
http://www.youtube.com/watch?v=qhy5UtIzZfo

http://www.youtube.com/watch?v=-KXBZZO6IgQ




Ejemplo sencillo de programación en Arduino

El primer paso antes de comprobar que la instalación es correcta y empezar a trabajar con Arduino, es usar ejemplos prácticos que vienen disponibles con el dispositivo.

Ejemplo:

# define LED_PIN 13

void setup () {

 // Activado del contacto 13 para salida digital

 pinMode (LED_PIN, OUTPUT);

}

// Bucle infinito

void loop () {

 // Encendido del diodo LED enviando una señal alta

digitalWrite (LED_PIN, HIGH);

// Tiempo de espera de 1 segundo (1000 ms)

delay (1000);

// Apagado del diodo LED enviando una señal baja.

digitalWrite (LED_PIN, LOW);

// Tiempo de espera de 1 segundo

delay (1000);
}

Aquí dejamos dos videos muy explicativos sobre el Arduino:
https://www.youtube.com/watch?v=qhy5UtIzZfo


https://www.youtube.com/watch?v=-KXBZZO6IgQ


PROYECTOS QUE SE PUEDEN REALIZAR CON ARDUINO

SEMÁFORO CON ARDUINO UNO

Programa y circuito para la creación de cruce de semáforos con Arduino Uno. El estado verde tiene una duración de 6 segundos, más el tiempo de parpadeo, el estado amarillo es de 3 segundos y el estado rojo se encuentra activo mientras el otro semáforo pasa por el estado verde y amarillo. El botón sirve para terminar el tiempo del semáforo con luz verde activo en el momento y así pasar la actividad al otro semáforo. Material usado

· Arduino Uno y cable para conexión USB
· 1 push button
· 1 resistencia de 10K ohms
· 6 resistencias de 330 ohms
· 2 leds de 10 mm, color verde difuso
· 2 leds de 10 mm, color ámbar difuso
· 2 leds de 10 mm, color rojo difuso
· 1 protoboard
· Cables para conexiones
Circuito

El circuito es sencillo y fácil de elaborar.






el circuito ya montado en el protoboard.




https://www.youtube.com/watch?v=LYYdpw3h4Bk



La programación del mismo es la más sencilla, únicamente reproduce el el funcionamiento del semáforo que dirige a los coches.

El segundo semáforo, a tamaño natural, y de imagen muy similar a los que podemos encontrar en la calle, funcina a través de reles, a corriente de 230V, el programa es más complejo, ya que están coordinados tanto el semáforo de coches como el de peatones, reporduciendo exactamente el funcionamiento de los reales.

Código

Este es el programa creado para hacer funcionar los dos semáforos. Cada semáforo es una función, y al termino de cada función se manda a llamar a la otra función. La función loop inicializa el semáforo con uno en luz verde y el otro en luz roja.

/*
Programa para un par de semaforos que cambian de uno
a otro, y la implementacin de un boton para terminar
el tiempo de la luz verde y pasar al otro.
*/
// Declaramos la variable para el pin del boton
const int button = 8;

void setup() {
// Con un ciclo activamos los pines del 2 al 7 como salidas
for (int pin = 2; pin <= 7; pin++) {
pinMode(pin, OUTPUT);
}
// El pin del boton lo ponemos como entrada
pinMode(button, INPUT);
}

// Funcion para el primer semaforo y sus cambios de estado
void semaphoreOne() {
digitalWrite(2, HIGH);
int count = 0;
while (count < 30) {
// El ciclo esta en espera mientras el boton no es presionado
if (digitalRead(button) == true) {
break;
}
count++;
delay(200);
}
digitalWrite(2, LOW);
delay(500);
digitalWrite(2, HIGH);
delay(500);
digitalWrite(2, LOW);
delay(500);
digitalWrite(2, HIGH);
delay(500);
digitalWrite(2, LOW);
delay(500);
digitalWrite(2, HIGH);
delay(500);
digitalWrite(2, LOW);
delay(500);
digitalWrite(2, HIGH);
delay(500);
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
delay(2500);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(7, LOW);
// Mandamos a llamar al otro semaforo
semaphoreTwo();
}

// Funcion para el segundo semaforo y sus cambios de estado
void semaphoreTwo() {
digitalWrite(5, HIGH);
int count = 0;
while (count < 30) {
if (digitalRead(button) == true) {
break;
}
count++;
delay(200);
}
digitalWrite(5, LOW);
delay(500);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(5, LOW);
delay(500);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(5, LOW);
delay(500);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(5, LOW);
delay(500);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
delay(2500);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
digitalWrite(4, LOW);
// Mandamos a llamar al otro semaforo
semaphoreOne();
}
// Iniciamos nuestro semaforo
void loop() {
// Cambiamos el estado de todos los leds para
// que esten apagados todos al inicio
for (int pin = 2; pin <= 7; pin++) {
digitalWrite(pin, LOW);
}
// Prendemos el verde de un semaforo y el
// rojo del otro semaforo
digitalWrite(2, HIGH);
digitalWrite(7, HIGH);
// Iniciamos el primer semaforo
semaphoreOne();
}


 
 

Se trata de los robots realizados con placas Arduino, que junto con los sensores de infrarrojos, llevan también detectrores de lumninosidad, los CNY-70, que les permiten moverse dentro del tatami negro y evitar salir de el , ya que pueden detectar el color blanco del borde.


Estas entradas al robots, junto con la distancia que tengan con respecto al otro robot de sumo condicionan la programación de los dos servomotores. 


 
 
 
 
 
 



 



  

IMPRESORAS 3-D EN EL IES "CIUDAD DE ÁNGELES"

 

Una impresora 3D, es un dispositivo capaz de generar un objeto sólido tridimensional mediante la aportación de material extra. Los métodos de producción tradicionales generan formas a partir de la eliminación de exceso de material. Las impresoras 3D se basan en modelos 3D para definir qué se va a imprimir. Un modelo no es si no la representación digital de lo que vamos a imprimir mediante algún software de modelado. Por dar un ejemplo de lo anterior, con una impresora 3D podríamos generar una cuchara, o cualquier otro objeto que podamos imaginar, usando tan solo la cantidad estrictamente necesaria de material, y para hacerlo deberemos tener la representación del objeto en un formato de modelo 3D reconocible para la impresora.




Los materiales que actualmente pueden utilizarse para ‘imprimir’ son variados y lo cierto es que influyen bastante en el coste de la impresora. Cualquier impresora de bajo coste suele funcionar con termoplásticos como el PLA o ABS. Pero nos encontramos impresoras capaces de trabajar con metal, fotopolímeros o resina líquida, aunque resultan prohibitivas para entornos no industriales.



 
 

¿Y qué usos puede tener una impresora 3D y en qué campos?.

La lista es larga y es difícil describirlos todos: desde piezas de instrumental médico o incluso implantes, pasando por sus aplicaciones en la arquitectura, donde puede pensarse en imprimir objetos e incluso estructuras, aplicaciones aeroespaciales, educación, y por supuesto el uso doméstico y semiprofesional que abre múltiples opciones y se presenta como el futuro de la tecnología.


Pese a la gran diversidad de tipos de impresión 3D existentes, todas las impresoras comparten una característica común: el objeto se imprime capa a capa, empezando por la inferior y acabando en la superior.






El pasado sábado, 7 de junio, se celebró en el IEFPS Don Bosco de Errenteria la primera quedada solidaria de impresoras 3D de Euskadi, con la colaboración de GAZE y los/as GAZEkides, en la que se reunieron 34 impresoras 3D -muchas de ellas de fabricación casera- para construir manos articuladas de bajo coste para niños/as que sufren las consecuencias de las minas antipersona.


Estas prótesis fueron montadas por las y los participantes, con la ayuda de los/as GAZEkides que habían estado días antes encargados de aprender a montarlas. Después, las y los alumnos de la Escuela UGLE (Urola Garaiko Lanbide Eskola) de Zumarraga se encargaban de preparar y acoplarles el termoplástico que hace posible el funcionamiento de las prótesis.


Fue una jornada con muy buen ambiente, en la que entre todos/as conseguimos montar 4 manos completas, que la Cruz Roja -que también tomaba parte en el evento- se encargará de repartir donde crean conveniente. Para finalizar el día, se ofrecieron dos charlas en torno a los dos temas principales de la jornada: la primera, a cargo de Víctor Barahona, sobre el hardware ysoftware libre, impresoras 3D, etc., y la segunda, protagonizada por José Luis Doménech, jefe de la Unidad de Enseñanza y Difusión del Centro de Derecho Internacional Humanitario de la Cruz Roja, quien habló sobre las minas antipersona y sus consecuencias en la población civil.


BORRADOR FREECAD

FreeCad es un programa que realiza operaciones de modelado 3D relacionado con CAD (un amplio sistema de programas dedicados a realizar diseños 2D Y 3D por ordenador) que está orientado a la ingeniería y sus derivados y también la arquitectura. Es totalmente libre y multiplataforma.


PRINCIPALES CARACTERÍSTICAS:


1. Un completo núcleo de geometría basado en OpenCasCadeque permite realizar operaciones 3D complejas con tipos de formas complejas, y soporta conceptos como “brep”, “nurbs”, operaciones booleanas o redondeos
.


2. Una arquitectura modular que admite módulos para añadir funcionalidades a la aplicación principal. Estas extensiones pueden ser tan complejas como nuevas aplicaciones completas o tan simples como archivos de guión en Python o macros grabadas de manera automática.


3. Acceso completo desde el intérprete integrado de Python, incluyendo la creación y transformación de geometría, la representación 2D o 3D de dicha geometría (Gráficos de escena) o incluso la interfaz de FreeCAD.


4. Un entorno de croquizado con resolución de restricciones, permitiendo croquizar formas 2D con restricciones geométricas. El entorno de croquizado actualmente permite definir diversos tipos de restricciones geométricas, y utilizarlas como base para crear otros objetos en todo FreeCAD.


5. Un módulo de Simulación de Robots que permite estudiar los movimientos de robots. El módulo de Simulación de Robots ya dispone de un interfaz gráfico extendido que permite trabajar solo a través de la interfaz gráfica de usuario.


Interfaz de usuario:





Motor estrella diseñado por FreeCAD:


 
Buggy diseñado por FreeCAD




Esta herramienta está en desarrollo, se está desarrollando un módulo de arquitectura que proporciona entidades arquitectónicas enteramente paramétricas como muros, elementos estructurales o ventanas, y producción de documentación 2Davanzada.

Por otra parte también está en desarrollo un módulo de diseño para barcos que trata de ofrecer las herramientas necesarias durante la fase de diseño de barcos referente a la Arquitectura Naval.

Diseño de un barco por FreeCAD: