Stap 35: Optioneel: Debug
Voordat u begint met het debuggen, controleert u het volgende:
- Alle bedrading is zo kort mogelijk, zoals aangegeven in dit Instructable. Lange draden krijgt lawaai op hen van de motoren en de seriële communicatie zal mislukken. ALLE DRADEN MOETEN WORDEN GEDRAAID EN ZEER KORT GEHOUDEN!!
- De weerstanden aangegeven in het schematische bijgekomen.
- De MPU6050 Accel/Gyro is geïnstalleerd en gericht zoals aangegeven in de Instructable.
- De schakeloptie tilt is voor kleine comfort aanpassingen. Gebruik het niet voor de tuning. Probeer enkel kantelen van de boord heen en weer, terwijl de Raad van bestuur is evenwichtig in een emmer of ontlasting.
- Zorg ervoor dat ten minste 5 seconden nadat de stroom voor de MPU6050 intern kalibreren.
- Controleer of dat uw batterijen zijn vers. Elke batterij dient ten minste te waarderen 12V wanneer niet onder belasting. Als dat niet het geval is, vervang uw batterijen.
Dit is optioneel voor debug
Arduino Serial Monitor
Open de Arduino Serial Monitor. Instellen voor 115.200 baud
De code heeft deze regel in:
Serial.begin(115200); initialiseren van de I2C en seriële monitor tot 115.200 baud
Als u wilt afdrukken naar de seriële monitor inschakelen, stelt u dit op een 1:
#define DEBUG_ENABLE_PRINTING 0 //normal
Als u omhoog op een emmer, om te voorkomen dat het bedrijf de deadman-switch, stelt u dit op een 1:
#define DEBUG_FORCE_DEADMAN_SWITCH 0 //normal
Kijk maar naar de seriële monitor en hebben niet de motoren uitgevoerd, stelt u dit op een 1:
#define DEBUG_DISABLE_MOTORS 0 //normal
opnieuw te compileren.
De seriële beeldscherm moet output zoiets als dit:
Initialiseren I2C apparaten...
Testen Apparaatverbindingen...
MPU6050 verbinding successfulI
DMP initialiseren...
DMP inschakelen...
Inschakelen detectie van de interrupt (Arduino externe interrupt 0)...
DMP klaar! Wachten op eerste interrupt...
OPMERKING:
Als u DEBUG_ENABLE_PRINTING inschakelen en een bericht ziet dat zegt: "mpuIntStatus van de 1024: 19FIFO overloop!", maak je geen zorgen over het. Het wordt veroorzaakt door het feit dat het afdrukken van berichten een relatief langzame taak voor de Arduino-processor is. Terwijl deze afdrukken zich voordoet, de controle-lus die probeert te accell/gyro gegevens ophalen uit de MPU6050 schuin houden. Uiteindelijk, de FIFO houden deze gegevens in de MPU6050 heeft teveel gegevens of overloopt. De FIFO zal herstellen. Wanneer u klaar bent met de foutopsporing, uitschakelen van DEBUG_ENABLE_PRINTING vlag.
Oscilloscoop:
Als u bekijken van de "tijd van de lus" van de Arduino-code wilt, kunt u een oscilloscoop om dit te doen. Het moet ongeveer 10Hz of 10 keer per seconde.
- Haak een sonde van de werkingssfeer tot Arduino pin 3. Sluit de grond zo goed.
- Un-comment dit in de code lijnen: / / digitalWrite (oscopePin, hoge);
- opnieuw te compileren.
De basis tilt hoek in de code aanpassen
Als de Raad bevoegdheden op en de wil om te zitten onder een vreemde hoek, kunt u de schakeloptie tilt tweak het of, kunt u een code wijzigen om permanent tweak het maken:
Kijk voor deze regel in de code en wijzig de 80 aan wat u wilt:
Sensor tilt artikelnummer is experimenteel vastgesteld. Groter wordt meer bewogen voorwaarts. Het moet veranderen als u ANGLE_GAIN aanpassen. x_accdeg = (float) ((SG_filter_result - (80 + balancetrim)) * (1.0));