|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
   AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

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

_________________

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información