Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
guias:mbot_con_ide_arduino [2017/05/09 17:53] – [Manejar los Neopixel] Manuel Miramontes | guias: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 ===== | ||
- | < | + | Hay muchas referencias de problemas con el chip de comunicación CH340g |
+ | 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 " | ||
+ | Si prefieres empezar por lo más fácil, basta con que en el programa mBlock selecciones en el menú **Conectar> | ||
- | 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> | ||
+ | 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> | ||
- | </ | ||
====== 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 | + | * **forward |
* **reverse (velocidad_L, | * **reverse (velocidad_L, | ||
* **rotate (tiempo_giro)**: | * **rotate (tiempo_giro)**: | ||
Línea 62: | Línea 63: | ||
====== | ====== | ||
+ | |||
====== Explorando el mundo ====== | ====== Explorando el mundo ====== | ||
Línea 69: | Línea 71: | ||
* **Sensor de luz izquierdo** | * **Sensor de luz izquierdo** | ||
* **Sensor de luz derecho**.. A2 → analogRead(A2) | * **Sensor de luz derecho**.. A2 → analogRead(A2) | ||
- | * **Sensor de temperatura**.. A0 → analogRead(A0) | + | * **Sensor de temperatura**.. A0 → analogRead(A0) |
* **Sensor de sonido**……. A1 → analogRead(A1). | * **Sensor de sonido**……. A1 → analogRead(A1). | ||
Línea 189: | Línea 191: | ||
* **Valor del sensor izquierdo** | * **Valor del sensor izquierdo** | ||
* **Valor del sensor derecho ** digitalRead(A12) | * **Valor del sensor derecho ** digitalRead(A12) | ||
- | ====== | ||
+ | Este es el código para siguelínes básico: | ||
+ | |||
+ | <code c_mac> | ||
+ | #include < | ||
+ | RobotMovil robot(46, | ||
+ | |||
+ | bool linea_dcha; | ||
+ | bool linea_izqda; | ||
+ | | ||
+ | |||
+ | void setup() { | ||
+ | pinMode (A7, INPUT); | ||
+ | pinMode (A12, INPUT); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | linea_dcha | ||
+ | linea_izqda = ! digitalRead (A12); | ||
+ | | ||
+ | // Os dous sensores están sobre a liña | ||
+ | if ( linea_dcha | ||
+ | | ||
+ | // O sensor dereito saíuse da liña | ||
+ | else if (! linea_dcha | ||
+ | |||
+ | // O sensor esquerdo saíuse da liña | ||
+ | else if ( linea_dcha | ||
+ | | ||
+ | // Falta programar o que pasa cando os dous sensores saen la liña | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ====== | ||
====== Sensor de ULTRA SONIDOS ====== | ====== Sensor de ULTRA SONIDOS ====== | ||
Línea 209: | 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> | + | Para muchos de nosotros el primer programa que hicimos en arduino es el blink que está en **Archivo> |
- | ==== Facer o blink cos 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:// | 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:// | ||
- | {{ : | + | 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 |
- | + | ||
- | 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 | + | |
**#define PIN 44 ** | **#define PIN 44 ** | ||
Línea 227: | Línea 259: | ||
<code c_mac> | <code c_mac> | ||
#include < | #include < | ||
+ | |||
+ | int PIN = 44; // Pin no que están conectados os Neopixels | ||
+ | int NUMPIXELS = 12; // Número de Neopixels | ||
- | int PIN_Neopixels = 44; | + | Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); |
- | Adafruit_NeoPixel pixels = Adafruit_NeoPixel(12, PIN_Neopixels, NEO_GRB + NEO_KHZ800); | + | |
void setup() { | void setup() { | ||
- | pixels.begin (); | + | pixels.begin (); // Esta instrucción inicializa a librería |
} | } | ||
+ | |||
void loop (){ | void loop (){ | ||
+ | // Con este código encendemos o pixel 8 | ||
pixels.setPixelColor(8, | pixels.setPixelColor(8, | ||
pixels.show(); | pixels.show(); | ||
delay (500); | delay (500); | ||
+ | |||
pixels.setPixelColor(8, | pixels.setPixelColor(8, | ||
pixels.show(); | pixels.show(); |