Paso 35: Opcional: depuración
Antes de comenzar a depurar, Verifique lo siguiente:
- Todo el cableado es más corto posible, como se muestra en este Instructable. Cables se ruido en ellas de los motores y la comunicación serial se producirá un error. TODOS LOS CABLES DEBEN SER TORCIDOS Y LO MUY CORTOS!!
- Las resistencias que se muestra en el esquema se han añadido.
- La MPU6050 Accel/Gyro es instalado y orientado como se muestra en el Instructable.
- El interruptor de inclinación es para ajustes de menor comodidad. No la utilice para la afinación. Acabo de probar inclinando el tablero hacia adelante y hacia atrás mientras que la Junta está equilibrada en un cubo o un taburete.
- Asegúrese de esperar al menos 5 segundos después de la energía para el MPU6050 para calibrar internamente.
- Asegúrese de que las pilas son nuevas. Cada batería debe medir por lo menos 12V cuando no bajo carga. Si no es así, reemplace las baterías.
Esto es opcional para la depuración
Arduino serie Monitor
Abra al Monitor de Arduino Serial. Set de 115.200 baudios
El código tiene esta línea:
Serial.Begin(115200); inicializar I2C y serie monitor a 115.200 baudios
Para habilitar la impresión en el monitor serial, cambialo a un 1:
#define DEBUG_ENABLE_PRINTING 0 //normal
Si usted está para arriba en un balde, para evitar mantener oprimido el interruptor de hombre muerto, cambialo a un 1:
#define DEBUG_FORCE_DEADMAN_SWITCH 0 //normal
Basta con mirar el monitor de serie y no tiene los motores funcionando, ajuste este parámetro a un 1:
#define DEBUG_DISABLE_MOTORS 0 //normal
Vuelva a compilar.
La pantalla del monitor serial debe salida algo como esto:
Inicialización de dispositivos I2C...
Prueba conexiones de dispositivo...
MPU6050 conexión successfulI
Inicializando el DMP...
DMP que permite...
Que permite la detección de la interrupción (interrupción externa 0 de Arduino)...
DMP listo! Esperando primera interrupción...
NOTA:
Si se enciende DEBUG_ENABLE_PRINTING y aparece un mensaje que dice: "1024 mpuIntStatus: desbordamiento de 19FIFO!", no se preocupe por él. Es causada por el hecho de que la impresión de mensajes es una tarea relativamente lenta para el procesador de Arduino. Mientras está ocurriendo esta impresión, el lazo de control que trata de extraer datos de accell/gyro de la cant de MPU6050 mantenerse. Finalmente, el FIFO con estos datos en la MPU6050 tiene demasiados datos o se desborda. El FIFO se recuperará. Cuando termines con debug, desactivar la bandera DEBUG_ENABLE_PRINTING.
Osciloscopio:
Si desea observar el "tiempo de bucle" del código de Arduino, puede utilizar un osciloscopio para hacer esto. Debe ser alrededor de 10Hz o 10 veces por segundo.
- Conectar una sonda alcance al Arduino pin 3. Conectar la tierra también.
- Comentario de las Naciones Unidas esta líneas en el código: / / digitalWrite (oscopePin, HIGH);
- Vuelva a compilar.
Para ajustar el ángulo de inclinación de base en el código:
Si los poderes de la Junta para arriba y quiere sentarse en un ángulo extraño, puede utilizar el interruptor de inclinación para retocarlo o puedes hacer un código cambiar para retocarlo permanentemente:
Busque esta línea en el código y modifique el número 80 que usted desee:
Sensor inclinación número abajo se determina experimentalmente. Más grande es más inclinada hacia adelante. Necesita cambiar si ajusta ANGLE_GAIN. x_accdeg = (float) ((SG_filter_result - (80 + balancetrim)) * (1,0));