ARDUINO

combinacion de programacion y electronica con arduino Hadware y arduino Software basado en el sistema operativo libre UBUNTU

martes, 22 de diciembre de 2015

Avance1 Scratch

Objetivo:
Desarrollar el primer avance de la multimedia teniendo en cuenta el diseño y la introdución del mismo

En este primer avance se utiliza una sensores mensajes y sincronizacion de dialogos para haci tener una interaccion con el  niño o usuario.

1er Avance

Podcast Cuarta Entrega

jueves, 17 de diciembre de 2015

Cuarta Entrega




Objetivo:
Implementar el receptor IR como componente de mando para el prototipo y así codificar instrucciones de control para el mismo .


Receptor IR
Un sensor de infrarrojos (IR) está compuesto básicamente por un LED que emite pulsos de luz infrarroja siguiendo un patrón determinado que permite al dispositivo conocer la función a realizar.
Para poder controlar nuestro Arduino mediante un mando a distancia y un sensor IR, deberemos conocer el protocolo interno de comunicación del mando.

Logros y Dificultades : 
La implementación  de el receptor IR tuvo una dificultad al momento de la sincronizacion con los demas dispositivos  ya  que no se ejecutaba al momento realizar mandos desde el control remoto.
Se pudo realizar  la sincronización  aplicando metodos dentro de el void loop haciendo que el mismo se ejecute en primer plano.



CODIGO:

#include 

#include 

#define IRPIN 8   // pin al que conectamos el receptor de IR

static int aux = 1;

NECIRrcv ir(IRPIN) ;

void setup()

{

  Serial.begin(9600) ;

  Serial.println("NEC IR codigo recepcion") ;

  ir.begin() ;

}

void loop()

