martes, 6 de septiembre de 2016

USO DEL SERVO MOTOR

¿Qué es?

Resultado de imagen de servomotorUn servomotor es un motor eléctrico que puede ser controlado tanto en velocidad como en posición. Está conformado por un motor, una caja reductora y un circuito de control. Los servos son sumamente útiles en robótica. Los motores son pequeños, tiene internamente una circuiteria de control interna y es sumamente poderoso para su tamaño.

El Servo Motor HS-311 es el servo perfecto para usos educativos, esto es porque el servo tiene muchas características que solo se encuentran en servos más caros. Una circuitería de calidad así como los engranes asegura la durabilidad del servo. Viene con varios accesorios y brazos para montarse. Este servo puede operar a 180°.


Cómo conectar el Servo Motor

Resultado de imagen de servomotor arduino

El servo motor consta de 3 cables que deben ser conectados adecuadamente en el aduino. A continuación, se detalla la conexión de cada cable.


Cable rojo del servo motor es el positivo y va conectado al pin de 5V del arduino. EN caso de estar ocupado conéctelo al protoboard para tener más salidas de 5v.

Cable negro del servo motor es el negativo puede ir conectado directamente al GND del Arduino o al protoboard donde tiene todas las GNDs referenciada.

Cable amarillo del servo motor al PIN 9 del Arduino o a cualquiera de los PINs marcados como PWM (Pulse Width Modulation, o modulación por ancho de pulsos), es por este cable donde se enviará la señal de control al servo motor para que vaya de 0º a 180º.

Uso del Servo Motor


Los servomotores hacen uso de la modulación por ancho de pulsos (PWM) para controlar la dirección o posición de los motores de corriente continua. La mayoría trabaja en la frecuencia de los 50 hertz, así las señales PWM tendrán un periodo de veinte milisegundos. La electrónica dentro del servomotor responderá al ancho de la señal modulada. 

Ejemplo de programación para el servo motor


#include <Servo.h>

Servo myservo;  //crea un referencia al servo motor

int pos = 0;    //posición inicial del servo
int positions[] = {0, 45, 90, 135, 180};  //posiciones (en grados) para moverse
int numPositions = 5; //cantidad de posiciones disponibles

void setup() 
{ 
  //control servo motor via pin 9
  myservo.attach(9, 650, 2350);
  Serial.begin(9600);
} 

void loop() 
{ 
  int i = 0;
  //cambia de posiciones
  for(i = 0; i < numPositions; i++) 
  {         
    pos = positions[i];

    //print debug output
    Serial.println("SETTING:");
    Serial.println(pos);

    //cambio de posicion del servo a una nueva
    myservo.write(pos); 

    //espero dos segundos
    delay(2000);
  }
}

miércoles, 31 de agosto de 2016

Proyecto Final

Materiales

 

 

Resumen del Procedimiento

1) Modificamos el protoboard para un uso adecuado de los componentes eléactricos.
2) Se cnecta cada motoreductor a los lados correspondientes de cada puente H.
3) Se colocan los puenres H en el protoboard pegàndolos con cinta doble cara.
4) Se procede a la programaciòn respectiva de cada puente H en el arduino, verificando su polaridad de giro en cada rueda para encaminarse en un mismo sentido, ya sea adelante, atràs o a los lados.
5) Conectamos el mòdulo Bluetooth teniendo en cuenta la conexiòn de los pines.
6) Procedemos a programar el mòdulo bluetooth con los "botones" de adelante, atràs y a los lados.
7) Mediante la aplicaciòn "Bluetooth RC Controller", nos conectamos con el mòdulo Bluetooth del robot.
8) Nuestra conexión es HC-06 y escribimos la clave.
 9) Probamos nuestro carro con la aplicaciòn.
10) Disfrutamos y nos preparamos para la carrera.



BLOG MODULO DE BLUETOOH HC 05

¿Qué es el Módulo Bluetooth?


Resultado de imagen para modulo bluetooth
ES UN COMPONENTE ELECTRONICO QUE ME PERMITE CONECTARME MEDIANTE BLUETOOH A CUALQUIER DISPOSITIVO CON SISTEMA OPERATIVO ANDROID CON EL FIN DE PODER CONTROLAR NUESTRO PROYECTO.

