Herramientas de usuario

Herramientas del sitio


playground:playground

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
playground:playground [2017/05/02 14:03] Manuel Miramontesplayground:playground [2021/04/16 20:41] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
-{{  :playground:mbot_ranger.jpg?400  }}+e puedes llegar mucho más lejos con tu transmisor LoRa, pero tardarás mucho más en transmitir tus envíos y podrás enviar menos mensajes por la regla del 1%.
  
-====== mBot Ranger con el IDE de arduino ======+==== playground ====
  
-El mBot Ranger cuenta con una completa librería de funciones ([[https://github.com/Makeblock-official/Makeblock-Libraries/archive/master.zip|https://github.com/Makeblock-official/Makeblock-Libraries/archive/master.zip]]) que permite programarlo directamente desde el IDE de arduino.+Otro carácteristica nueva. En europa la banda 868 MHz tiene un par de limitacionesLa primera es la potencia de emisión25mW, que no nos preocupa mucho ya que los módulos que utilizaremos no llegan a tantaPero la segunda si que es importante y debemos estár al loro para no violar la regulación.
  
-Sin embargo, la sintaxis resulta un poco farragosa para alguien que está dando los primeros pasos en la programación con el IDE de arduino (y para muchos que ya llevan mucho andado). El objetivo de este artículo es facilitar los recursos para que alumnos y profesores puedan programar la placa Auriga del mBot Ranger al más puro estilo arduino.+Esta regla simplificadamente lo que dice es que no podemos transmitir más que el 1% del tiempo. Es decir si por ejemplo enviar un paquete nos lleva 100ms, tendremos que mantenernos calladitos por 900ms.
  
-===== Instalación del Driver de comunicación en el ordenador ===== +Como norma general, no envíes más de una vez cada 3 minutos cumpliras la reglamentación. Si quieres enviar más a menudoexisten [[https://docs.google.com/spreadsheets/d/1voGAtQAjC1qBmaVuP1ApNKs1ekgUjavHuVQIXyYSvNc/edit#gid=0|calculadoras]] para obtener los tiempos entre envío mínimosPara LoRaWAN (explicado más adelante), revisa la [[https://www.thethingsnetwork.org/forum/t/limitations-data-rate-packet-size-30-seconds-uplink-and-10-messages-downlink-per-day-fair-access-policy/1300|Fair access policy]].
- +
-Lo primero que necesitas para poder transferir los programas que hagas al mBot Ranger es descargarte el driver para el chip que se encarga de la comunicación entre ambos: en nuestro caso el CH340. La forma más cómoda es con el programa mBlock. Sólo tienes que selecciar en el menú **Conectar>Instalar Driver de arduino**. Es muy posible que en las primeras conexiones tengas problemas que pueden ir desde que se congele el puntero del ratón hasta que el ordenador se reinicie. Má adelante mejora un poco. La verdad es que ese driver no va muy finopero no hay alternativa conocida. +
- +
-{{  :playground:instalar_driver_arduino.png?400}} +
- +
-Debes tener en cuenta que cuando abriste el Ranger por primera vez, la placa Auriga trae cargado un programa que incluye varias funciones, como usarla con el mBlock, o conectarte por Bluetooth. Cuando subas un nuevo programa desde el IDE de arduino ese programa se sustituye por el que estás subiendo, y pierdes esas funciones. Siempre puedes recuperar las funciones que venían de fábrica volviendo a cargar el programa original en el menú **Conectar>Actualizar Firmware** +
-====== La primera librería ====== +
- +
-Lo primero en un robot es lograr que se mueva. La solución más sencilla que se nos ocurre es usar la librería mobilerobot que es parte del conjunto de librerías para accionamiento de motores con arduino que podéis descargar en [[https://github.com/brico-labs/ArduinoDCmotorDrivers|https://github.com/brico-labs/ArduinoDCmotorDrivers]]. +
- +
-Para instalar esta librería y las otras que iremos necesitando lo primero es descargarla del repositorio correspondiente y descomprimirla. Una vez que tenéis instalado el IDE de arduino, debéis localizar la carpeta "arduino" en vuestro ordenador y copiar la carpeta que contiene la librería ya descomprimida dentro de la carpeta **arduino>libraríes** de nuestro ordenador. {{  :playground:ejemplo_mbot_ranger.png?400}} +
- +
-Para comprobar si la librería está bien instalada podéis entrar en el programa arduino, el IDE de arduino (si ya lo teníais abierto es necesario salir y volver a entrar cada vez que instaléis nuevas librerías). Luego, en el menú **Archivo>Ejemplos>mobilerobot>mBotRanger_Arduino>mBotRanger_Arduino** podéis abrir el ejemplo para mBot. +
- +
-Recordad que si queréis modificar guardar el ejemplo deberéis guardar una copia (Guardar como…). +
- +
-====== Nos movemos ====== +
- +
-En el ejemplo se muestra cómo crear un objeto del tipo Robot que sea compatible con el Ranger, y cómo usar las cuatro funciones que acabamos de incluir: +
- +
-  * **fordward (velocidad_L, velocidad_R, tiempo_avance)**: hace avanzar el mBot durante el tiempo_avance indicado (en mili segundos) con las velocidades velocidad_l y velocidad_R en las ruedas izquierda y derecha. el valor debe estar entre 0 y 255. +
-  * **reverse (velocidad_L, velocidad_R, tiempo_avance)**: para que el Ranger retroceda. Los parámetros son los mismos que en la función anterior. +
-  * **rotate (tiempo_giro)**: El Ranger gira sobre si mismo durante el tiempo de giro indicado (en mili segundos). Si tiempo_giro es positivo, el giro es hacia la derecha. si es negativo hacia la izquierda. +
-  * **brake (tiempo_freno)**: Frena el robot durante el tiempo indicado (en mili segundos) +
-La misma librería sirve para controlar cualquier robot que construyáis con un arduino y un driver de los tipos que se usan más habitualmente para pequeños motores (L293, L298 y TB6612). En la carpeta de ejemplos de la librería están los esquemas de cómo montar cada uno de ellos y enlaces algunos proyectos abiertos de robots. +
- +
-====== Explorando el mundo ====== +
- +
-El Ranger viene equipado con una tarjeta llamada Auriga que incluye varios sensores. A nuestros efectos es como una tarjeta arduino MEGA 2560. Los sensores están conectados con pines analógicos del microprocesadorpor lo que se pueden leer con la instrucción **analogRead (número_de_pin)**  [[http://www.arduino.org/learning/reference/analogread|http://www.arduino.org/learning/reference/analogread]]. El valor de salida variará entre y 1023. +
- +
-  * **Sensor de luz izquierdo**  A2 → analogRead(A2) +
-  * **Sensor de luz derecho**.. A3 → analogRead(A3) +
-  * **Sensor de temperatura**.. A0 → analogRead(A0) —falta formula— +
-  * **Sensor de sonido**……. A1 → analogRead(A1). En el sensor de sonido, la salida del micrófono integrado se conecta directamente a la entrada analógica A1, por lo que la lectura cambia continuamente en función del valor instantáneo de la onda de sonido captada, y no de su amplitud. Un buen truco para conseguir un valor proporcional a la intensidad del ruido ambiente es realizar varias medidas seguidas y calcular el máximo. +
-====== Haciendo ruido ====== +
- +
-En el **pin 45**  tenemos un zumbador que responde perfectamente a las instrucción **tone**  [[http://www.arduino.org/learning/reference/tone|http://www.arduino.org/learning/reference/tone]] y **noTone**  [[http://www.arduino.org/learning/reference/notone|http://www.arduino.org/learning/reference/notone]] +
- +
-====== Conectando sensores externos ====== +
- +
-La tarjeta Auriga del mBot tiene 5 puertos dedicados a la conexión con el mundo exterior. Son los que están señalados del 6 al 10 y con los cuatro colores blanco, amarillo, azul y gris oscuroCada uno de los puertos tiene alimentación a 5V, está conectado con dos entradas analógicas del arduino MEGA2560. También permiten conectar dispositivos I2C. Las entradas de cada uno de los puertos son las siguientes: +
- +
-  * **PUERTO 06**  A10  y  A15 +
-  * **PUERTO 07**  A9    A14 +
-  * **PUERTO 08**  A8    A13 +
-  * **PUERTO 09**  A7    A12 +
-  * **PUERTO 10**  A6    A11 +
-{{  :playground:sigue_lineas.png?150}} +
- +
-===== Sensor SIGUE LINEAS ===== +
- +
-Tiene dos barreras ópticas reflexivas para detectar si el suelo es blanco o negro. La salida es digital (todo o nada), ya que tienen un comparador y un indicador luminoso para cada canal. Cuando se refleja la luz en el suelo (zona blanca o clara) el indicador azul junto al sensor se enciende, y la salida pasa a nivel alto. Cuando no se refleja la luz, o el suelo es suficientemente oscuro el indicador se apaga y la salida pasa a nivel bajo. No hay posibilidad de ajustar la sensibilidad. +
- +
-El valor de salida se puede leer con la instrucción **digitalRead (número_de_pin)**  [[http://www.arduino.org/learning/reference/digitalread|http://www.arduino.org/learning/reference/digitalread]]. Por ejemplo, si el sensor está conectado en el PUERTO 09: +
- +
-  * **Valor del sensor izquierdo**  digitalRead(A7) +
-  * **Valor del sensor derecho **   digitalRead(A12) +
-{{:playground:ultrasonidos.png?100}} +
- +
-===== Sensor de ULTRA SONIDOS ===== +
- +
-Para este sensor lo más conveniente es usar la librería NewPing que podemos descargar en [[https://bitbucket.org/teckel12/arduino-new-ping/downloads/|https://bitbucket.org/teckel12/arduino-new-ping/downloads/]]. De esta forma podremos usar la misma librería en los arduinos con el muy popular y barato sensor de ultrasonidos SR04. Tenemos una completa explicación del uso de esta librería en [[http://playground.arduino.cc/Code/NewPing|http://playground.arduino.cc/Code/NewPing]] +
- +
-{{  :playground:ejemplo_newping.png?400}}Una vez instalada podemos ver un ejemplo de cómo funciona en **Archivo>Ejemplos>NewPing>NewPingExample**  En el ejemplo tenemos que sustituir los valores TRIGGER_PIN y ECHO_PIN, en función del PUERTO en el que tengamos enchufado el sensor. En nuestro caso TRIGGER_PIN y ECHO_PIN siempre serán iguales. Por ejemplo, si el sensor está conectado en el PUERTO 10: +
- +
-<code> +
-    #define TRIGGER_PIN  A11  // Arduino pin tied to trigger pin on the ultrasonic sensor. +
-    #define ECHO_PIN     A11  // Arduino pin tied to echo pin on the ultrasonic sensor. +
-</code> +
- +
-====== Luces ====== +
- +
-Pendiente: +
- +
-=== El mítico blink === +
- +
-Para muchos de nosotros el primer programa que hicimos en arduino es el blink que está en **Archivo>Ejemplos>01.Basics>Blink**. Además es el equivalente al "Hello World", la forma de comprobar que todo va bien hasta aquí. {{  :playground:ejemplo_blink.png?400}}En la tarjeta Auriga del Ranger, el led "ON BOARD" está conectado en el pin 13, como en el Arduino UNO. Pero el montaje de la placa hace que quede queda oculto. Por desgracia no tenemos ningún otro LED en la placa que sea igual de fácil de manejar para comprobar que todo va bien.+
  
  
playground/playground.1493733809.txt.gz · Última modificación: 2021/04/16 20:37 (editor externo)