Arduino 1.0.1 disponible

Arduino 1.0.1 disponible

Arduino 1.0.1 ya está disponible!!

Podéis descargarlo desde la sección de software en la página oficial. Esta versión incluye una gran cantidad de correcciones de errores y nuevas características (ver las notas de la versión para más detalles).

Las mayor novedad es la compatibilidad con la nueva Arduino Leonardo y la traducción del entorno de desarrollo Arduino a varios idiomas.

En  breves se hará un artículo sobre Leonardo, por ahora podéis ver su guía de iniciación y su página de características.

Las traducciones han sido el trabajo de muchas personas, especialmente Shigeru Kanemoto (que internacionalizó el software y lo tradujo al japonés) y David Cuartielles del equipo Arduino (quien coordinó el proceso de traducción).

Los idiomas disponibles en Arduino 1.0.1 son: Árabe, Aragonés, Catalán, Chino simplificado, Chino tradicional, Danés, Holandés, Inglés, Estonio, Filipino, Francés, Gallego, Alemán, Griego, Hindú, Húngaro, Indonesio, Italiano, Japonés, Coreano, Letón, Lituano, Marathi, Noruego, Persa, Polaco, Portugués – Brasil, Portugués – Portugal, Rumano, Ruso, Español y Tamil. (Para más información o para ayudar con las traducciones, vea esta página en el playground.)

Gracias a todas las personas que han contribuido a la traducción (ver créditos de traducción).

Por último, de nuevo os recuerdo que podéis descargar Arduino 1.0.1 en la página de software.

A disfrutar!!

Robot lerro jarraitzaileentzako pistaren eraikuntza

Robot lerro jarraitzaileentzako pistaren eraikuntza

Aurreko batean komentatu dugun bezela larunbat honetan goizean Proiekton ospatuko dugu eta horrekin batera DB bots lerro jarraitzaile lasterketa egingo dugu. Hori dela eta robot lasterkarientzako pista egiten aritu gara eta hau nola egin daitekeen azalduko dugu. Erabili dugun materiala:

 

  • 2×4 metroko Sintasola
  • 2,8 x 4,8 metroko oihala
  • Zinta isolatzaile beltza
  • Zinta isolatzaile gorria
  • 3 metro neurtzeko neurgailua
  • Arkatza
  • 10mm-ko diametroko PVC hodi bat
  • Pegatina txuriak
Eraiki behar genuen pista CAD programa batean marraztea komeni da, horretarako LibreCAD software irekia erabili dugu, neurriak adieraziz.
.

.

Pistaren neurriak eta itxura finkatu ondoren materiala bildu behar da. Sintasolaren alde txurian (ez da guztiz txuria baina gertu dago) zinta isolatzailea ipiniko dugu. Sintasol desberdinak ikusten aritu ondoren onena Cepinsan topatu dut. Horretarako sintasolak zenbait ezaugarri edukitzea komenigarria da:
  • Alde txuria leuna izatea, ahalik eta zimurdura gutxienekin
  • Alde txuria lodia izan behar da, bestela jaso ondoren ezingo da berriro guztiz zabaldu
  • Dedetan ez jaramon egin sintasol ereduei, zuzenean originala begiratu, fabrikatzaileak alde txuria alda dezake eta ereduetan zaharra mantendu.
Materiala bildu ondoren montatzea baino ez da geratzen. Horretarko komeni da oihala lurrera botatzea eta honen gainean sintasola uztea. Era honetan sintasola ez da zikinduko eta biribilduz jasoko dugunez ez da alde txuria zikinduko. Pausu hau oso garrantzitsua da behin baino gehiagotan pista erabiltzeko asmoa badago.
Ondoren sintasolaren gainean egongo diren zirkunferentzien erdiguneak topatu behar dira. Erdigunea adierazteko pegatina txuri bat jarri da eta bertan erdigunea arkatzez marraztu. Pauso hau mantso egitea komeni da bestela pistaren neurriak ez dira ondo aterako.
.
.
Erdiguneak ditugula zirkunferentzien gainazala arkatzez eta erreglaz marraztu ditugu. Konpas handi bat edukiko bagenu azkarrago egingo genuke baina gure kasuan dena eskuz egin dugu. Zalantzarik gabe hau izan da lanik gogorrena.
Gero azken pausua bakarrik geratzen da zinta isolatzailea jartzearena. Hau ondo gera dadin, zinta isolatzailea tentsiorik gabe jarri behar da, tiraka jarri ez gero denbora bat pasa ondoren desitsazten hasiko da. Puntu hau kritikoa da eta arazo handia eduki dugu nola jarri ulertu arte.
.
.
Dena montatuta dagoela PVC hodia ardatz modura erabilita biribildu daiteke gordetzeko. Teknika hau izan da onena pistak egin eta leku txiki batean gorde ahal izateko. Argibide honekin ea lasterkarien txapelketetan parte hartzen edo antolatzen norbait animatzen den.
MOTORE BATEN ABIADURA NEURTU