{

  unsigned long ircode ;

  while (ir.available()) {

    ircode = ir.read() ; 

    Serial.println(ircode) ;

  }


jueves, 10 de diciembre de 2015

Tercera Entrega Podcast

Sensores y sincronizacion

Tercera Entrega

Implementación de sensores y sincronizacion de componentes
En esta tercera entrega se realizara la implementación de un segundo sensor ultrasonico  que nos permitirá captar objetos a una altura de 5 a 8 cm
En esta segunda entrega  el objetivo sera la sincronizacion de componentes en si el principal captar obstáculos en una altura de 2 cm  a + de 10 cm y su distancia para evadir los obstáculos es de 50 cm. 

La conexión de este dispositivo se realiza  de la siguiente manera  y su codificación la dejaremos en la parte de abajo 
Codificación y sincronizacion de componentes 

#include 

#include 


#define MOTOR_1_FORWARD 5

#define MOTOR_1_BACK 6

#define MOTOR_2_FORWARD 3

#define MOTOR_2_BACK 4


#define TRIG 12

#define ECHO 11


#define TRIG2 8

#define ECHO2 9

#define OBSTRACLE_DISTANCE2 50.0

#define TURN_DELAY2 200


#define HEAD_SERVO 2


#define OBSTRACLE_DISTANCE 50.0

#define TURN_DELAY 200



#define LOG false


Ultrasonic ultrasonic(TRIG, ECHO);


Ultrasonic ultrasonic2(TRIG2, ECHO2);


Servo headServo;


int servoAngle = 90;

int angleStep = 30;


float distance = 0;

float distance2 = 0;

void setup()

{

  pinMode(MOTOR_1_FORWARD, OUTPUT);

  pinMode(MOTOR_1_BACK,    OUTPUT);

  pinMode(MOTOR_2_FORWARD, OUTPUT);

  pinMode(MOTOR_2_BACK,    OUTPUT);

 

  stopMove();

 

  headServo.attach(HEAD_SERVO);

 

  if(LOG) Serial.begin( 9600 );

}


void loop()

{

 

 updateHeadAngle();

 

  checkDistance();

 checkDistance2();

 moove();

 moove2();

 

  delay(10);

}


void checkDistance()

{

  distance = ultrasonic.Ranging(CM);

  if(LOG) Serial.println(distance);

}


void checkDistance2()

{

  distance2 = ultrasonic2.Ranging(CM);

  if(LOG) Serial.println(distance2);

}

void moove()

{

  if( distance > OBSTRACLE_DISTANCE )

  {

    if(LOG) Serial.println("FORWARD");

   

    goForward();

    delay(TURN_DELAY);

  }

  else

  {

    stopMove();

   

    checkObstracle();

  }

}


void moove2()

{

  if( distance2 > OBSTRACLE_DISTANCE2 )

  {

    if(LOG) Serial.println("FORWARD");

   

    goForward();

    delay(TURN_DELAY);

  }

  else

  {

    stopMove();

   

    checkObstracle2();

  }

}


void checkObstracle()

{

  int obsLeft  = 0;

  int obsRight = 0;

 

  // Count the obstacles from left and right side

  for(servoAngle = 0; servoAngle <= 180; servoAngle += 10)

  {

    headServo.write(servoAngle);

    delay(10);

   

    checkDistance();

    if(distance < OBSTRACLE_DISTANCE && servoAngle < 90) obsLeft++;

    else if(distance < OBSTRACLE_DISTANCE) obsRight++;

  }

 

  if(LOG) Serial.print("TURN");

   

  if(obsLeft && obsRight)

  {

    goBack();

   

    delay(TURN_DELAY * 2);

   

    if(obsLeft < obsRight) goLeft();

    else goRight();

   

    delay(TURN_DELAY);

  }

  else if(obsRight)

  {

    goLeft();

   

    delay(TURN_DELAY);

  }

  else if(obsLeft)

  {

    goRight();

   

    delay(TURN_DELAY);

  }

  else

  {

    goForward();

   

    delay(TURN_DELAY);

  }

}


void checkObstracle2()

{

  int obsLeft  = 0;

  int obsRight = 0;

 

 

 

   

    checkDistance2();

    if(distance2 < OBSTRACLE_DISTANCE2 ) obsLeft++;

    else if(distance2 < OBSTRACLE_DISTANCE2) obsRight++;

 

 

  if(LOG) Serial.print("TURN");

   

  if(obsLeft && obsRight)

  {

    stopMove();

    goBack();

   

   

    delay(1000);

   

    if(obsLeft < obsRight) goLeft();

    else

    stopMove();

    goRight();

   

    delay(1000);

  }

  else if(obsRight)

  {

    stopMove();

    goLeft();

   

    delay(1000);

  }

  else if(obsLeft)

  {

    stopMove();

    goRight();

   

    delay(1000);

  }

  else

  {

    stopMove();

    goForward();

   

    delay(1000);

  }

}


void updateHeadAngle()

{

  headServo.write(servoAngle);

 

  servoAngle += angleStep;

 

  if(servoAngle >= 150)

  {

    servoAngle = 150;

   

    angleStep *= -1;

  }

 

  if(servoAngle <= 30)

  {

    servoAngle = 30;

   

    angleStep *= -1;

  }

}


void goForward()

{

  digitalWrite(MOTOR_1_FORWARD, HIGH);

  digitalWrite(MOTOR_1_BACK,    LOW);

  digitalWrite(MOTOR_2_FORWARD, HIGH);

  digitalWrite(MOTOR_2_BACK,    LOW);

}


void goBack()

{

  digitalWrite(MOTOR_1_FORWARD, LOW);

  digitalWrite(MOTOR_1_BACK,    HIGH);

  digitalWrite(MOTOR_2_FORWARD, LOW);

  digitalWrite(MOTOR_2_BACK,    HIGH);

}


void goLeft()

{

  digitalWrite(MOTOR_1_FORWARD, LOW);

  digitalWrite(MOTOR_1_BACK,    HIGH);

  digitalWrite(MOTOR_2_FORWARD, LOW);

  digitalWrite(MOTOR_2_BACK,    LOW);

}


void goRight()

{

  digitalWrite(MOTOR_1_FORWARD, LOW);

  digitalWrite(MOTOR_1_BACK,    LOW);

  digitalWrite(MOTOR_2_FORWARD, LOW);

  digitalWrite(MOTOR_2_BACK,    HIGH);

}


void stopMove()

{

  digitalWrite(MOTOR_1_FORWARD, LOW);

  digitalWrite(MOTOR_1_BACK,    LOW);

  digitalWrite(MOTOR_2_FORWARD, LOW);

  digitalWrite(MOTOR_2_BACK,    LOW);

}

Sensores y Operadores

En la tercera clase de multimedia se estudia sobre sensores y operadores básicos y la combinación de los mismos así como la comunicación de usuarios con la aplicación.
Objetivo:
Desarrollar e implementar los componentes antes mencionados de tal forma que se pueda explicar de una manera detallada lo que hace cada componente utilizado en los siguientes ejercicios.
Sensores


Este sensor permite establecer una condición como por ejemplo si toca el borde , si toca con el mouse o también si un objeto toca a otro objeto 
En cambio este tipo de sensores permiten interactuar con el usuario es decir permite ingresar texto por teclado y hacer uso del texto dentro de la aplicación 

Operadores
En esta clase utilizamos el operador unir para realizar una concatenar un texto y el sensor respuesta 

Controles
En este ejercicio también cabe recalcar el uso del controlador si entonces mas el sensor tocando que nos permite realizar una condición al momento de trabajar con objetos 
 Eventos
Este tipo de eventos son utilizados para crear comunicación entre objetos como vamos a ver en los siguientes ejercicios estos eventos harán una comunicación sincronizada 



Ejercicios




Dialogo Sobre el Cotopaxi


jueves, 3 de diciembre de 2015

Segunda entrega del prototipo


MATERIALES:
5 servos
2 Sensores ultrasonicos
Material reciclable
Paletas 
Fomix
Cinta


OBJETIVO


Desarrollar y diseñar la segunda entrega de el prototipo basándonos en el trabajo de servos y sensores ultrasonicos que serán la parte fundamental de la segunda entrega

1)Servos : Los servos son sin duda uno de los dispositivos mas útiles para cualquier aficionado a la robótica, ya que nos permiten crear toda clase movimientos de una forma controlada y en arduino hacemos uso de los mismos ya que podemos programarlos de una manera sencilla y acorde a lo que se requiera 



