jueves, 15 de junio de 2017

El coche salvaobstaculos

No es la mejor versión . Consta de un sensor de proximidad y dos motores.


El control se ejerce mediante un sensor de proximidad y el movimiento con dos motores. Para avanzar el linea recta ambos deben girar en el mismo sentido. Para girar hacia un lado u otro se para uno y se hace funcionar el otro.



El programa es sencillo tal y como se ha explicado anteriormente


Los resultados no son del todo satisfactorios. Están sujeto al tamaño de los obstáculos. Si son pequeños no los llega a localizar bien y no tuerce. Además sería conveniente localizar si el obstáculo está a la derecha, en el centro o a la izquierda para maniobrar de forma más precisa.


lunes, 17 de abril de 2017

4.- ROBOTICA CON EL KIT DE BQ

   La empresa BQ es una empresa española que fabrica principalmente móviles y tablets. Pero está muy comprometida con la educación y por eso ha creado una plataforma educativa, que aunque se especialice en robótica cubre todos los campos de la tecnología DIWO. Podeís acceder a ella desde este enlace.

DIWO

BQ tiene varios KITs para estudiar robótica de forma divertida. Para iniciarse resulta francamente aconsejable. Además la parte de programación se realiza mediante una plataforma on-line que permite trabajar de forma colaborativa con otros usuarios y tener guardados ahí nuestros proyectos en un entorno muy amigable.


Presenta como desventaja que sólo se puede utilizar con CHROME y que hay que instalar una extensión para conectar con la placa. Pero lo cierto es que es muy amigable.



 Os dejo un video con prácticas realizadas con este KIT. 


Y una un poco especial con el sensor de ultrasonidos.




Y ahora que ya conocemos los equipos de robótica y los principales sensores y actuadores, hay que diseñar y realizar un proyecto con ellos. ¡Ánimo!


3.- CONTROL DE UN SERVOMOTOR CON ARDUINO.

                  Antes de explicar la práctica en sí que es muy sencilla, vamos a explicar qué es un servomotor. Una característica de los servomotores es que sus cables de conexión además de la alimentación tienen un tercer cable de control. Eso es debido a que los servomotores llevan incorporado un circuito PWM (modulación por ancho de pulso) que controla el ángulo de giro mediante el valor de una señal de pulso.


                  Cuando el pulso de la señal tiene un determinado valor el motor no gira se queda con un ángulo de 0º. Cuanto mayor es el pulso mayor es el giro del motor en un determinado sentido. Lo mismo ocurre en el sentido contrario cuando diminuimos el pulso.

                La gran desventaja de los servomotores es que su movimiento se limita entre 0 y 180º. Por dicho motivo, y para conseguir un giro completo de 360º, es preciso quitar los topes de la reductora, pero también es necesario sustituir el potenciometro por dos resistencias del mismo valor.


De esta manera el circuito de control tendrá la señal de 90º y seguirá girando.
        En nuestra práctica hemos conectado un servomotor a la placa ARDUINO, conectando los cables de alimentación a tierra y +5 respectivamente y el de control al pin 9. Cargando en ARDUINO el siguiente programa:

"
#include <Servo.h>

 Servo myservo;
 int angulo = 0;
 void setup()
 {
 myservo.attach(9);
 }
 void loop()
 {
 for(angulo = 0; angulo < 180; angulo += 2)
 {
 myservo.write(angulo);
 delay(20);
 }
 for(angulo = 180; angulo>=1; angulo-=2)
{
 myservo.write(angulo);
 delay(20);
 }
 }
"

El comando <Servo.h> importa de la librería Servo el programa

El resultado es:







domingo, 16 de abril de 2017

2.- ARDUINO Y LOS MOTORES DE CORRIENTE CONTINUA

                  En este mismo blog ya se ha explicado cómo funciona un motor de corriente continúa. Si consideramos las condiciones de funcionamiento de la tarjeta ARDUINO, resulta que sólo es posible controlarle si utilizamos un transistor. El transistor puede funcionar en corte cuando por su base circula una baja intensidad, haciendo que la intensidad del colector sea cero y el motor no funcione. Por otro lado, si la intensidad que circula por la base es muy alta el transistor está en saturación y el motor funciona en dichas condiciones. Entre ambas situaciones el transistor está en activa y la intensidad que circula por el colector es B (aproximadamente 100) veces la intensidad de la base. Debemos pues montar el siguiente circuito:


Buscar un transistor que pueda funcionar en las condiciones de la tarjeta ARDUINO con una resistencia adecuada. Yo he puesto un potenciomentro de 10K, y un transistor BC 547



