Autoit en español
Aplicaciones con Autoit - Juan Antonio Villalpando
-- Tutorial de iniciación a Autoit --
Volver al índice del tutorial
____________________________
67.- Bluetooth y Arduino mediante AutoIt. Botones, pulsadores, LED.
- Este tutorial es una continuación de los anteriores.
- En este caso para enviar la información desde la aplicación al Arduino utilizamos 4 botones, de tal manera que según pulsemos se encenderá/apagará el LED12 o LED13.
- Además en el Arduino tenemos 2 pulsadores, según los pulsemos cambiará el color de un par de círculos que se han puesto en la aplicación.
- Los datos del puerto están directamente establecidos en el código, no sale la ventana para poner sus valores.
___________________________________________
1.- Conexión del Arduino y el módulo Bluetooth HC-06.
- Esto ya lo hemos visto en varios tutoriales: 9bluetootharduino.htm
- Forma de conectarlo.
Módulo Bluetooh |
Arduino |
VCC |
5 V |
GND |
GND |
TXD |
RX (es la conexión 0 del Arduino) |
RXD |
TX (es la conexión 1 del Arduino) |
- Fíjate que el TXD va con el RX y que el RXD va con el TX
- En el momento de alimentarlo con los 5V, el LED del módulo bluetooth parpadeará.
- Pondremos dos LED uno en el terminal 12 y otro en el 13. [Si solo queremos hacer pruebas, simplemente consultamos el LED13 que tiene integrado la placa de Arduino y no ponemos ningún LED externo] |
|
___________________________________________
3.- Código del Arduino.
- Este código prepara el puerto Serie (terminales 0 y 1, donde está conectado el módulo bluetooth) para trasmitir/recibir información a 9600 baudios.
- Cuando recibe un 0 o un 1, apaga/enciende el LED13 del Arduino.
- Cuando pulsas un botón, enviará por bluetooth "a", cuando pulses el otro botón enviará "b".
- NOTA: cuando vayas a cargar el programa en el Arduino, desconecta la alimentación del módulo bluetooth.
bluetooth_autoit_pulsador.ino |
// Juan Antonio Villalpando
// juana1991@yahoo.com
// kio4.com
char val;
int ledPin13 = 13;
///////////////////// Arduino a Android
const int boton4 = 4;
const int boton9 = 9;
int buttonState4 = 0;
int buttonState9 = 0;
void setup() {
Serial.begin(9600);
pinMode(boton4, INPUT);
pinMode(boton9, INPUT);
pinMode(ledPin13, OUTPUT);
}
void loop(){
buttonState4 = digitalRead(boton4);
buttonState9 = digitalRead(boton9);
if (buttonState4 == HIGH) {
Serial.println("a");
}else{
Serial.println("b");
}
if (buttonState9 == HIGH) {
Serial.println("c");
}else{
Serial.println("d");
}
delay(200);
///////// Android a Arduino
/// LED 13
if( Serial.available() )
val = Serial.read();
if( val == '0' )
{
digitalWrite(ledPin13, LOW);
}
if( val == '1' )
{
digitalWrite(ledPin13, HIGH);
}
}
|
___________________________________________
4.- Código de AutoIt. Es el mismo que el del tutorial anterior. Simplificado.
- La librería CommNG.au3 la he puesto en la carpeta Include de donde está instalado el AutoIt.
- También es necesario commg.dll como vimos en el tutorial 62_bluethoot_arduino.htm
- Esta línea es donde se establece la configuración del bluetooth.
- El 29 es el COM29, el puerto del bluetooth en mi ordenador.
$abre_este_puerto = _CommSetPort(29, $Error, 9600, 8, 1, 1, 2)
- En la línea del Formulario se ha puesto $WS_EX_COMPOSITED y $WS_EX_TRANSPARENT para que los elementos no parpadeen.
- Aunque en el código del Arduino y en la imagen de conexiones he puesto dos pulsadores, en este código de AutoIt, solo he puesto un pulsador para que resulte más sencillo. Según el pulsador (boton4) del Arduino esté o no esté pulsado, se enviará la letra "a" o la "b".
bluetooth_autoit_arduino.au3 |
#include <CommMG.au3>
#include <GuiEdit.au3>
#include <GuiComboBox.au3>
#include <windowsconstants.au3>
#include <buttonconstants.au3>
#include <GUIConstantsEx.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("BT - Juan A. Villalpando", 386, 273, 368, 166, BitOR($WS_MINIMIZEBOX, $WS_SIZEBOX,$WS_EX_COMPOSITED, $WS_EX_TRANSPARENT))
$BtnLED13si = GUICtrlCreateButton("Enciende 13", 76, 129, 93, 30, $BS_FLAT)
$BtnLED13no = GUICtrlCreateButton("Apaga 13", 217, 129, 93, 30, $BS_FLAT)
$BtnLED12si = GUICtrlCreateButton("Enciende 12", 80, 188, 93, 30, $BS_FLAT)
$BtnLED12no = GUICtrlCreateButton("Apaga 12", 219, 188, 93, 30, $BS_FLAT)
$circulo1 = GUICtrlCreateGraphic(100, 40, 50, 10)
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0, 0xecc6d9)
GUICtrlSetGraphic(-1, $GUI_GR_ELLIPSE, 8, 8, 40, 40)
$circulo2 = GUICtrlCreateGraphic(235, 40, 50, 10)
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0, 0xecc6d9)
GUICtrlSetGraphic(-1, $GUI_GR_ELLIPSE, 8, 8, 40, 40)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While Conecta(0) = -1
WEnd
Opt("GUIOnEventMode", 1)
GUISetOnEvent($GUI_EVENT_CLOSE, "Salir")
GUICtrlSetOnEvent($BtnLED13si, "LED13si")
GUICtrlSetOnEvent($BtnLED13no, "LED13no")
GUICtrlSetOnEvent($BtnLED12si, "LED12si")
GUICtrlSetOnEvent($BtnLED12no, "LED12no")
While 1
$recibido = _commGetString()
If $recibido = 'a' Then
GUICtrlSetGraphic($circulo1, $GUI_GR_COLOR, 0, 0xff0000)
GUICtrlSetGraphic($circulo1, $GUI_GR_ELLIPSE, 8, 8, 40, 40)
GUICtrlSetGraphic($circulo1, $GUI_GR_REFRESH)
sleep(50)
EndIf
If $recibido = 'b' Then
GUICtrlSetGraphic($circulo1, $GUI_GR_COLOR, 0, 0xecc6d9)
GUICtrlSetGraphic($circulo1, $GUI_GR_ELLIPSE, 8, 8, 40, 40)
GUICtrlSetGraphic($circulo1, $GUI_GR_REFRESH)
sleep(50)
EndIf
WEnd
_Commcloseport(true)
Func Salir()
Exit
EndFunc
Func LED13no()
_CommSendstring(0 & @CR)
EndFunc
Func LED13si()
_CommSendstring(1 & @CR)
EndFunc
Func LED12no()
_CommSendstring(2 & @CR)
EndFunc
Func LED12si()
_CommSendstring(3 & @CR)
EndFunc
Func Conecta($mode = 1)
Local $Error
$abre_este_puerto = _CommSetPort(29, $Error, 9600, 8, 1, 1, 2)
Sleep(1000)
EndFunc
|
___________________________________________
5.- Ejecución del Script de AutoIt.
- Según introduzcamos en el casillero un 0 o un 1 se apagará/encenderá el LED13 del Arduino.
- Según pulsemos un botón u otro del Arduino cambiará el color de los círculos del AutoIt.
- Las pruebas las he realizado simplemente con el LED13 del Arduino y el botón4, para facilitar la compresión del código, aunque en algunas partes del código se contempla LED12 y botón9.
_________________
- Propuesta.
- C
_________________
|