Herramientas de usuario

Herramientas del sitio


guias:mbot_con_ide_arduino

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
guias:mbot_con_ide_arduino [2017/05/09 18:04] – [Facer o blink cos Neopixel] Manuel Miramontesguias:mbot_con_ide_arduino [2021/04/16 20:41] (actual) – editor externo 127.0.0.1
Línea 10: Línea 10:
 ===== Instalación del Driver de comunicación en el ordenador ===== ===== Instalación del Driver de comunicación en el ordenador =====
  
-<del>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.+Hay muchas referencias de problemas con el chip de comunicación CH340g que trae la placa Auriga que equipa al Ranger. Pero para eso no tenemos alternativa, ya que es el chip de comunicaciones que viene soldado en la placa. La forma más fácil de instalar el controlador es la que os indicamos a continuaciónusando el mismo programa mBlock
  
 +Pero si tienes problemas, o prefieres probar a instalar la última versión, que en algunos casos funciona mejor, una buena idea para empezar es buscar en internet "driver CH340g" y el nombre de vuestro sistema operativo. Puedes encontrar muchas páginas como esta [[http://www.prometec.net/ch340g]] que pueden ser de ayuda. Por si tienes tentaciones de ir directamente a la página del fabricante [[http://www.wch.cn/product/CH340.html]], que sería lo más lógico, te adelantamos que está exclusivamente en chino.
  
 +Si prefieres empezar por lo más fácil, basta con que en el programa mBlock selecciones en el menú **Conectar>Instalar Driver de arduino**. Es muy posible que las primeras veces que te conectes tengas problemas que pueden ir desde que el puntero del ratón quede congelado por un tiempo, hasta que el ordenador se reinicie bruscamente. Es importante que te asegures de tener tu trabajo guardado antes de conectarte a la placa. Más adelante mejora un poco. La verdad es que este driver no va muy fino.
  
-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** 
  
 +Debes tener en cuenta que cuando abriste el Ranger por primera vez, la placa Auriga trae cargado un programa que incluye varias funciones para poder 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**
  
-</del> 
 ====== La primera librería ====== ====== La primera librería ======
  
Línea 37: Línea 38:
 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: 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.+  * **forward (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.   * **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.   * **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.
Línea 62: Línea 63:
  
 ======   ====== ======   ======
 +
  
 ====== Explorando el mundo ====== ====== Explorando el mundo ======
Línea 190: Línea 192:
   * **Valor del sensor derecho **  digitalRead(A12)   * **Valor del sensor derecho **  digitalRead(A12)
  
-Este es el código para siguelínes básico:  FIXME+Este es el código para siguelínes básico:  
  
-======   ======+<code c_mac> 
 +#include <RobotMovil.h> 
 +RobotMovil robot(46,47,10,49,48,11);
  
 +  bool linea_dcha;   // Esta variable será certa cando o sensor dereito está sobre a liña
 +  bool linea_izqda;  // Esta variable será certa cando o sensor esquerdo está sobre a liña
 +  
 +
 +void setup() {
 +  pinMode (A7,  INPUT);  // Son as entradas asociadas co PORTO 9
 +  pinMode (A12, INPUT);  // Son as entradas asociadas co PORTO 9
 +}
 +
 +void loop() {
 +  linea_dcha  = ! digitalRead (A7);
 +  linea_izqda = ! digitalRead (A12);
 +  
 +  // Os dous sensores están sobre a liña
 +  if      (  linea_dcha  &&   linea_izqda) robot.forward(135,135,10);
 +  
 +  // O sensor dereito saíuse da liña
 +  else if (! linea_dcha  &&   linea_izqda) robot.rotate( 10);
 +
 +  // O sensor esquerdo saíuse da liña
 +  else if (  linea_dcha  && ! linea_izqda) robot.rotate(-10);
 +  
 +  // Falta programar o que pasa cando os dous sensores saen la liña
 +}
 +</code>
 +
 +======   ======
 ====== Sensor de ULTRA SONIDOS ====== ====== Sensor de ULTRA SONIDOS ======
  
Línea 212: Línea 243:
 ==== El LED del mítico blink está demasiado escondido ==== ==== El LED del mítico blink está demasiado escondido ====
  
-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í. 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.+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í. 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 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.
  
-==== Hacer el blink con los Neopixel ====+==== Vamos a hacer un blink con los Neopixel ====
  
 El círculo de luces que tiene la placa Auriga del Ranger está formado por un tipo de LED un tanto especial: los NEOPIXEL. Para manejarlos también hay una librería, en este caso de Adafruit: [[https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library|https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library]]. El círculo de luces que tiene la placa Auriga del Ranger está formado por un tipo de LED un tanto especial: los NEOPIXEL. Para manejarlos también hay una librería, en este caso de Adafruit: [[https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library|https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library]].
  
-{{  :guias:mbot:ejemplo_blink.png?600  }} +En nuestro caso tenemos un anillo formado por 12 Neopixel que están conectados al pin 44. Para que el ejemplo funcione con el Ranger debemos poner estos valores:
- +
-En nuestro caso tenemos un anillo formado por 12 Neopixel que están conectados al pin 44. Para que el ejemplo funcione con el Ranger debemos cambiar los valores de estas líneas:+
  
 **#define PIN 44 ** **#define PIN 44 **
Línea 241: Línea 270:
    
 void loop (){ void loop (){
 +  // Con este código encendemos o pixel 8
   pixels.setPixelColor(8, pixels.Color(175,0,0));   pixels.setPixelColor(8, pixels.Color(175,0,0));
   pixels.show();   pixels.show();
guias/mbot_con_ide_arduino.1494353076.txt.gz · Última modificación: 2021/04/16 20:39 (editor externo)