CONEXIÓN DEL MÓDULO DE BLUETOOH
LA SIGUIENTE IMAGEN INDICA LA FORMA DE CONEXIÓN DEL MÓDULO DE BLUETOOH A NUESTRO ARDUINO Y LA PROGRAMACIÓN BÁSICA.Resultado de imagen para conectar modulo bluetooth arduino


Como podemos ver en la imagen, tenemos 4 pines en el módulo Bluetooth que debemo conectar al arduino:
El RXD debe ir conectado al pin digital 1 del arduino.
El TXD debe ir conectado al pin 0 del arduino.
EL GND DEbe ir conectado a tierra en el arduino.
El VCCdebe ir conectado a los 5v del arduino.

Para conectarlos podemos usar cables macho-hembra

sábado, 23 de julio de 2016

Moto Reductor + Puente H

Como su nombre lo dice, los motorreductores no son más que dispositivos eléctricos que poseen un motor acoplado y se usan para reducir o regular la velocidad en máquinas y aparatos de una manera eficiente y segura.
En pocas palabras los reductores son sistemas de engranajes que permiten que los motores eléctricos funcionen a diferentes velocidades para los que fueron diseñados.

Componentes de un reductor

Los reductores son diseñados a base de engranajes, mecanismos circulares y dentados con geometrías especiales de acuerdo con su tamaño y la función en cada motor.























Puente H

Es un circuito electrónico que permite a un motor (/en este caso dc), girar en ambos sentidos, es decir el motor ya no iá para un solo lado sino que puede girar para izquierda o derecha y también podrá avanzar o retroceder.
Un puente H se usa para invertir el giro de un motor, pero también se puede usar para frenarlo.


Explicación de cómo conectar el puente H al arduino


Para conectar al arduino debemos conectar a 2 pines los terminales de contro, en mi caso utilizaré IN3 y IN4.En el arduino, si queremos controlar la velocidad del motor, tenemos que hacer uso de PWM. Este PWM será aplicado a los pines de activación de cada salida o pines ENA y ENB respectivamente, por tanto los jumper de selección no serán usados.
Luego utilizaremos también las salidas para motores, que son las que dicen OUT, las cuales hay 4 en el puente h y utilizaré el OUT 2 la en la cual se hacen 3 conexiones. En la izquierda se conecta el cable positivo de la batería de 6v-12v, mientras que la de enmedio se conecta al GND del arduino.  Adicionalmente en OUT 4 conectamos 2 cables macho macho que iran al motor reductor.



 MI PUENTE H






























Conexión del Puente H (configuración)

Mi conexión es la misma que el mr pyoectó en la pantalla. Ya que no se ve muy bien en la imagen la escribiré a continuación:

int IN3 = 5, int IN4 = 4;

void setup() {

pin Mode (IN4,OUTPUT);
pinMode (IN3, OUTPUT);

}

void loop() {

digitalWrite (IN4, HIGH);
digitalWrite (IN3, LOW);
delay (4000);

digitalWrite (IN4, LOW);
delay (500);

digitalWrite (IN3, HIGH);
delay(4000);

digitalWrite (IN3, LOW);
delay(5000);

}





Mi conexión del Puente H al Arduino





Materiales a usar para la práctica:


1) Arduino Uno
2) Moto reductor
3) Puente H
4) Batería 6v-12v
5) 2 Cables macho-hembra
6) 3 cables Macho-macho
7) destornillador


Conexión Moto reductor + Puente H
























Anexos

Explicación del MR.




lunes, 11 de julio de 2016

El gran proyecto (sumativa)

Sumativa


Luego de habernos familiarizado mediante la práctica, explicación e investigación con varios de los componentes, llega el trabajo final. Realmente es muy complejo este trabajo consistía en utilizar 12 leds, 6 en frente y otros 6 en frente, realizar 2 secuncias. La primera secuencia, se realiza cuando el botón no está aplastado, en esta secuencia, se encienden los leds, desde varios extremos opuestos, y se van acercando. En la segunda secuencia, la cual es realizada cuando el botón es aplastado, se deben encender 3 leds de un lado y 3 del otros, luego estos se apagan y se e3ncienden los demas. Todo este trabajo debe unirse con un potenciómetro el cual va a regular la velocidad, es decir debemoos hacer que el potenciómetro aumente la velocidad de encendido y apagao de los leds, y disminuya.


En esta imagen se puede apreciar lo que se debe realizar en el trabajo.



RESULTADO OBTENIDO




Desarrollo y Opiniones

