Brazo -IDE

Podemos conectar e programar servomotores no noso mClon para facerlle brazos. Aquí mostramos unha opción, pero podes deseñar outros brazos e mecanismos movidos mediante servos para resolver outros retos. Na páxina “servomotor” na sección de montaxe explicamos como montalo e conectalo.

Esta foi a primeira proba que fixemos:

Programación

Para programar o movemento do servo debes incluír a librería servo, que vén por defecto no IDE de arduino. Despois ponlle nome ao servo (no noso exemplo “brazo”) e na configuración debes indicar a que pin está conectado (no noso exemplo conectarémolo ao pin 12 do mClon) e a posición inicial da que parte.

Para dicirlle que se mova a unha posición determinada só tes que escribir nomedoservo.white(ángulo);

#include <Servo.h>   // Importamos a librería servo
 
// Declaración de variables:
 
Servo brazo;      // poñémoslle nome ao servo: "brazo"
 
// Configuración:
 
void setup(){
  brazo.attach(12);   // Indicamos que está conectado no pin 12
  brazo.write(90);    // O servo parte da posición de 90º
  while(analogRead(A7)>100);  // agardamos mentres non se pulse o botón
}
 
// Programa:
 
void loop(){
 
  brazo.write(90);       
  delay (1000); 
  brazo.write(145);       
  delay (1000); 
  brazo.write(180);       
  delay (1000); 
  
}

Coa instrución anterior o servo móvese rapidamente entre unha posición e outra. Se queremos que o movemento se realice lentamente creamos unha variable para o ángulo e pouco a pouco imos sumándolle graos. O servo moverase desde a posición inicial ata a final lentamente, a unha velocidade que depende do tempo de espera que poñamos e dos graos que vaiamos sumando á variable en cada execución das instrucións do bucle (no noso exemplo vai sumando 1 grao en cada ciclo a intervalos de 10ms).

void loop(){
 
  // Móvese pouco a pouco desde 90º ata 180º    
  
  for(int i=90;i<=180;i++){   
    brazo.write(i);       
    delay (10);
  }
  delay (1000); 

  // Móvese pouco a pouco ata 180º ata 90º
  for(int i=180;i>=90;i--){   
    brazo.write(i);       
    delay (10);
  }
  delay (1000); 
  
}

Prácticas

  • Fai probas de posición do servo do teu mClon a distintos ángulos, tanto con movemento rápido como lento.

Retos

  • Retirando latas: Imos propoñer o reto do vídeo do principio da páxina. O mClon segue unha liña no chan e cando se atopa cunha lata debe apartala e seguir o seu camiño.
  • As latas sempre na liña: Modifica o programa anterior para que no canto de retirar as latas as deixe na liña, pero pola parte de atrás, e siga o seu camiño.
  • As brancas a un lado e as negras a outro: Propoñemos agora que o mClon poida distinguir entre latas brancas e negras (necesitarás un sensor na parte frontal). Cando atope unha lata branca debe retirala cara á dereita e cando sexa negra cara á esquerda. Deberás deseñar un brazo axeitado, xa que o que poñemos de exemplo só vale para retirar as latas cara un lado.
  • Xogo do pañuelo: Cada robot sae dun extremo do circuíto. O primeiro que chegue á lata deberá collela, dar a volta e volver rapidamente con ela ata o punto de partida.