Bueno sin mas que decir en esta segunda entrega realizaremos paso a paso la estructura corporal del robot teniendo en cuenta que en la cabeza tendrá un sensor ultrasonico que nos permitirá detectar objetos a una determinada distancia haciendo así que el robot tome otra acción y gire hacia otro lugar y por otra para se realizara la codificación y sincronización de los brazos.  

Paso_1 Construccion  de brazos con servos: como vemos en la imagen la posicion de los servos tiene que estar en 0° y 180° como posicion inicial.
Paso_2 Conexión  de los brazos al sensor ultrasonico : Como podemos observar en la imagen el sensor ultrasonico va a tomar la posición de mando teniendo en cuenta la distancia de los objetos que encuentre en su camino.
Paso_3 Agrupamiento de la primera entrega con lo realizado en la segunda entrega : En este paso hacemos uso de lo ke realizamos en la primera entrega para añadir lo que hacemos en esta semana.
De esta manera finalizamos con la segunda entrega de el prototipo  cabe mencionar que en la parte inferior les dejamos la codificación de lo planeado para esta semana 
CÓDIGO:
#include <Servo.h>

Servo myservo1;  //declaramos al servo 1 
Servo myservo2; //declaramos al servo 2
Servo myservo3;  //declaramos al servo 3
Servo myservo4; //declaramos al servo 4
int pos = 0;    // variable de posicion de servos
void setup() {
  myservo1.attach(9);  // declaramos el servo en el pin 9
  myservo2.attach(10); // declaramos el servo en el pin 10
  myservo3.attach(11); //declaramos el servo en el pin 11
  myservo4.attach(12); // declaramos el servo en el pin 12
}
void loop () {
  for (pos = 30; pos <= 90; pos += 6) { // Los grados del servo-motor
  
    myservo3.write(pos);           
    delay(15);     
    myservo4.write(pos);              
    delay(15);

    myservo1.write(pos);              
    delay(15);     
    myservo2.write(pos);              
    delay(15);
  }
  for (pos = 100; pos >= 0; pos -= 1) { 
    myservo1.write(pos);              
    delay(15);   
    myservo2.write(pos);             
    delay(15);
    myservo3.write(pos);           
    delay(15);   
    myservo4.write(pos);           
    delay(15);
  }
}