MOTORE BATEN ABIADURA NEURTU

 

 

 

Proiektu honek egiten duena da motore baten bidez CD batek zenbat buelta emango dituen minuturo kalkulatzen ditu. Horretarako, potentziometro batekin motorearen abiadura kontrolatuko dugu. Motorearen goikaldean CD bat jarri dugu txuri kolorekoa eta franja beltz batekin eta CNY sentsoreak detektatuko du kolore bakoitza.

 

 

Beltz koloretik pasatzen den bakoitzean programak bira bat eman duela bezala egingo du eta hori jakinda kalkulatuko du zenbat erreboluzio egingo dituen minuturo CDak. Proteus programarekin simulatu dugu, horretarako Proteus 7.7 erabili dugu Arduino UNOrekin konpatiblea izateko. Hona hemen argazkia Proteusen simulatuta:

.Klasean egin diseinatu eta montatu dugu. Ea zer deritzozue!

.

Horretarako Arduino UNO erabili dugu bere Sketch programarekin. Hona hemen Sketch-a:

float CNY=0;
unsigned long T,T2,DENB;
float B,Z;
float outputValue=0;
float x;
float RPM;
void setup() 
{
  pinMode(A0, INPUT);
  Serial.begin(9600); 
  CNY=analogRead(A0);  
  Serial.println(" maila  ");
  Serial.println(CNY, DEC);
  Serial.println("\t baliokoa da. ");    
    T=T2; 
    B=CNY>400;  
    Z=CNY<400;
    while(CNY<400)
    {
      CNY=analogRead(A0);
    }
    while(CNY>400)
    {
      CNY=analogRead(A0);
    } 
      T2=millis(); 
      DENB=T2-T;
      RPM=60000/(DENB);
      CNY=0;
      Serial.println(RPM);
      Serial.println("dira reboluzioak minutuko");
}
void loop() { 
    T=T2; 
    B=CNY>400;  
    Z=CNY<400;
    while(CNY<400)
    {
      CNY=analogRead(A0);    
    }
    while(CNY>400)
    {
      CNY=analogRead(A0);
    } 
      T2=millis(); 
      DENB=T2-T;
      RPM=60000/(DENB);
      CNY=0;
      Serial.println(RPM);
      Serial.println("dira reboluzioak minutuko");
}

Control de motor dc con Arduino

Control de motor dc con Arduino

En la pequeña robótica los motores que más se suelen usar son los de corriente continua (dc). Entender el control de estos motores es la base para poder programarlos. Por ahora no vamos a poner el sketch, simplemente vamos a explicar como controlar un motor dc y a nada que se sepa algo de programación con Arduino el programa debería de salir relativamente fácil.

.

.

Para controlar un motor de corriente continua hay que usar un puente H. Esto se puede construir pero como puede dar mucho trabajo por lo que en pequeña robótica se suele usar modelos que están en circuitos integrados. El nombre viene dado porque su arquitectura se asemeja a la letra H como se puede ver en la imagen.

.

.

Un puente H se construye con 4 interruptores (mecánicos o mediante transistores). Cuando los interruptores S1 y S4 (ver primera figura) están cerrados (y S2 y S3 abiertos) se aplica una tensión positiva en el motor, haciéndolo girar en un sentido. Abriendo los interruptores S1 y S4 (y cerrando S2 y S3), el voltaje se invierte, permitiendo el giro en sentido inverso del motor.

Con la nomenclatura que estamos usando, los interruptores S1 y S2 nunca podrán estar cerrados al mismo tiempo, porque esto cortocircuitaría la fuente de tensión. Lo mismo sucede con S3 y S4.

En vez de interruptores se suelen usar transistores y mediante la configuración en H se puede hacer que el motor dc gire en ambos sentidos.

.

.

 

Hay diferentes circuitos integrados con la arquitectura de un puente H, los más sencillo son los L293D y SN754410. Aunque es recomendable mirar el datasheet suelen dar unos 1200mA y mediante cada circuito integrado se puede controlar 2 motores (600mA cada uno).

En la imagen se puede ver como los pines de un lado (1, 2, 3, 4, 5, 6 y 7) son para controlar un motor y los pines del otro lado (9, 10, 11, 12, 13, 14 y 15) son para controlar un segundo motor. El pin 8 hay que conectarlo a la fuente de alimentación con la que se alimenta el motor y el pin 16 es la alimentación propia del chip. Recuerda que si se usan más de una fuente de alimentación (pila motor y pila chip) tienen que tener las masas comunes (4, 5, 12 y 13) para que tengan la misma referencia.

