[Paul] skrev inn for å fortelle oss om noen interessante Arduino latensproblemer han hjalp spiker ned og fikse på Arduino.

Det ser ut til at [Michu] hadde noen problemer med å kontrollere hans Rainbowduino-prosjektet vi kjennetegnet tidligere i år, og han kunne ikke helt finne ut hvorfor han opplevde slike store forsinkelser når han sendte og motta data.

Søker på nettet for svarene dukket opp svært lite, og fordi [Michu] brukte behandlingen, utviklet paret et sett med tester for å se hvilken type latens som ble introdusert av Java. Pitting en Arduino Uno og en Arduino fra 2009 mot en Teensy 2.0, testene målte latensen av innfødte dataoverføringer versus overføringer tilrettelagt av Java gjennom RXTX-biblioteket det bruker for seriell kommunikasjon.

Resultatene var ganske fantastiske. Mens begge arduinosene forsvant bak Teensy av et langt skudd, var deres latensverdier under Java alltid 20ms på et minimum – noe ikke legge til. [Michu] Poked rundt i RXTX-koden og fant et mysterium 20ms forsinkelse som er programmert i seriellbiblioteket. Det gjorde ingen mening for ham, så han endret forsinkelsen til 2ms og så en drastisk økning i ytelsen når de overførte mindre enn 128 byte data.

Parets fiksering ser ikke ut til å påvirke latency når større mengder data (> 1KB) overføres, men det gjør en verden av forskjell når man manipulerer mindre deksler av data.

For avslørings skyld bør det bemerkes at [Paul’s] -selskapet produserer Teensy MCU.

Leave A Comment

Recommended Posts