PODCAST



miércoles, 2 de diciembre de 2015

Scratch



Scratch

Scratch es un lenguaje de programación visual, que nos permite crear y diseñar de forma dinámica proyectos enfocados a animaciones,multimedias de aprendizaje ,etc en si permite programar sistemáticamente  desde el principio. Permite investigar, introducirse y jugar con la programación de ordenadores utilizando una interfaces gráficas muy sencilla.


Curso multimedia
Clase_1 Introducción a Scratch: En la primera clase se realiza un introducción a scratch teniendo como objetivo principal dar a conocer como scratch se apega a la programación de una forma sencilla y visual.
Dentro de la introducción se realizo el registro online para obtener una cuenta en scratch en la cual se realizo un ejercicio de prueba así mismo se estudio ejemplos que se encontraron en la pagina oficial de scratch.

Clase_2 Herramientas de scratch y su funcionamiento:En la segunda clase se conoce cada una de las herramientas  de scratch en las cuales tenemos:
    1)Movimiento:Nos permite hacer que el objeto realice movimientos dentro del escenario
     2)Apariencia: Sirve para modificar el objeto ya señalado SEÑALADO.
     3)Sonido: Sirve para darle una proyección de ruido al objeto.
     4)Lápiz: Sirve para borrar un objeto dibujado en un tiempo determinado.
     5)Control: Sirve para darle manejo al objeto.
     6)Sensores: Sirve para tocar todo lo que tiene que ver en el objeto.
     7)Operadores: Sirve para darle habla al objeto.
    8)Variables : Sirve para reiniciar un nuevo personaje


jueves, 26 de noviembre de 2015

Prototipo primera entrega




MATERIALES:
2 LLANTAS CON MOTORES DC.
1 DRIVER HG7881CP
1 ARDUINO MEGA 250
1 BASE DE MADERA
1 CARGA DE 4 PILAS
4 PILAS AA
1 RUEDA GIRATORIA


OBJETIVO


Dar a conocer lo que es el manejo de motores dc , el driver HG7881CP conjuntamente con el arduino mega.Para ello hemos optado por realizar una secuencia de pasos detallando lo que hace cada componente y su respectiva codificacion.

1)Motores DC y Driver HG7881CP


Recordemos que el motor de corriente continua es una máquina que convierte la energía eléctrica en mecánica, provocando un movimiento rotatorio, gracias a la acción que se genera del campo magnético.

Desarrollo:


Primer paso :En la imagen anterior se puede notar como es la conexion de los motores hacia el driver







Segundo paso :Laconexion de el driver hacia el arduino y la carga de pilas



Tercer paso : De las salidas digitales de Arduino he escogido la 2y3 para A-IA y A-IB respectivamente, mientras que para las B-IA y B-IB he seleccionado las 4 y 5



Codigo:





//Declaración de los pines de motores DC


const int llanta_1_a= 2; //Pin 2 conectado a A-IA

const int llanta_1_b= 3; //Pin 3 conectado a A-IB

const int llanta_2_a =5; //Pin 4 conectado a B-IA

const int llanta_2_b =4; //Pin 5 conectado a B-IB

byte velocidad = 255;




void setup() {



pinMode(llanta_1_a, OUTPUT); //Configuracion de los pines como salidas

pinMode(llanta_1_b, OUTPUT);

pinMode(llanta_2_a, OUTPUT);

pinMode(llanta_2_b, OUTPUT);

}


void loop() {





adelante();


delay(1000);


parar();

delay(10000);

}



void adelante()

{

analogWrite(llanta_1_a, 0);

analogWrite(llanta_1_b, velocidad);

analogWrite(llanta_2_a, 0);

analogWrite(llanta_2_b, velocidad);

}


void parar()

