Jump to content

strex

Members
  • Gesamte Inhalte

    26
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von strex

  1. Hi Leute, ich bastel gerade an meinem autonomen Rover auf Basis der Tinkerforge Module. Verbaut sind aktuell IR Sensoren, 2x DC Bricks, 1x Step-down, 1x Master 2.0, Wifi Extension und ein IO-16 Bricklet. Derzeit möchte ich den Rover mit weiteren Sensoren wie etwa Ultraschall, Kollisions- und Crash Sensoren ausstatten. Die IR Sensoren reichen nicht um alles zu detektieren besonders in weiterer Entfernung (3 bis 6 Meter). Da bin ich auf die Idee gekommen die Ultraschall Sensoren aus den Arduino Part zu benutzten. Etwa den SRF04, SRF05 oder SRF08, die per TTL angesteuert werden können. Das funktionieren an sich auch sehr gut, leider ist aber Java nicht in der Lage innerhalb von Mikrosekunden zu arbeiten, so das die Pulse nicht korrekt vom IO-16 Bricklet gelesen werden können. Bis der Interrupt aus dem Listener kommt und der Start Timer gestartet wurde, vergeht einfach ein paar Millisekunden und die Messung wird ungenau oder verpasst gar einen Impuls (zweiter Interrupt). Auch kann die Zeit zwischen Interrupts des Bricklets nur auf maximal 1ms gesenkt werden. Das ist schon zu viel, Mikrosekunden werden benötigt. Eventuell wäre es doch interessant das IO-16 Bricklet so zu erweitern, dass ein Listener abgesetzt werden kann der bei einem Impuls ausgelöst wird und gleichzeitig nicht nur der "interrupt(char port, short interruptMask, short valueMask)" ausgelöst wird, sondern ein Listener "interrupt(char port, short interruptMask, short valueMask, long pulseLength)" der auch die Zeit liefert (Microsekunden) vom Microkontroller. Der Interrupt wird also erst ausgelöst nachdem die Flanke wieder auf Low gewechselt hat. Sonst einer eine Idee wie man sonst die Messung bewerkstelligen könnte, aktuell gibt es ja leider nur wenig Sensoren?
×
×
  • Neu erstellen...