El programa que he cargado ha sido:

"int motorPin = 10;

void setup(){
pinMode(motorPin, OUTPUT);
}
void loop(){
digitalWrite(motorPin, HIGH);
delay(1000);
digitalWrite(motorPin, LOW);
delay(1000);
}"

El resultado es el que se presenta en este video:



El programa se puede mejorar si hacemos un arranque paulatino, para lo cual la entrada a la base del transistor se debe hacer mediante una entrada analógica que se va acelerando poco a poco. El programa es entonces:

"int pulso =0; 
int pinMotor =10; 
void setup()
}
void loop()
{
for(pulso =0 ; pulso <=255; pulso ++) 
{
analogWrite(pinMotor, pulso); 
delay(20);
}
delay(600);
}"

Y el resultado es bastante mejor:



1.- PRÁCTICAS CON LED Y ARDUINO

        Una vez descrita la tarjeta ARDUINO, vamos a utilizarla. Primero utilizaremos una salida digital básica: El diodo LED. Es un diodo que se ilumina cuando se conecta en polarización directa. Por lo tanto se trata de una salida digital. Es preciso conectarle a los pines digitales y definirle como salida (OUTPUT). Para que el funcionamiento sea óptimo se requiere que se conecte en serie con él una resistencia de 220 Ohmios, excepto en el PIN 13 que ya la tiene incorporada. Las entradas serán diferentes En la práctica 1 la entrada es el tiempo. Que aunque es una entrada física la propia tarjeta posee, de forma interna, el correspondiente sensor. En la práctica 2 utilizaremos como entrada digital un botón (INPOUT) que se conectará en el PIN 2 y que precisa una resistencia de 10K. En la práctica 3 se utiliza como entrada una LDR. La LDR es una resistencia variable con la luz. Más luz menos resistencia. Por lo que es una entrada analógica que deberá conectarse en los pines analógicos con una resistencia de 10K. La última práctica es un semáforo y el control se hace mediante la entrada tiempo que no precisa sensor externo.
              Para montar los circuitos electrónicos se utilizará una placa protoboard. 
            Es preciso escribir los programas en el entorno IDE, verificar que están correctamente escritos y subirles a la placa. Siempre comprobando que la placa y el puerto de conexión son correctos. 
              Utilizando los enlaces de la siguiente tabla accederá al resto de la información. Espero que sea útil.
PRACTICA DESCRIPCIÓN CIRCUITO
ELECTRÓNICO
CONEXIONES PROGRAMA RESULTADO
LED que parpadea El LED conectado en el PIN 13 parpadea


Práctica 1 Video 1
Control de un LED con un pulsador Al pulsar el botón el LED se enciende.


Práctica 2 Video 2
Control de un LED con una LDR Cuando hay poca luz el LED se enciende


Práctica 3 Video 3
Control de semáforos Los LED del semáforo se sincronizan con los de los peatones, para evitar accidentes


Práctica 4 Video 4


       

3.- LA TARJETA ARDUINO UNO

          ARDUINO, no es sólo una tarjeta controladora es una plataforma de electrónica open hardware para la creación de prototipos. Permite conectar sensores tanto analógicos como digitales y actuadores tanto analógicos como digitales. Este es el enlace


        El aspecto de una tarjeta ARDUINO UNO (la más utilizada) es el siguiente:



         La parte fundamental es el microprocesador ATMMega328. Pero además tiene 6 entradas analógicas y 14 entradas/salidas digitales. 2 pines de potencia (5 y 3,3 V) un botón de reseteo y la probabilidad de alimentación externa o por puerto USB. Cada contacto proporciona 40 mA como máximo y podemos conectar circuitos utilizando placas Shield o protoboard. 

             La empresa BQ ha utilizado como base esta tarjeta controladora y realizando algunos cambios ha creado sus propias tarjetas controladoras BQ ZUM y FREDUINO. Su uso resulta más simplificado.

              Además de tener la tarjeta es necesario bajarse el software de la plataforma. El entorno ARDUINO e muy amigable y sencillo. 



Programar con Arduino es muy sencillo. Las estructuras secuenciales, ramificadas y bucles se basan en los mismos principios que la programación con Scratch. De hecho podremos conectar desde Arduino con S4A (Scratch for Arduino) y utilizar Scratch para programar nuestro ARDUINO. 

      Todo programa ARDUINO consta de 2 partes. 

void setup   En donde en general se especifican los pines de entrada y salida

y

void loop En donde se lleva a cabo el bucle principal (similar a un por siempre)

Al inicio del programa se deben declarar las constantes y las variables.