{

analogWrite(llanta_1_a,0);

analogWrite(llanta_1_b,0);

analogWrite(llanta_2_a,0);

analogWrite(llanta_2_b,0);

}

Conclucion:
Se a realizado la culminacion de la primera entrega en la cual tuvimos algunos problemas a la hora de realizar metodos ,pero con un poco de investigacion pudimos cubrir con las metas propuestas .

jueves, 19 de noviembre de 2015

Gils Carbó creó la Unidad Fiscal Especializada en Ciber-delincuencia

La procuradora general de la Nación, Alejandra Gils Carbó, creó la Unidad Fiscal Especializada en Ciber-delincuencia (UFECI), que estará a cargo del fiscal Horacio Azzolín. Este último ya había sido designado en el 2014 como punto focal en temas relativos a la ciberdelincuencia. La titular del MPF precisó que la unidad “podrá entender en casos de ilícitos constituidos por ataques a sistemas informáticos -por ejemplo, casos de accesos ilegítimos o de daños a sistemas informáticos-, o cuando el medio comisivo principal o accesorio de una conducta delictiva incluya la utilización de sistemas informáticos, con especial atención en el ámbito de la criminalidad organizada -trata de personas, tráfico de estupefacientes, lavado de dinero y terrorismo, etcétera-”.
Además, agregó, “estará habilitada a intervenir en todo proceso en el que sea necesario realizar investigaciones en entornos digitales, aun cuando no hayan sido cometidos contra o mediante un sistema informático. Así podría ocurrir, por ejemplo, en supuestos de localización de imputados a través de Internet”.
De esta manera, la unidad a cargo de Azzolín podrá, entre otras cosas, i) intervenir en los casos de su competencia y asistir a los/as magistrados/as del Ministerio Público Fiscal de la Nación que así se lo requieran; ii) recibir denuncias y realizar investigaciones preliminares y genéricas; iii) actuar como nexo entre la Procuración General de la Nación, los magistrados y magistradas de este Ministerio Público Fiscal y los diferentes actores e instituciones nacionales e internacionales con incidencia en cuestiones vinculadas a la temática; iv) articular con las procuradurías, unidades fiscales y demás áreas de la Procuración General, a los efectos de la implementación de estrategias eficaces para el abordaje de la ciber-delicuencia; v) interactuar, en particular, con la Dirección General de Investigaciones Fiscales y Apoyo Tecnológico a la Investigación Penal (DATIP), a los fines del adecuado asesoramiento de los/as fiscales sobre los recursos tecnológicos y herramientas de apoyo técnico, laboratorios, métodos de investigación, obtención, análisis y preservación de la prueba, disponibles en el país; vi) desarrollar estudios acerca de las reformas reglamentarias y legislativas necesarias, y vii) elaborar informes y diagnósticos sobre esta clase especial de criminalidad.
fuente:http://www.fiscales.gob.ar/procuracion-general/gils-carbo-creo-la-unidad-fiscal-especializada-en-ciber-delincuencia/

jueves, 5 de noviembre de 2015

Cómo se podría comprometer la salud desde un buscador de Internet

Cómo se podría comprometer la salud desde un buscador de Internet

En el marco de la 11° edición de ekoparty, los costarricenses Bertin Bervis Bonilla y James Jara desarrollaron su charla llamada “SSL Certificate Massive Analysis… and Medical Applications Fingerprinting”. En su exposición, ambos investigadores demostraron cómo funciona un buscador de Internet de las Cosas que desarrollaron, llamado NetDB – The Network Database Project, el cual les permitió encontrar información relacionada a dispositivos médicos.
En algunas otras ocasiones hemos escrito acerca de Google hacking, pero en esta ocasión profundizaremos sobre un tema relacionado, basándonos en dos principios vinculados: la evolución de Internet de las Cosas y de la Industria 4.0. Analizando el panorama de la seguridad informática es lógico observar que día a día abre más su abanico de opciones en lo que refiere a vectores de ataque, y en este caso veremos cómo los investigadores mediante su herramienta detectan a múltiples dispositivos de diversas industrias.
En la exposición, demostraron de qué manera funciona su buscador NetDB:
El algoritmo que funciona como robot de búsqueda monitorea todo Internet aleatoriamente las 24 horas del día, basándose en las respuestas de TCP/UDP/SNMP. Implementado en unos 50 puertos, consulta cada IP pública de todos los sistemas autónomos del mundo, indexando banners de cada respuesta, como por ejemplo las cabeceras HTTP, los banners de puertos de Telnet y SSH.
Al analizar la huella digital y el certificado correspondiente, se vuelca información como nombres de empresas, dominios y países a una base de datos del tipo Big Data.

