This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

sábado, 22 de agosto de 2015

Introducción a la Robótica con Minibloq


  • MINIBLOQ es un entorno de programación gráfica sencillo, ideal para comenzar a programar.
  • Es fácil de instalar y ha sido especialmente diseñado pensando para quienes están dando sus primeros pasos en programación, computación física y Robótica.
  • Es utilizado además en numerosas instituciones educativas, sobre todo con niños. 
  • MiniBloq es gratuito y de código abierto.




Descripción del robot virtual
  • En esta sección de la pantalla se describe la tecnología que se está utilizando. 
  • Al seleccionar la opción miniSim en el menú desplegable “Hardware” se muestra la imagen del robot virtual con el que se trabaja.
Órdenes básicas de miniSim
  • Minibloq utiliza el sistema Drag and Drop (arrastrar y soltar). 
  • Facilita realizar complejos programas sin necesidad de escribir el código que ejecutará el robot.
  • Órdenes básicas: movimiento (avance, retroceso y giro) y dibujo.

Control de oscuridad con ARDUINO y ARDUBLOCK


Ardublock es una utilidad gráfica cuya misión es generar código compatible con el entorno IDE Arduino. 

Sus ventajas son:
  • Es una herramienta gratuita.
  • Facilita la creación de sketch para Arduino.
  • Genera código directamente.
  • Ofrece una colección de bloques funcionales muy básicos que facilitan la comprensión de la programación.
  • Esta muy indicado para aplicarlo en niveles educativos básicos en donde el usuario no necesita tener conocimientos de programación.
  • Es una aplicación muy sencilla de instalar.
  • Es un “plugin” que el IDE Arduino reconoce e instala como herramienta.

Se encenderá un diodo LED conectado en el pin 13 (salida) de la placa Arduino UNO cuando no detecte luz, y deberá apagarse cuando la LDR detecte luz, de manera similar a lo que ocurre con el alumbrado público que se activa cuando oscurece y se desactiva cuando amanece. 

Entonces, cumple la misma función que los esquemas anteriores aunque utilizando tecnología programable (hardware Arduino UNO y programación gráfica con Ardublock) en este caso.

Observe el divisor de tensión conformado por el LDR y la resistencia de 10 KOhm.


Detector de oscuridad basado en Arduino UNO y programación gráfica (Ardublock):


Se conectará el sensor de luz conectándolo a la entrada analógica 3 (A3) y se tomará un valor umbral de 300 de modo que, cuando el nivel de iluminación sea menor a este valor, se activará el LED conectado en la salida 13 simulando la iluminación automática solicitada.Cuando, en caso contrario, se tenga suficiente iluminación, el LED estará apagado.   




Central meteorológica experimental con ARDUINO y Bluetooth


Listado de componentes
  • Sensor DHT22.
  • Sensor BMP085.
  • Módulo BT RN-42.
  • LCD.
  • Arduino UNO.
  • Resistencias 10 KΩ (3).
  • Pulsadores NA (2).
  • LED.
  • Cables. 



Código fuente

// “Central meteorológica experimental”

// Programa

// A. Incluir bibliotecas (libraries)
 
#include ; // Presentar datos por LCD
#include ; // Pantalla LCD
#include ; // Comunicación I2C
#include ; // Sensor BMP085
#include ; // Sensor DHT22
#include ; // Comunicación Bluetooth RN-42  

// B. Definir variables
 
