|
||||||||||||||||
FT32Ausführliche Informationen, Bilder und Videos zum FT32-Projekt gibts es unter den folgenden hochschuleigenen Webseiten: FT32-Gründungsprojekt - Fischertechnik mit ESP32 (Gesamtweb): Fischertechnik mit ESP32 (Software HMI): Fischertechnik mit ESP32 (Software Queue und
HW-Controller): Fischertechnik mit ESP32 (Hardware): Erstellung der FT32 Mini-Hardware: Überarbeitung der FT32 Mini-Hardware - HWK2: ESP32
Ausführliche Informationen, Bilder und allerlei Programme zum
ESP32 gibt es unter folgendem hochschuleigenen Webseite: fischertechnik® - Fahrzeug Mini BotsAls Träger der hier entwickelten Positionserfassung dient ein Baukastenfahrzeug aus Fischertechnik Bauteilen. (Quelle: fischertechnik.de)
Die verwendeten Teile werden ausschließlich dem fischertechnik Mini Bots – Kasten entnommen, um mit der parallelen Unterrichtsentwicklung kompatibel zu bleiben.
Für dem Spursensor wurden mit einem Aufbau entsprechend der Anleitung des Baukastens Testfahrten durchgeführt: Testfahrten mit dem fischertechnik Mini Bots - Roboter (Quelle: eigene Aufnahme)
Hier ist zu sehen, dass der Spursensor nur auf ausreichend breite schwarze Linien auf weißem Untergrund reagiert.
Zu dünne Linien werden nicht erkannt. Eine Anwendung zur Positionserfassung wäre bedingt auf einem Schachfelduntergrund denkbar.
Maussensorik
Die Positionserfassung mit Computermäusen kann auf unterschiedlichen
Wegen erfolgen:
Im folgenden werden Projekte vorgestellt, welche verschiedene
Maussensoren untersuchen, auslesen und z.B. in Roboter
verwenden. ADNS3080 - Optical Flow Sensor
Konkrete Anwendung von Maussensorik zur
Positionserfassung findet beispielsweise mit dem Optical Flow Sensor
für Drohnen statt. Dieser verwendet den ADNS-3080 des damaligen
Herstellers Avago Technologies in Kombination mit einer Kameralinse.
Zur Positionserfassung wird das aufgenommene Bild Pixel für Pixel
verglichen, wobei hier anzumerken ist, dass im Bereich der Drohnen
sowohl die variierende Höhe als auch der Roll- und Neigungswinkel
während des Fluges in die Berechnung der neuen Position
miteinfließen müssen da ansonsten falsche Ergebnisse drohen. Des
Weiteren hat der Sensor wenn er alleine verwendet wird, Probleme mit
Drehbewegungen und er muss sich aufgrund des festen Fokus der Linse
mindestens in einer Höhe von 30 cm befinden. Objekte darunter werden
nicht richtig erfasst. Im Allgemeinen ist auch eine ausreichend
ausgeleuchtete Umgebung notwendig. Im folgenden Video ist dessen
Anwendung mit Anbindung an einen Arduino-Mikrocontroller
(vermutlich Arduino Uno) zu sehen: Optic Flow using ADNS-3080 (Quelle: YouTube-Kanal Omanshu Thapliyal)
Es ist zu sehen wie die Position in X- und Y-Richtung ermittelt und über ein Interface ausgegen wird. ADNS2051 Maussensor
Im folgenden Projekt
wurde ein ADNS2051 untersucht: homofaciens.de Computermaus als Bewegungssensor an einem Arduino Uno (Quelle: YouTube-Kanal HomoFaciens) Es ist zu sehen, wie die Werte der X- und Y-Koordinaten und Rohbilder des ADNS-2051 und im Falle der Kugelmaus nur die Werte der X- und Y-Koordinaten durch Anbindung an einen Arduino Uno ausgelesen und über ein Interface ausgegeben werden. Anzumerken sei hier, dass der Betreiber in beiden Fällen ein eigenes Programm zum auslesen der Koordinaten und Rohwerte geschrieben hat, in dem er auch einen eigenen seriellen Anschluss (ADNS-2051) sowie PS2-Anschluss (Kugelmaus) simuliert: homofaciens.de/download_ge.htm. Die Leitungen die von Mäsuen kommen, können somit an beliebigen digitalen Pins des Arduino angeschlossen werden. Folgendes Bild zeigt die Verdrahtung auf dem ADNS2051:
PAW3204DB-TJ3R MaussensorEin weiteres Projekt "Optical Mouse Robot" verwendet den Maussensor PAW3204DB-TJ3R in einem kleinen Fahrroboter. Auf dem folgenden Bild ist der Roboter von unten und der eingebaute Sensor mit der Linse (Mitte der Platine) zu sehen:
Wie auf dem Bild zu sehen ist, verwendet der Konstrukteur nur einen Maussensor der an der Vorderseite installiert wurde. Bei nur einem Sensor ist eine Platzierung vor oder hinter der Drehachse des Roboters unumgänglich, da ansonsten keine Drehung erfasst werden kann. Im folgenden Video ist zu sehen wie der Roboter auf einem Teppich fährt: Optical mouse robot moves on slippery rug (Quelle: YouTube-Kanal shmeebegk1) Es ist zu sehen wie der Roboter sich zuerst nach vorne bis an das andere Ende des Teppichs bewegt, anschließend dreht, zurückfährt, und sich zuletzt wieder dreht. Die Fahrt gerade aus und die Drehung um 180° funktionieren schon relativ gut. Zur Verbesserung der Genauigkeit könnte, wie in einem unserer Konzepte, die Verwendung eines zweiten Sensors sein. ESP32-Cam
Eine weitere Möglichkeit, die eigene Position zu erfassen
ist mit einer Kamera die Umgebung aufzunehmen und aus den
Einzelbildern die eigene Verschiebung zu berechnen. (Quelle: randomnerdtutorials.com) In den von Espressif bereitgestellten Codebeispielen findet sich auch eines für die Kamera: (Quelle: randomnerdtutorials.com) In diesem Code muss ab Zeile 9 das Kameramodell angepasst werden und in Zeile 14/15 der WLan-Name und das zugehörige Passwort eingegeben werden: (Quelle: Eigne Darstellung)
Um das Programm hochzuladen braucht man noch folgende Schritte: (Quelle: randomnerdtutorials.com)
Nach abgeschlossenem Hochladen muss das graue Jumper-Kabel
(welches GPIO 0 mit GND verbindet) entfernt und der ESP32-Cam
neu gestartet werden. Dann kann auf dem seriellen Monitor
(Baudrate: 115200) nach dem Hochfahren des ESP32-Cam die
IP-Adresse abgelesen werden. Einstellungswebseite des Beispielprogramms für den ESP32-Cam (Quelle: eigene Aufnahme) Wenn das Development Board nur über den FTDI-Programmer mit Spannung versorgt wird, passiert es häufig, dass die Spannung einbricht, bzw. dass der ESP32 in den Brownout fällt. Laut Datenblatt kann der verwendete FT232 FTDI-Programmer maximal 24mA ausgeben. Mit einer externen Spannungsversorgung, wie mit einem YwRobot Power Supply (siehe Bild unten links), welche mit 12V versorgt wird, kann deutlich mehr Strom ausgegeben werden (siehe Bild unten rechts). Laut Datenblatt lässt die externe Stromversorgung bis zu 700mA zu.
|
Mit Unterstützung von Prof. J. Walter | Sommersemester 2019 |