Realizar este trabajo no fue nada fácil, pues trajo consigo mucho esfuerzo y dedicación. En mi caso, pasé varios día intentando hallar el código correcto, puesto que era algo teóricamente largo, tuve que empezar días antes. Tambíen tuve que investigar en algunos casos, ya que no recordaba cómo utilizar algunos de los componentes y cómo agregar variables para unir este trabajo. Sin embargo, me di cuenta que un con análisis fue suficiente para poder realizar este trabajo. Al pincipio estuve muy encerrado a una sola manera de realiza el ejrcicio, sin embargo me propuse analizar otras alternativas que podrían servir, y así fue. Al principio, como todo trabajo hubieron muchos problemas, los leds no encendían porque estaban mal colocados, hacían faltas cables, el código no era compilado correctamente, las secuencias estaban endesoreden, en fin hubieron muchos problemas, pero al final luego de arreglar muy bien los detalles y mejorar cada parte que estaban mal colocada o mal hecha, pudimos obtener el resultado que tanto deseábamos. Al final mi compa;era Ana y yo nos emocionamos y llenamos de alegría, orgullo y satisfación al haber obtenido el resultado esperado, ya que pudimos realizar ambas secuencias como eran y obtuvimos la maxima calificación.










Anexos
Código utilizado





Pulsador

Pulsador

Vamos a hacer nuestra primera prueba de botón (pulsador) conectando un LED en nuestra tarjeta Arduino. El símbolo del esquema para un pulsador de botón es algo diferente que el mostrado. Prepare un LED rojo y una resistencia de 10K Ohms, así como el pulsador de botón y construya un montaje del esquema en su tabla de prototipado cerca del Arduino.




Esta es primero la explicación que nos dio el mr en la pizarra, parece simple aunque en realidad es algo compleja. Algo muy importante en el pulsador es que la energía fluye de modo X, cruzado y luego de esto se debe colocar una resistencia.




Así es como se debe montar el pulsador en nuestra placa Arduino.


Actividad, encender un led aplastando el botón



En esta actividad trabajamos modificando el led del pin 13 que se encuentra en la placa Arduino para que al pulsar o no pulsar la botonera se encienda o se apague dicho led. Para esto se conectaba una de las patas del led a tierra pero utilizando una resistencia de 1k ohmios y del otro lado se conectaba a la placa al pin de 5v y al pin 13 que era con el que se iba a trabajar.

Código de configuración




int estado = 0;


void setup() {
  // put your setup code here, to run once:
pinMode(11, INPUT);  
pinMode(13,OUTPUT);
}
void loop() {
  // put your main code here, to run repeatedly:
estado = digitalRead(12);

 if (estado == HIGH){
  digitalWrite(13, HIGH);
 } 
 else {
   digitalWrite(13, LOW);
 }
}





















Auto Fantástico II: Encender los leds en direcciones opuestas


Auto Fantástico II: Encender los leds en  direcciones opuestas



Luego que realizamos la primera secuencia encendiendo y apagando los leds en un mismo sentido, esta actividad tendrá algo peculiar, que será encender y apagar leds en sentidos opuestos.

Para esta actividad necesitaremos:


8 leds
8 resistencias
Arduino
Protoboard
8 Cables macho macho
1 cable más que i´ra conectado a tierra


Luego que ya tenemos el protoboard montado con la secuencia anterior, lo que va a variar, será el código de programación por varios motivos:
1) Ya no se encenderá un led a la vez, sino dos.
2) Al encender dos leds a la vez, también se apagarán los mismo, y así hasta terminar con todos.
3) Luego que llega al extremo, no debe empezar desde el principio, sino que debe regresar en sentido contrario al origen, seiguiendo la misma secuencia.

Desarrollo


Lo primero que hice, fue darme cuenta que debía unir 2 códigos de leds para encendido. Así de esta manera obtendr´´iamos el siguiente código en void loop

