Rideable Segway klon - låg kostnad och enkel Build (35 / 38 steg)
Steg 35: Tillval: Debug
Innan du börjar felsöka, kontrollera följande:
- Alla ledningar är så kort som möjligtsom visas i detta Instructable. Långa ledningar får buller på dem från motorerna och seriell kommunikation misslyckas. ALLA LEDNINGAR MÅSTE VARA TWISTED OCH HÅLLAS MYCKET KORT!
- Motstånden visas i den schematiska har lagts till.
- MPU6050 Accel/Gyro är installerat och orienterade som visas i Instructable.
- Tilt är mindre komfort justeringar. Använd inte det för trimma. Bara försöka luta styrelsen fram och tillbaka medan styrelsen är balanserade på en hink eller pall.
- Se till att vänta i minst 5 sekunder efter makt upp för MPU6050 internt kalibrera.
- Kontrollera att batterierna är färska. Varje batteri bör mäta minst 12V när inte under belastning. Om inte, Byt ut batterierna.
Detta är frivilligt för debug
Arduino följetong Monitor
Öppna den Arduino följetong bildskärmen. Ställa in den för 115,200 baud
Koden har denna linje i den:
Serial.BEGIN(115200); initiera I2C och seriell övervaka till 115,200 baud
Aktivera utskrift till seriell monitor, ange detta till 1:
#define DEBUG_ENABLE_PRINTING 0 //normal
Om du är upp på en hink, för att undvika håller växeln deadman ange detta till 1:
#define DEBUG_FORCE_DEADMAN_SWITCH 0 //normal
Att bara titta på den seriella monitorn och inte har motorerna körs, anger detta till en 1:
#define DEBUG_DISABLE_MOTORS 0 //normal
kompilera om.
Seriella bildskärmen bör utgång ungefär så här:
Initierar I2C enheter...
Testa enhetsanslutningar...
MPU6050 anslutning successfulI
initierar DMP...
Att aktivera DMP...
Att aktivera avbrott upptäckt (Arduino externa avbrott 0)...
DMP redo! Väntar på första avbrott...
OBS:
Om du slår på DEBUG_ENABLE_PRINTING och se ett meddelande som säger: "1024 mpuIntStatus: 19FIFO overflow!", oroa dig inte om det. Den orsakas av att skriva ut meddelanden är en relativt långsam aktivitet för Arduino processor. Medan denna utskrift sker, den kontrollerar kretsar som försöker dra accell/gyro data från MPU6050 cant hålla. Så småningom, FIFO håller dessa data i MPU6050 har för mycket data eller svämmar över. FIFO kommer att återhämta. När du är klar med debug, inaktivera DEBUG_ENABLE_PRINTING flagga.
Oscilloskop:
Om du vill följa "loop tiden" av Arduino koden, kan du använda ett oscilloskop för att göra detta. Det bör vara runt 10Hz eller 10 gånger per sekund.
- Koppla en scope sond till Arduino stift 3. Ansluta marken också.
- O-kommentera detta fodrar i koden: / / digitalWrite (oscopePin, hög);
- kompilera om.
Justera bas tilt vinkeln i koden:
Om styrelsen Talenten upp och vill sitta i en konstig vinkel, du kan använda växeln tilt till tweak den eller, du kan göra en kod ändras permanent tweak det:
Leta efter raden i koden och modifiera den 80 antalet till vad du vill:
Sensor tilt numret nedan bestäms experimentellt. Större lutas mer framåt. Det måste förändras om du justerar ANGLE_GAIN. x_accdeg = (float) ((SG_filter_result - (80 + balancetrim)) * (1.0));