// Pines para la pantalla LCD:
#define BACKLIGHT_PIN     3
#define En_pin  2
#define Rw_pin  1
#define Rs_pin  0
#define D4_pin  4
#define D5_pin  5
#define D6_pin  6
#define D7_pin  7
// Variables para la librería del sensor DHT
#define DHTTYPE DHT22
#define DHTPIN A0  
// Definir pines:
const int led = 13;
const int pulsadorA = 2;
const int pulsadorB = 3;
// Variables de programa
int contador=0;  
float temperature;
float pressure;
float pressure2;  
float h;
float t;
float tmedia;
// Variables de librería:
LiquidCrystal_I2C lcd(0x27,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
Adafruit_BMP085 bmp;
DHT dht(DHTPIN, DHTTYPE); 
SoftwareSerial SerialBT(10,11); // (RX, TX) en Arduino

// C. Bucle inicial (setup) 
 
 void setup() {  
  pinMode(led, OUTPUT); // Se define el LED como una salida
  pinMode(pulsadorA, INPUT); // Definir pulsador 1 como una entrada
  pinMode(pulsadorB, INPUT); // Definir pulsador 2 como una entrada  
  Serial.begin(9600);
  SerialBT.begin(9600);  
  dht.begin();
  bmp.begin();  
  if (!bmp.begin()) {
    Serial.println("Could not find a valid BMP085 sensor, check wiring!");
    while (1) {}
  }  
  lcd.begin(16,2);
  lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
  lcd.setBacklight(LOW);
  lcd.home();

// D. Núcleo del programa

 void loop(){     
  if(digitalRead(pulsadorA) == HIGH){
  digitalWrite(led, HIGH); // Led encendido
  lcd.display();
  lcd.setBacklight(HIGH);
  contador=1;
  }  
  if(digitalRead(pulsadorB) == HIGH){
    digitalWrite(led, LOW); // Led encendido
    Serial.println("Apagado"); // Se registra la pulsación
    contador=0;
    lcd.noDisplay();
    lcd.setBacklight(LOW);
  }  
  if(contador == 1){
  t = dht.readTemperature();
  h = dht.readHumidity();  
  temperature = bmp.readTemperature();
  pressure = bmp.readPressure();       
  tmedia= (t+temperature)/2;  
  pressure2= (pressure/100);      
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(tmedia);
  lcd.print((char)223);
  lcd.print("C   ");
  lcd.print(h);
  lcd.print("%");  
  lcd.setCursor(0,1);
  lcd.print(pressure2);
  lcd.print("mbar");
  delay(3000);  
    Serial.print("Humidity-DHT = "); 
    Serial.println(h);
    Serial.print("Temperature-DHT = "); 
    Serial.print(t);
    Serial.print("[");
    Serial.write(186);
    Serial.println("C]");  
    Serial.print("Temperature-BMP = ");
    Serial.print(temperature);
    Serial.print("[");
    Serial.write(186);
    Serial.println("C]");     
    Serial.print("Pressure = ");
    Serial.print(pressure2);
    Serial.println("[mbares]");
    SerialBT.println(" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ");
    SerialBT.print("T=      ");
    SerialBT.print(tmedia);
    SerialBT.println("  [Grados Celsius] ");     
    SerialBT.print("H=     ");
    SerialBT.print(h);
    SerialBT.println("  [% de Humedad Relativa]");     
    SerialBT.print("P= ");
    SerialBT.print(pressure2);
    SerialBT.println("  [milibares]");     
   // Determinar la altitud considerando la presión barométrica estándar
    // Presión de 1013.25 millibar = 101325 Pascal
    Serial.print("Altitude = ");
    Serial.print(bmp.readAltitude());
    Serial.println(" meters");     
    Serial.print("Real altitude = ");
    Serial.print(bmp.readAltitude(101300));
    Serial.println(" meters");     
  }
}

Algunos comentarios
  • Se presenta un proyecto de “Central Meteorológica” experimental capaz de medir temperatura, humedad relativa, presión atmosférica y altura con presentación local de resultados e interfaz de comunicación Bluetooth. Se deja para una etapa intermedia el desarrollo de la interface Android, el sketch correspondiente en Arduino, el Datalogger y el anexado de otros sensores: velocidad y dirección del viento y luminosidad. Para una etapa final, desarrollo de la interfaz de comunicación Ethernet.
  • Sensor DHT22: temperatura (-40°C a +80°C, +-0.5% precisión) y humedad relativa (0% a 99%, precisión +-2% RH a 25°C). Tiempo de sensado: 1 vez cada 2 segundos. 
  • Sensor BMP085: temperatura (-40°C a +85°C), presión barométrica (300 hPa a 1100 hPa, 0.03 hPa resolución / 0.25 m) y altitud (9000 m sobre el nivel del mar a -500m).
  • Interfaz de comunicación Bluetooth: módulo BT Clase 2 “RN-42”.
  • LCD: bus de dos hilos I2C (Inter-Integrated Circuit) para la presentación local de la información. Utiliza solo dos líneas bidireccionales de bus: reloj (SCK, AD5 en la placa UNO) y datos (SDA, AD4 en la placa UNO).
  • Cada uno de los dos pulsadores está conectado en montaje “pull down” empleando resistencias de 10 KΩ (valor “normal” en montajes pull up y pull down). Así, se establece un estado lógico bajo a la entrada del circuito lógico cuando dicho circuito está en reposo y alto en el caso contrario evitando falsos estados producidos por ruido eléctrico cuando se deja una entrada con un valor indeterminado.


Secuencia de LED con ARDUINO

Deberá mostrar secuencialmente (mediante 8 LED) el código binario natural de 8 bits con una secuencia de 500mS. Se deberá utilizar un bucle for() para aumentar el número, la función shiftOut() y un registro de desplazamiento. Además, indicara en el monitor serial, el numero decimal que está contando, siempre escribiendo en línea nueva.


/*Uso del registro de desplazamiento*/
//Pin 8 Arduino conectado al Pin 12 del 74HC595 (Latch)
int latchPin = 8;
//Pin 12 Arduino conectado al Pin 11 del 74HC595 (Clock)
int clockPin = 12;
//Pin 11 Arduino conectado al Pin 14 del 74HC595 (Data)
int dataPin = 11;
void setup() {
//configurar pines como salidas (output)
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop() {
//contar desde 0 a 255
for (int i = 0; i < 256; i++) {
//poner latchPin en bajo para permitir el flujo de datos
digitalWrite(latchPin, LOW);
shiftOut(i);
//poner latchPin en alto para cerrar el registro y enviar datos
digitalWrite(latchPin, HIGH);
delay(500);
}
}
void shiftOut(byte dataOut) {
boolean pinState;
//registro de desplazamiento listo para enviar datos
digitalWrite(dataPin, LOW);
digitalWrite(clockPin, LOW);
for (int i=0; i<=7; i++) {
//set clockPin en LOW previo enviar un bit
digitalWrite(clockPin, LOW);
//si el valor de DataOut y (AND lógico) en bitmask es verdadero, poner pinState en 1 (HIGH)
if ( dataOut & (1<
pinState = HIGH;
}
else {
pinState = LOW;
}
//poner dataPin en HIGH o en LOW dependiendo de pinState
digitalWrite(dataPin, pinState);
digitalWrite(clockPin, HIGH);
}
//detener el desplazamiento de datos
digitalWrite(clockPin, LOW);
}

Obtener una lectura (analógica) desde un potenciómetro que activará de 1 a 5 LED (función map()).



/*Código IDE Arduino*/

// Definición de constantes:
const int analogPin = A0;   // pin de conexión del potenciómetro
const int ledCount = 5;    // por 5 LED conectados
int ledPins[] = {2, 3, 4, 5, 6};   // array conteniendo números de pines de conexión de los LED
void setup() {
//lazo con el número de pin y envío a la salida del array:
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
pinMode(ledPins[thisLed], OUTPUT); 
  }
}
void loop() {
  //lectura del potenciómetro:
  int sensorReading = analogRead(analogPin);
  //convertir el resultado a un rango entre 0 y el número de LED (5):
  int ledLevel = map(sensorReading, 0, 1023, 0, ledCount);
  
// lazo sobre el array de LED:
  for (int thisLed = 0; thisLed < ledCount; thisLed++) {
    //si el índice de elementos del array es menor que ledLevel, encender este pin:
    if (thisLed < ledLevel) {
      digitalWrite(ledPins[thisLed], HIGH);
    } 
    //apagar todos los pines más altos que ledLevel:
    else {
      digitalWrite(ledPins[thisLed], LOW); 
    }
  }
}

jueves, 19 de marzo de 2015

Nuevo curso "Aprendiendo Electrónica con Arduino"


Taller - Aprendiendo Electrónica con Arduino

Duración del curso (carga horaria): 40 hs
Frecuencia: 1 día por semana
Carga horaria por clase: 3 hs
Objetivos del curso: 
Que el alumno pueda conocer e identificar los componentes eléctricos y electrónicos dentro de un circuito, diseñar y calcular circuitos electrónicos básicos, utilizar instrumentación de laboratorio, utilizar software CAD, reconocer los componentes y utilizar la plataforma de desarrollo Arduino.
Destinatarios del curso: 
Profesionales. Docentes. Estudiantes de enseñanza media, superior y universitaria. Personal de Empresas (admite Programa Crédito Fiscal para Capacitación SEPYME).
Requisitos del curso: 
Sin requisitos previos. El curso está abierto a participantes sin conocimiento previos en programación y/o electrónica analógica y digital o con conocimientos básicos de las mismas. Cada participante deberá disponer de una notebook con puerto USB y sistema operativo Windows.
Contenidos:
  • Conceptos básicos.
  • Resistencia.
  • Capacidad.
  • Diodos.
  • Transistores.
  • Fuentes de alimentación.
  • Instrumentación de laboratorio.
  • Software CAD.
  • Hardware y software de la plataforma de desarrollo Arduino.
  • Proyecto integrador.
Material que se incluye: 
No es necesario contar con los componentes, placa Arduino y otros materiales para realizar el curso taller. En cada clase, el docente facilitará los materiales necesarios para realizar las prácticas propuestas. El Instituto proveerá a los alumnos del programa y material de estudio en formato digital. Cada participante deberá disponer de una notebook con puerto USB y sistema operativo Windows.

Nuevo curso "Desarrollo de aplicaciones con Arduino"


Taller - Desarrollo de aplicaciones con Arduino

Duración del curso (carga horaria): 40 hs
Frecuencia: 1 día por semana
Carga horaria por clase: 3 hs

Objetivos del curso:
Finalizado el curso, los participantes serán capaces de identificar y aplicar los conceptos fundamentales de electricidad, electrónica y programación aplicados a Arduino, identificar los componentes de la placa Arduino UNO y la utilización de esta, conocer las distintas formas de programación y su realización, diseñar, montar y programar circuitos con sensores y actuadores, montar circuitos en protoboard y simularlos en la computadora.

Destinatarios del curso:
Profesionales. Docentes. Estudiantes de enseñanza media, superior y universitaria. Personal de Empresas (admite Programa Crédito Fiscal para Capacitación SEPYME)
Requisitos del curso: Para facilitar el aprendizaje del alumno es conveniente que tenga conocimientos previos de las leyes de Ohm y Kirchhoff, uso básico de instrumentos de medición, resistencias, LED, sensores y actuadores básicos, protoboard y operación de PC a nivel usuario. Es recomendable realizar previamente el curso “Aprendamos electrónica con Arduino”. Cada participante deberá traer un notebook con puerto USB disponible y sistema operativo Windows.

Contenidos:
Electricidad y electrónica
Introducción al entorno Arduino
Hardware de Arduino UNO
Programación de Arduino
Introducción a las comunicaciones
Conectando Arduino con el mundo físico. Proyecto integrador

Material que se incluye:
No es necesario contar con los componentes, placa Arduino y otros materiales para realizar el curso taller. En cada clase, el docente facilitará los materiales necesarios para realizar las prácticas propuestas. El Instituto proveerá a los alumnos del programa y material de estudio en formato digital. Cada participante deberá disponer de una notebook con puerto USB y sistema operativo Windows.

Nuevo curso "Robótica con Arduino"


Taller - Robótica con Arduino

Duración del curso (carga horaria): 40 hs
Frecuencia: 1 día por semana
Carga horaria por clase: 3 hs

Objetivos del curso:
Finalizado el curso, los participantes serán capaces de identificar los conceptos fundamentales de mecánica, electrónica y programación para su aplicación en robótica, conocer y comprender el funcionamiento de los principales componentes de un sistema robótico como sensores, actuadores, efectores y sistema de control de mecanismos móviles, diseñar la construcción y programación de un sistema robótico basado en la utilización de sensores y actuadores que interactúen con el mundo real.

Destinatarios del curso:
Profesionales. Docentes. Estudiantes de enseñanza media, superior y universitaria. Personal de Empresas (admite Programa Crédito Fiscal para Capacitación SEPYME)

Requisitos del curso:

Contenidos:
Introducción a la robótica
Electricidad y electrónica
Introducción a la plataforma Arduino
Bases de Mecatrónica
Sensores y actuadores utilizados en robótica
Proyecto integrador

Material que se incluye:
No es necesario contar con los componentes, placa Arduino y otros materiales para realizar el curso taller. En cada clase, el docente facilitará los materiales necesarios para realizar las prácticas propuestas. El Instituto proveerá a los alumnos del programa y material de estudio en formato digital. Cada participante deberá disponer de una notebook con puerto USB y sistema operativo Windows.