Realtidsplotter för att felsöka sensorer

Att felsöka sensorer på en mikroprocessor kan vara tidskrävande och det vanligaste tillvägagångssättet är att skicka sensorvärdena till en terminal. Realtidsplottning är ett bättre och mer visuellt sätt att göra samma sak.

RealtimePlotterProcessing

  • Uppdaterar plot i realtid medan det fortfarande behandlas av mikroprocessorn
  • Plottar realtidsdata från seriell port. Mikroprocessorval spelar ingen roll så länge den kan skicka seriell data till datorn.
  • 6 kanaler för data (kan utökas i koden om nödvändigt)
  • Stapeldiagram i realtid
  • Linjediagram i realtid
  • Du skickar bara de data som du vill felsöka med ett blanksteg som avgränsare såhär ”värde1 värde2 värde3 värde4 värde5 värde6”. Flyttal eller heltal spelar ingen roll.
  • Öppen källkod
  • Robust. Det kommer inte att krascha på grund av skadad dataström eller liknande.
  • Multi plattform Java. Testad på OSX och Windows 8 (och bör fungera på Linux också).

Jag skapade denna programvara för att felsöka en Arduino Due på min självbalanserande robot. För att ställa in regleringen av roboten behövde jag snabb feedback för att veta om jag gör framsteg eller inte. Videon nedan visar typisk användning av mjukvaran och fungerar därför som ett exempel:

Hämta

Hämta

Följ projektet på Github. Om du gör förbättringar till källkoden, vänligen dela det genom att göra en pull-begäran på Github.

Installera och använda

Eftersom jag har en Arduino kommer jag använda det som exempel men nästan alla mikroprocessorer ska fungera.

  1. Ladda ner ProcessingIDE att köra koden. Det är en trevig och användbar IDE för att göra grafiska grejer.
  2. Hämta controlP5 gui bibliotek och packa upp den till mappen för Processing libraries
  3. Anslut Arduino till usb eller seriell port på datorn.
  4. Ladda upp exempelkod (RealtimePlotterArduinoCode) till Arduino
  5. Kontrollera seriel monitor (vid 115200) och kontrollera att den matar ut data i format ”värde1 värde2 värde3 värde4 värde5 värde6”.
  6. Stäng den serial monitor (eftersom endast en resurs kan använda den seriella porten på samma gång).
  7. Öppna Processing skiss och redigera namnet seriell port ska motsvara den faktiska porten (”COM3”, ”COM5”, ”/dev/tty.usbmodem1411” eller vad du har)
  8. Kör koden

Avancerad användning

Realtime plottern kan utvidgas till att också skicka kommandon till mikroprocessorn. Det vanliga tillvägagångssättet vid programmering av mikroprocessorer är att ange några parametrar i början av koden, ladda upp dem till processorn, se resultatet, ändra parametrar igen, ladda upp, och så vidare tills tillfredsställande prestanda uppnås. Denna iterativa process tar mycket tid och det är bättre att skicka uppdaterade parametrar till mikroprocessorn från datorn via seriell data. Till exempel jag behövde ställa in några parametrar på min robot och skapade en panel med kommandon som körs parallellt med realtime plottern. För varje ändring i parametrarna kan jag omedelbart se resultatet. Exempelkoden i detta ligger i /RealtimePlotterWithControlPanel.

RealtimePlotterProcessingWithControlPanel

(Mer info på http://sebastiannilsson.com)

Indie- och maker-fika på torsdag

CRF_Main
Hackers, makers och gingerbread bakers!
Indie devs och andra personer!

Nu är det dags för IMF på CRF! (Indie & Makerfika på Chalmers Robotförening!)

Vi träffas på Chalmers Robotförening och fortsätter forma vårt nätverk med hjälp av fikans magiska kraft! Välkomna!

När: Torsdag 2013-12-05 18:00
Var: Sven Hultins Gata 8. vägbeskrivning: http://chalmersrobotics.se/?page_id=239
Lägg till i min kalender