Más de 18 millones de resultados de todo el mundo están presentes en este buscador, y se pueden consultar por puertos o palabras claves. De este modo, se identifican los distintos dispositivos como dispensadores de combustible, por ejemplo, que normalmente están relacionados a determinados puertos o servicios.
Como podemos observar en la siguiente imagen, estos dispositivos permiten conectarse sin mayores problemas mostrando los niveles de combustible disponibles mediante una simple conexión vía Telnet.

De este modo, la charla se enfocó en lo sencillo que es identificar dispositivos y aplicacionesmédicas consultando la base de datos en la información contenida de los certificados SSL de todo el mundo. Dentro los dispositivos encontrados, los investigadores profundizaron sobre algunos puntuales como estetoscopios, PACS servers o IMPAX servers, entre otros.
Buscando la cadena “medical”, “IMPAX,” o “PACs” en la información del sistema autónomo o dentro de los certificados, el buscador devuelve una cantidad de IPs o servidores con dichos servicios expuestos a Internet. En muchos casos estas aplicaciones poseen servicios o usuarios por defecto que no han sido deshabilitados, incrementando aún más el riesgo de una intrusión.

De este modo, los investigadores llegaron a mostrar algunas plataformas que se encontraban públicas con usuarios por defecto y mostrando alguna información guardada en el interior de los servidores.

Como conclusión, debemos destacar que debido a la potencia de estos buscadores es posibledetectar dispositivos utilizados en diversas instituciones de salud, dejando expuestos resultados de análisis médicos e inclusive historias clínicas en Internet – con la única protección de un usuario y una contraseña en un sitio web. El daño potencial de una modificación de esta información podría ser catastrófico, tanto para la vida del paciente como para la reputación de la institución.
NetDB no solo apunta a dispositivos médicos, sino que también posee información sobre cámaras de seguridad, impresoras, turbinas eólicas, detectores sísmicos y otros equipos. Sin embargo, los investigadores se enfocaron en los equipos médicos para crear un poco de conciencia sobre la importancia de protegerlos en la infraestructura pública de Internet.
Si bien muchas veces la seguridad se confronta cara a cara con la funcionabilidad, los administradores de seguridad deberán ser conscientes del peligro que se corre al perder el control de esta clase de información crítica contenida en servidores. El impacto va más allá de la pérdida de información que podría ser recuperada desde una copia de seguridad; termina poniendo en riesgo la integridad física de las personas, por lo que debe ser resguardada con diversas capas de seguridad.
Utilizando VPNs, IDS, WAFs, Firewalls y distintos tipos de segundos factores de autentificación, se logrará incrementar los niveles de seguridad sin perder ninguna funcionalidad de los dispositivos, permitiendo a los profesionales de la industria de la salud seguir conectándose de forma remota pero más segura.

 

Fase de desarrollo de codigo y trabajo con materiales


Control de Servos:
Dentro de el control de servos tenemos 4 partes de el prototipo que necesitaran el uso de ellos para ello se definira las prates del prototipo segun el desarrolo.

Servo 1:
El primer servo trabajara en el movimiento de la cabeza este girara dependiendo la distancia en la que se encuentre el robot  para ello se utiliza el siguient codigo.