void loop() {
  // put your main code here, to run repeatedly:
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
delay(100);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
delay(100);
digitalWrite(5, HIGH);
digitalWrite(8, HIGH);
delay(100);
digitalWrite(5, LOW);
digitalWrite(8, LOW);
delay(100);
digitalWrite(4, HIGH);
digitalWrite(9, HIGH);
delay(100);
digitalWrite(4, LOW);
digitalWrite(9, LOW);
delay(100);
digitalWrite(3, HIGH);
digitalWrite(10, HIGH);
delay(100);
digitalWrite(3, LOW);
digitalWrite(10, LOW);
delay(100);
digitalWrite(10, HIGH);
digitalWrite(3, HIGH);
delay(100);
digitalWrite(10, LOW);
digitalWrite(3, LOW);
delay(100);
digitalWrite(9, HIGH);
digitalWrite(4, HIGH);
delay(100);
digitalWrite(9, LOW);
digitalWrite(4, LOW);
delay(100);
digitalWrite(8, HIGH);
digitalWrite(5, HIGH);
delay(100);
digitalWrite(8, LOW);
digitalWrite(5, LOW);
delay(100);
digitalWrite(7, HIGH);
digitalWrite(6, HIGH);
delay(100);
digitalWrite(7, LOW);
digitalWrite(6, LOW);
delay(100);
}


Como podemos ver en el código, a iferencia del primer trabajo, aquí se ponen 2 pines digitales seguidos, ya que funcionarán al mismo tiempo.







Encender leds en secuencia con Arduino

Primer Trabajo con Placa Arduino

Objetivo: Encender 8 leds y ejecutar una secuencia.

Materiales:
Arduino
8 Leds
8 Cables macho macho
Protoboard
8 Resistencias

Antes de empezar a utilizar el Arduino, realizamos las coexiones en el protoboard, leds, cada uno con su respectiva resistencia, los cables macho deben ir a los pines respectivos y conectamos un cable desde el protoboard, hasta el GND (tierra) del arduino.

1) Como primer paso para realizar este trabajo necesitamos decirle al arduino cuáles son los pines digitales con los que vamos a trabajar, ya sea de entrada o de salida. En este caso, queremos que los leds se enciendas por lo que escribimos alado de los pines, OUTPUT, que en español significa salida. Hay que recordar que en void setup lo que escribimos es cómo queremos los pines, ya sea de entrada o de salida, en este caso de salida.
Para escribir el pin que utilizaremos existen varias formas de hacerlo; podemos declarar el pin con una variable, escribiendo el nombre que debemos usar, o podemos hacerlo simplemente escribiendo el numero de pin del arduino con el que vamos a trabajar; para este caso utilizaremos la segunda forma. Puesto que obtendríamos lo siguiente.
Ejemplo:

void setup ()
{
pinMode(2, OUTPUT);
}

importante: Es muy importante y es ley que siempre que terminamos de escribir una "linea" terminemos con punto y coma (;).
además siempre que ingresemos algo en void setup, debemos empezar con una llave, y al finalizar cerrar con otra (como se muestra en el ejemplo).
Una vez que tenemos claro estos conceptos, procedemos escribir los pines que utilizaremos.

2) Configurar en void loop.
Luego de que tenemos el stup, procedemos a decirle al arduino cuál es la secuencia que queremos que repita infinitas veces. Para esto también tenemos que usar una determinada estructura.

2.1) Escribimos digitalWrite, seguido de un paréntesis en el que escribimos el pin que vamos a utilizar seguido del estado que lo queremos HIGH o LOW.
Ejemplo

