Paso 5: Subir el boceto muestra a Arduino
Utilizando el IDE, la muestra Sketch invertido robot está subido a Arduino.
- Conectar Arduino al PC mediante un cable USB
- Desconecte el cierre de la batería del compartimiento para pilas 4AA
- Fijar el robot en el escritorio o en el piso y dejarlo en reposo
- Descargar (*) el archivo pdf adjunto a la siguiente a la última línea en este paso (* obtendrá un programa dañado si abren este archivo en el navegador web y copiar su contenido)
- Abra el archivo en el apropiado lector y copia el todo el texto en el archivo
- Pegar la copia a IDE y corregir erratas
- Subir bosquejo corregido al usar el IDE de Arduino
:
[Nota 4]
Para realizar un equilibrio invertido péndulo sí mismo, par del motor se controla dinámicamente. Este método de control se expresa como plano fórmula con 4 variables relacionadas con el estado del péndulo.
"esfuerzo de torsión del motor = k1 * ángulo del péndulo
+ k2 * velocidad angular del péndulo
+ k3 * velocidad del extremo inferior del péndulo
+ k4 * desplazamiento del extremo inferior del péndulo desde un punto de referencia "
K1, k2, k3 y k4 son coeficientes estáticos con valores apropiados. En un bosquejo muestra en archivo pdf a continuación, una larga ecuación en línea 72 expresa esta fórmula. Para hacer el equilibrio invertido robot sí mismo, tenemos que seleccionar valores para estos 4 coeficientes respectivamente y saber el valor correcto de cada una de estas 4 variables en tiempo real.
El sensor giroscópico da el segundo valor de la variable, velocidad angular del péndulo, dinámicamente por un entero de 16 bits. Y Arduino el primer valor de la variable, ángulo del péndulo, al mismo tiempo integrando la segunda variable.
Por otro lado, el tercero o el cuarto valor de la variable no puede medirse por el sensor giroscópico. Para que otro tipo de sensor o medidor puede usarse para obtener en tiempo real. Pero nuestro robot invertido ningún dispositivo más que un módulo giroscopio. Así se convierte en un rompecabezas para estimar estos valores de 2 variables dinámicamente. En un bosquejo muestra en archivo pdf a continuación, puede usarse 2 ecuaciones enmascaradas en las líneas 76 y 77 para estimarlos. Aquí quedan enmascarados para no estropear la solución de este rompecabezas.
:
[Nota 5]
L3GD20 gyro digital sensor tiene tres rangos de medición diferentes; +-250dps, +-500dps y +-2000dps (dps: grados por segundo). Este sensor salidas de velocidad angular como un entero de 16 bits. En este instructable el intervalo mínimo (+-250dps) se adopta, donde una cifra de salida es 0.00875dps.
:
[Nota 6]
La salida del sensor de giro se transmite a Arduino por interfaz de SPI. General discusión técnica sobre el SPI o el cableado para no se describe aquí. Si se usa un módulo de giro de chip en lugar de Akizuki, consulte "(3) equivalente o alternativa girocompás módulo" [en Comentario para módulo giroscopio] en el paso 1. No lo he probado módulo de chip. En el programa de ejemplo que se adjunta al final de este paso, se mide el ángulo alrededor del eje y para equilibrar. Pero cuando se utiliza el chip, otro eje (X o Z) puede ser medido o puede invertirse el signo de salida. Por ejemplo, si la postura del robot fueron detectados alrededor de eje x de L3GD20 y señal de salida es invertida, la mano derecha de la línea DL28 en el programa de ejemplo debe reescribirse "-((L3GD20_read(0x29) << 8) | L3GD20_read(0x28)) ".
:
[El muestra bosquejo (programa) para robot invertida]
Copiar el texto entero de "invertedRobot_v20d_noTimer.pdf" a continuación, péguelo en IDE y subirlo a Arduino (** 1-5).
(* 1) Guarde el archivo pdf en tu PC y abrirlo con el lector de pdf apropiado. O conseguir un programa dañado al abrir en navegador web.
(* 2). If "; 72"no aparece en el extremo de la línea 72, sustituto de toda una ecuación de más abajo para él. No es lo mismo que la versión original.
powerScale = (kAngle * thetaI / 100) + (kOmega * omegaI / 100) + (kSpeed * vE5 / 1000) + (kDistance * xE5 / 1000); 72
(* 3). Pegar la copia para IDE o editor, erratas como "/ /" como "/ /" (un espacio del obstáculo insertado) puede suceder entonces corregirlos.
(* 4). La línea número escrito en el bosquejo muestra como comentario (por ejemplo, //DL2) es consistente con el anterior boceto "invertedRobot.pdf" o "invertedRobot_v20_noTimer.pdf" en la versión original.
(* 5). Copyright (C) 2015 ArduinoDeXXX todos los derechos reservados.
:
[El boceto para restaurar módulo de giro de portador de L3GD20]
Si la salida del módulo de giro se vuelve extraña, ver "(2) salida anormal del girocompás" [en Comentario para módulo giroscopio] en el paso 1. Allí dos contramedidas se muestran. Sketch utilizado en la segunda medida, "dgtlGYRO_L3GD20_SPI_recover.pdf," se une a la última línea de este paso.