void updateHeadAngle()
{
  headServo.write(servoAngle); 
  servoAngle += angleStep;
  if(servoAngle >= 150)
  {
    servoAngle = 150;
    angleStep *= -1;
  }
 if(servoAngle <= 30)
  {
    servoAngle = 30; 
    angleStep *= -1;
  }
}
Servos 2 y3 : 
Trabajaran en el movimiento de los brazos de el robot para ello utilizamos el iguiente codigo.
void brazos() {
  for (pos = 0; pos <= 90; pos += 6) {
      myservo1.write(pos);           
    delay(15);     
    myservo2.write(pos);            
    delay(15);
  }
  for (pos = 90
  ; pos >= 0; pos -= 1) {
    myservo1.write(pos);            
    delay(15);   
    myservo2.write(pos);            
    delay(15);
  }
}







Control de sensor ultrasonico :
El sensor ultrasonico nos permitira determinar las distancias para que asi el roobot pueda obstaculizar objetos ke se encuentren frente a el.
Sensor Ultrasonico:
En este caso se utilizara el sensor ultrasonico para en la cabeza de el robot el mismo que trabajara con el siguiente codigo.
void checkDistance()
{
  distance = ultrasonic.Ranging(CM);
  if(LOG) Serial.println(distance);
}

void moove()
{
  if( distance > OBSTRACLE_DISTANCE )
  {
    if(LOG) Serial.println("FORWARD");
     caminar();
    delay(TURN_DELAY);
  }
  else
  {
    parar();
    
    checkobstaculo();
  }
}

martes, 20 de octubre de 2015

INTRODUCIÓN










El presente reto será construir un robot con arduino para ello empezaremos hablando de lo que es arduino en sí y como nos ayudara en nuestro proyecto el mismo que tiene como secuencia 4 fases de desarrollo.
Fase 1 Investigación.
Fase 2 levantamiento de investigación
Fase 3 codificación de el proyecto 
Fase  4 construcción de el prototipo 
Arduino no es más que una plataforma de hadware libre que contiene un micro-controlador y un entorno de desarrollo para facilitar el uso de la electrónica en diferentes tipos de proyectos.
En si arduino cuanta con varias versiones y modelos en si mencionaremos las más conocidas como son Arduino uno, Arduino Mega, Arduino Nano, Arduino Leonardo entre otros los cuales están diseñados para diferentes usos y que por ende brindan más beneficios al momento de construir un proyecto.
 Bien sin más que recalcar arduino será de mucha ayuda en mi proyecto a realizar tanto en el hadware como en el de software ya que nos permitirá manipularlo de acuerdo a nuestras necesidades.
En el prototipo a realizar se construirá un robot con complementos tales como servos, motores, sensores y controles de mando.

Objetivo:
Diseñar y construir un robot controlado por medio de un control remoto con diferentes acciones como la de medir distancias. y ser un dispositivo re programable en sí.
Los materiales que se utilizaran son:
1.- Arduino Mega
2.- Motores CC
2.- sensores ultrasonido
1.- Base de lámina de metal
1.- IR Receive Module
6.- Mini servo SG-90 9g
     Funciona con un voltaje de 3.5-8.4 v
7.- Leds RGB
Estos leds RGB son, en realidad, como si hubiéramos metido tres leds en una misma cápsula, uno rojo (red), otro verde (Green) y otro azul (blue). Poseen 4 patillas, pudiendo tener 3 ánodos para los tres colores (rojo, azul y verde) y un cátodo común, o bien, 3 cátodos para cada color y un ánodo común, usaremos los primeros. Combinando los tres colores (adicción), en sus diferentes luminosidades, podemos obtener una gran gama de colores. Para variar la luminosidad hay que jugar con la intensidad, pero eso lo veremos en la siguiente práctica. De momento nos conformaremos con los tres colores primarios y sus combinaciones.
7.- RESISTENCIAS DE 330 OHM (o también 21 de 2202ohm)
2.- PROTOBOARDS
1.- HG7881CP
     Es un driver que nos permite controlar el funcionamiento de los motores cc los mismos que servirán como base en nuestro          prototipo, su voltaje es de 2.5-12V
1.- BUZZER
     Es un dispositivo de audio de voz, se alimenta con GND y señal
60.- Cables machos
10.- cales hembras

Con los componentes antes mencionados se realizará el proyecto de robot con arduino el mismo que nos servirá para cumplir con el reto antes propuesto.