.

.

En la tabla de la imagen se pude ver que el control del motor se hace mediante 3 pines (EN, 1A y 2A). Siguendo las convinaciones de la tabla se puede hacer que el motor:

  • Gire a la derecha.
  • Gire a la izquierda.
  • Se frene el motor.

.

Control de velocidad

Para hacer que le motor gire a diferentes velocidades debemos utilizar la técnica de modulación por ancho de pulso-PWM. Aquí hay algunos gráficos donde se muestra la relación entre la señal de pulsos (PWM) y el voltaje efectivo:

.

.

Cuando el tiempo que el pulso está activo es la mitad del periodo de la señal o el parámetro duty cycle está al 50%, el voltaje efectivo es la mitad del voltaje total de entrada.

.

.

Cuando el duty cycle es reducido al 25%, el voltaje efectivo es un cuarto del voltaje total de entrada. Entonces la velocidad del motor disminuye. De esta forma controlando el duty cycle o el tiempo que el pulso está activo (frecuencia), podemos controlar la velocidad del motor de continua.

Una forma de realizar dicho control en Arduino, es utilizando la salida analógica PWM. Hay que recordar que la señal de salida PWM (pines 9,10) es una señal de frecuencia constante (30769 Hz) y que sólo nos permite cambiar el «duty cycle» o el tiempo que el pulso está activo (on) o inactivo (off), utilizando la función analogWrite().

Como se ha comentado hasta ahora se puede controlar tanto el sentido de giro como la velocidad a la gira. Para poder hacer las dos cosas se puede hacer con el A1 y el A2 conectándolos a un pin PWM cada uno de ellos.

.

.

.

La solución de usar 2 pines PWM es correcta aunque puede ser malgastar pines ya que los PWM están más limitados que los digitales. Por eso es posible controlar un motor con un pin digital y un PWM. Para el ejemplo vamos a suponer que el pin 1A está conectado a un PWM de Arduino y el pin 2A a uno digital. Ez giro a izquierda sería el mismo que en el ejemplo de arriba.

.

.

Para hacer que gire a la derecha a diferentes velocidades hay que poner el pin digital en alto y mandar un pulso PWM por el otro pin. Hay que tener en cuenta que la velocidad la marca el tiempo que está a cero la señal PWM, osea cuando 1A=0 y 2A=1 girará a la derecha. Pero cuando 1A=1 y 2A=1 no girará.

.

.

Aunque en algunos datasheet dice que con esta combinación el motor se frena, se puede usar sin problemas.

2 pultsadore bidez soinu maila kontrolatu

2 pultsadore bidez soinu maila kontrolatu

roiektu honek egiten duena da bi pultsadoreen bidez led barrak dituen argi kopurua kontrolatuko dugu. Pultsadore batekin led barra bat gehiago piztuko da eta beste pultsadorearekin led barra bat gutxiago piztuko da. Pentsa ezazue bolumena kontrolatzeko sistema bat dela. Zero baina gutxiago ezin da jeitsi bolumena eta maximoa hamar baino gehiago ezin da igo bolumena.
Proteus programarekin simulatu dugu, horretarako Proteus 7.7 erabili dugu Arduino UNOrekin konpatiblea izateko. Hona hemen argazkia Proteusen simulatuta:
.
.
Ikasle batek prozesuaren bideotutorial bat egin du. Ea zer deritzozue!
.

.

Horretarako Arduino UNO erabili dugu bere Sketch programarekin. Hona hemen Sketch-a:
int x=3;
void setup() { 
  pinMode(2, INPUT);  
  pinMode(3, INPUT); 
  pinMode(4, OUTPUT); 
  pinMode(5, OUTPUT); 
  pinMode(6, OUTPUT); 
  pinMode(7, OUTPUT); 
  pinMode(8, OUTPUT); 
  pinMode(9, OUTPUT); 
  pinMode(10, OUTPUT); 
  pinMode(11, OUTPUT); 
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);  
}
void loop() 
{
  digitalRead(2);
  if (digitalRead(2) == LOW)
  {
    digitalRead(2); 
    while(digitalRead(2)== LOW)
    {
      digitalRead(2);
    }
    if(x>=13)
    {
      x=13;
    }
    digitalWrite(x, HIGH); 
    x++;
  }  
  digitalRead(3);
  if (digitalRead(3) == LOW)
  {
    digitalRead(3); 
    while(digitalRead(3)== LOW)
    {
      digitalRead(3);
    }
    if(x<=3)
    {
      x=4;
    }
    x--;
    digitalWrite(x, LOW);   
  }  
}