void loop ()
{
digitalWrite(2, HIGH);

Seguido de esto escribimos el delay, que pausa el programa por  una cantidad de tiempo determinada (en milisegundos).
void loop ()
{
digitalWrite(2, HIGH);
delay(1000);

Teóricamente ya estaría para realizarse, sin embargo queremos que el led también se apago, no solo que se quede encendido, y para esto escribimos igual que el digitalWrite, pero esta vez con LOW que apagará el led, también con un cantidad de tiempo determinada.

void loop ()
{
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(2, LOW);
delay(1000);
}

3) Una vez que hemos terminado de configurar la funciónm que queremos que realice el arduino, damos click en verificar, y si nos acepta, es decir si nos dice que está correcto, damos click en subir, que se subirá al arduino.

En la imagen a continuación se muestra la configuración final, con todos los leds que utilizaremos, en este caso , con los pines del 3 al 10 y variando en la mayoría la velocidad (este no es el final, revisado por el profesor, ya que la foto fue eliminada).



Resultado final

































Lo que aprendí, Opiniones, Conclusiones.

Realmente me ha parecido una gran experiencia trabajar con lo que es programacón. Esta introducción y primer trabajo con el arduino al principio se me hicieron realmente complejas y por ende complicadas, ni siquiera me acordaba de cómo encender un led (tema del año pasado), sin embargo, recordando concepos y retomando0 la práctica pude acordarme de lo principal. Las bases del año pasado fueron muy útiles para tener un buen desempeño durante estas primeras clases y para no estar totalmente perdido. Luego con la explicación del profesor y ampliando conceptos he entendido lo principal sobre este nuevo entorno de la programación. Errores al principio tuve demasiados, pero me ayudaron a mejorar en lo que fallaba pata poder trabajar mejor. Me siento muy emocionado de haber hecho bien este trabajo que al rpincipio parecía realmente complicado pero luego se me hizo fácil. Estoy seguro que si continúo con la dedicación prestada, los siguientes trabajos y proyectos no se harán nada difícil, además espero seguir conociendo más a fondo la programación ya que me gusta esta área porque me he dado cuenta que la tecnología crece a pasos agigantados y esto que estamos viendo ahora con el Arduino es lo más básico para programas que el ser humano a logrado desarrollar y manejar para una nueva evolución en el siglo que nos encontramos. 

domingo, 10 de julio de 2016

Introducción al Arduino, conceptos básicos.

Introducción

Arduino es una plataforma de hardware de código abierto, basada en una sencilla placa con entradas y salidas, analógicas y digitales, en un entorno de desarrollo que está basado en el lenguaje de programación Processing. Es un dispositivo que conecta el mundo físico con el mundo virtual, o el mundo analógico con el digital.


Conceptos muy importantes, a tener en cuenta antes de utilizar el arduino.

ENTRADAS/SALIDAS DIGITALES

 Estos pines son los pines del 0 al 13 de Arduino y se llaman digitales porque sólo pueden manejar valores 0 o 1. Si queremos usar un pin digital, lo primero que debemos que hacer es configurar el modo de trabajo del pin. Ésto se hace siempre en la función setup(), que  será explicada a continuación.

Las instrucciones que se emplean para los pines digitales son: pinMode(pin,[INPUT,OUTPUT]) 
 Un pin digital tiene sólo dos modos, 

OUTPUT (salida) e INPUT (entrada). 

Si declaras un pin como OUTPUT, sólo podremos usarlo para activarlo, aplicando 5V en el pin, o para desactivarlo, aplicando 0V en el pin. 

Si configuras el pin como INPUT, sólo podrás usarlo para leer si hay 5V ó 0V en el pin.

digitalWrite(pin,valor)


Se usa para activar o desactivar un pin digital. Entre paréntesis se debe indicar qué pin modificar, y qué valor darle. Ejemplo: digitalWrite(pin, HIGH); Ésto pondrá el pin en su estado HIGH, proporcionando 5V en él. Si escribes LOW apagarás el pin, dejando el pin a 0V. Ten en cuenta que hasta que se define el estado del pin como HIGH su valor por defecto será LOW. 
Si miramos la placa Arduino, verás que los pines digitales 0 y 1 están marcados como RX y TX. Estos pines están reservados para la comunicación serie y no deben ser usados, ya que pondrán a Arduino en modo de espera hasta que se reciba una señal. 

Estructura del programa

La estructura básica del lenguaje de programación de Arduino es bastante simple y se compone de al menos dos partes. Estas dos partes necesarias, o funciones, encierran bloques que contienen declaraciones, estamentos o instrucciones.
void setup() //Primera Parte
{
  estamentos;
}
void loop() //Segunda Parte
{
  estamentos;
}
 
En donde setup() es la parte encargada de recoger la configuración y loop() es la que contiene el programa que se ejecutará cíclicamente (de ahí el término loop –bucle-). Ambas funciones son necesarias para que el programa trabaje.
El setup es la primera función en ejecutarse dentro de un programa en Arduino. Es, básicamente, donde se “setean” las funciones que llevará a cabo el microcontrolador.
Aquí es donde establecemos algunos criterios que requieren una ejecución única. Por ejemplo, si nuestro programa va a usar comunicación serial, en el setup establecemos el comando Serial.begin para indicarle al programa que vamos a iniciar la comunicación serial.
Si vamos a utilizar un pin determinado como salida de voltaje, usamos el pinMode para indicarle a Arduino que determinado pin funcionará como salida, usando el parámetro OUTPUT.


Loop en inglés significa lazo o bucle. La función loop en Arduino es la que se ejecuta un número infinito de veces. Al encenderse el Arduino se ejecuta el código del setup y luego se entra al loop, el cual se repite de forma indefinida hasta que se apague o se reinicie el microcontrolador.