dilluns, 22 de maig del 2017

Entorno de programación con Ardublock y DuinoEDU

Entorno de programación con Ardublock y DuinoEDU
Duinoedu http://duinoedu.com es una empresa francesa que vende materiales y kits para las escuelas e institutos. Una de los desarrollos mas interesantes es que sus sistemas están programados con Ardublock y tienen todas las librerías necesarias para poder trabajar con el sistema.




Botón de descarga de la página DuinoEdu
Podemos descargar el paquete de programación desde el siguiente enlace.
El fichero es un zip que hay que descomprimir en una carpeta.

SISTEMAS WINDOWS
En windows podemos arrancar el entorno de programación simplemente pulsando sobre arduino.exe


Fichero ZIP descomprimido

Existen 2 versiones (R05) y (R01). Si abrimos cualquiera de las 2 podemos arrancar el entorno de programación pulsando sobre el icono de Arduino.exe


Pulsando sobre el ejecutable Arduino.exe arrancará el entorno de programación.
El paquete viene con las librerías, el Arduino IDE y la máquina virtual de java.


Entorno de programación DuinoEDU en windows.


SISTEMAS LINUX
Necesitamos el entorno de programación de Arduino y el OpenJava funcionando.
Recomiendo utilizar el gestor de paquetes synaptic para instalar Arduino y Openjdk
En un terminal : sudo apt-get install synaptic



Descomprimimos el fichero ZIP Arduino_augmente_0.65-Beta una carpeta.

Una vez descomprimidos los ficheros, abrimos la carpeta de la versión R05.
Tenemos que copiar la carpeta de librerías y tools en la carpeta sketchbook de nuestro sistema






Copiando las carpetas tools y libraries a nuestra carpeta sketchbook. Si existen estas carpetas podemos reemplazarlas o combinarlas.
Finalmente tenemos nuestro entorno de programación listo.Arrancamos Arduino y tenemos las nuevas herramientas en el menú herramientas de Arduino IDE, en la imagen vemos ArdublockMaxi en un entorno Linux.



MAC OSX

En Mac la carpeta por defecto donde tenemos que copiar las carpetas libraries y tools está en 'Documentos/Arduino' debemos copiar las mismas carpetas como en Linux, si arrancamos Arduino IDE tendremos las nuevas herramientas disponibles.

dimecres, 22 de juliol del 2015

Servomotores: Control con Arduino.



15. Control de servomotores con Arduino  
Un servomotor es un motor de corriente continua que funciona mediante señales de ancho variable (PWM) y puede situarse dentro de su rango de funcionamiento, generalmente entre -90o y +90o (es decir un recorrido de 180 grados)


Está formado por un motor de DC, unos engranajes, un potenciómetro solidario con el eje de los engranajes del motor y un circuito electrónico. Tiene tres cables de conexión, dos de alimentación +Vcc y GND y uno de entrada de control mediante pulsos (PWM).
Su funcionamiento es simple, al introducir una señal PWM, el circuito electrónico interno compara esta señal con la señal de posición del potenciómetro y mueve el motor hasta ajustar los grados requeridos y equilibrar las señales.
Los parámetros más importantes del servo SG-90 [43] son:
Tensión de funcionamiento: Entre 4,8 y 6 Volts.
Torque [44] es el par motor o momento de fuerza sobre el eje de transmisión de potencia.
Velocidad 0.1 m/s
Peso 14,7 grm
Conexionado: Rojo +Vcc, Marrón GND, Amarillo señal de control.
Señal de control. El ancho de la señal de control PWM posicionará el servo de forma que para 1ms tenemos -90 grados ,1,5 ms son 0 grados y con 2ms tendremos 90 grados.



Control de un servomotor mediante potenciómetro.


Materiales:

1 Arduino.

1 Servomotor SG90

1 Potenciómetro o resistencia variable de 10kΩ

Cables y protoboard


Circuito:
 
 
Esquema:

 

Programa:
 
 

Código:

Para realizar la programación utilizamos la librería Servo.h. Como tenemos la entrada analógica del potenciómetro que varía entre 0 y 1023, tenemos que ajustar estos valores a la salida PWM que está entre 0 y 180, para ello mapeamos la variable mediante el comando map cuya función es ajustar estos valores.

Esto significa que cada 5,6 valores en la entrada analógica 1 tendremos un grado de desplazamiento en el servo.

//-----------------------------------------------------------

//Control servo mediante Potenciómetro

// In pot pin analogico 1

// OUT PWM servo pin digital 5

//------------------------------------------------------------

#include <Servo.h>
int _ABVAR_1_valorpot = 0 ;
Servo servo_pin_5;

void setup()
{

servo_pin_5.attach(5);

}

void loop()
{

_ABVAR_1_valorpot = map ( analogRead(1) , 0 , 1023 , 0 , 180 ) ;

servo_pin_5.write( _ABVAR_1_valorpot );

}
 

Control de un servomotor mediante LDR (Resistencia dependiente de la luz).

Una ligera variación del circuito anterior es utilizar una LDR como elemento de control. Podemos utilizar este circuito para realizar un seguimiento del sol para una placa solar controlada por un servo.

Materiales:

1 Arduino.

1 Servomotor SG90

1 Resistencia de 10kΩ

1 LDR

Circuito:
 
 
 

Esquema:
  

Programa:

Vamos a utilizar la librería Servo.h y el sensor analógico de luz ambiente (LDR).

La LDR se conectará al pin analógico 0 y la salida PWM del servo en el pin 10 digital.

  
Código:

//--------------------------------------------------

// LDR controla Servomotor

// Servo en pin 10 digital

//LDR en analog 0

//--------------------------------------------------



#include <Servo.h>


int _ABVAR_1_ldr = 0 ;

Servo servo_pin_10;


void setup()

{

servo_pin_10.attach(10);

}


void loop()

{

_ABVAR_1_ldr = map ( analogRead(0) , 0 , 1023 , 0 , 255 ) ;

servo_pin_10.write( _ABVAR_1_ldr );

}

Links:



[43] Servomotor SG90 http://abc-rc.pl/sg-90



[46] Software generador diagrama tiempos Wavedrom http://wavedrom.com/