|     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:


.

App inventor 2 en español
Cómo programar los teléfonos móviles con Android.
Bluetooth, Arduino y App inventor 2 - Juan Antonio Villalpando

-- Tutorial de iniciación de App Inventor 2 en español --

Volver al índice del tutorial

___________________________

9Y.- App inventor, Bluetooth. Mueve dos Servos.

p9Y_Bluetooth_servos.aia

- Vamos a mover dos motor servos desde Bluetooth.

- En este tutorial he puesto información sobre Arduino y servos: 28.- Servomotor.

- Según pulsemos unos botones u otros, los servos se moverán 0º, 90º o 180º.

__________________________________________
- Conexión.

- Bluetooth conectado a los puertos Serie "oficiales" RX-0 y TX-1 (Fíjate que se conectan de forma "cruzada").

- Normalmente la alimentación de los Servos se suele tomar de una fuente de alimentación, no desde el Arduino, es lo que se denominaría "un driver para los Servos", pero en nuestro caso debido a que estos servos son de poco consumo, vamos a alimentarlos desde la misma placa de Arduino.

__________________________________________
- Código de Arduino.

- Recuerda que para cargar este código en el Arduino debes desconectar el módulo Bluetooth, cuando el código ya esté cargado, vuelve a conectar el módulo Bluetooth.

servo_BT.ino

// Juan A. Villalpando
// Agosto 2018
// Servos por Bluetooth.

#include <Servo.h>
Servo servo3;
Servo servo5;
const int pwmPin3 = 3; // Un servo en el pin 3
const int pwmPin5 = 5; // Otro servo en el pin 5
char val;
String grados;
int angulo;

void setup() {
Serial.begin(9600);
pinMode (pwmPin3, OUTPUT); 
pinMode (pwmPin5, OUTPUT);
servo3.attach(pwmPin3);
servo5.attach(pwmPin5);
}

void loop() {  
if( Serial.available() ) {
val = Serial.read();
if (isDigit(val)) { grados += (char)val; }
if (val == '\n') {
angulo = grados.toInt();
Serial.println(angulo);
if( angulo == 0 )
{
servo3.write(angulo);
}
if( angulo == 90 )
{
servo3.write(angulo);
}
if( angulo == 180 )
{
servo3.write(angulo);
}
if( angulo == 1 )
{
servo5.write(angulo);
}
if( angulo == 91 )
{
servo5.write(angulo);
}
if( angulo == 181 )
{
servo5.write(angulo);
}

grados = "";

}
} 

} // => Fin Loop

__________________________________________
- Diseño.

__________________________________________
- Bloques.

__________________________________________
__________________________________________
__________________________________________
__________________________________________

2.- Otro ejemplo. Con dos Deslizadores.

p9Y_Bluetooth_servos_2.aia

- Ahora en vez de utilizar Botones vamos a usar dos Deslizadores, cuyos valores mínimos y máximos son 0 y 180.

- He puesto un Reloj, para que cada 600 milisegundos envíe la información.

- Al mover los Deslizadores se mueven los Servos.

__________________________________________
- Diseño.

__________________________________________
- Bloques.

__________________________________________
- Código de Arduino.

servo_BT_deslizadores.ino

// Juan A. Villalpando
// Agosto 2018
// Servos por Bluetooth.

#include <Servo.h>
Servo servo3;
Servo servo5;
const int pwmPin3 = 3; // Un servo en el pin 3
const int pwmPin5 = 5; // Otro servo en el pin 5

char val;
String palabra;
String angulo_1;
String angulo_2;

int k1;
int k2;

void setup() {
Serial.begin(9600);
pinMode (pwmPin3, OUTPUT); 
pinMode (pwmPin5, OUTPUT);
servo3.attach(pwmPin3);
servo5.attach(pwmPin5);
}

void loop() {

  if(Serial.available())
  {
    val = Serial.read();  
    palabra = palabra + val; 

if (val == '*') {

      Serial.println(palabra);
      k1 = palabra.indexOf(',');
      angulo_1 = palabra.substring(0, k1);
      k2 = palabra.indexOf(',', k1+1);
      angulo_2 = palabra.substring(k1+1, k2);

      servo3.write(angulo_1.toInt());
      servo5.write(angulo_2.toInt());
      palabra = "";   
  }
      }
} // => Fin Loop

__________________________________________
- Comentarios.

- Observa que el código de App Inventor envía un * para indicarle al código de Arduino el fin del dato enviado.

__________________________________________
- Propuesta.

- Observa que en los códigos anteriores enviamos Texto desde Bluetooth, modifica el código para enviar números mediante los bloques:

EnviarNúmero1Byte, EnviarNúmero2Bytes.

__________________________________________
- Robots con 4 Servos.

- En Aliexpress puedes ver este pequeño robot, tiene un precio de unos 30 €.

- Busca en Internet: Aliexpress Robot Otto hecho por 3D impresora fuente abierta DIY robótica para Arduino

- Si compras solo la carcasa vale 13€, si lo compras completo carcasa, servos, Arduino,... vale 31 €

- Se puede programar con los códigos de Arduino, ya que el "cerebro" es un Arduino. También puedes buscar aplicaciones parecida a los bloques de App Inventor para programarlo.

- Este robot no tiene Bluetooth, pero puedes comprar un módulo que viene a costar unos 3€ y acoplárselo, por menos de 35€ tienes un robot con 4 servos y un Bluetooth.
__________________________________

- 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