Auf dieser Seite wird beschrieben, wie Sie den Android 13-Controller zusammenbauen, der die Bewegung für einen Sensor-Fusion-Prüfstand und die Beleuchtung für ITS-in-a-box steuert. Der Sensor-Fusionstest ist Teil der Camera Image Test Suite (Camera ITS) in der Compatibility Test Suite (CTS). Mit dem Controller für Android 13 können Sie die Beleuchtung und den Servomotor für Testszenen steuern, die eine Rotation und Beleuchtungssteuerung erfordern.
Controller-Übersicht für Android 13
ITS-in-a-box bietet eine einheitliche Testumgebung mit einem festen Abstand zwischen dem Testtablet und dem Testsmartphone sowie eine einheitliche Beleuchtung ohne externe Lichtquelle. Der Android 13-Controller automatisiert sowohl die Servosteuerung als auch die Beleuchtungssteuerung. Dadurch ist es nicht mehr erforderlich, das zu testende Gerät für Sensor-Fusion-Szenentests manuell zu drehen und für Tests mit Beleuchtungssteuerung die Beleuchtung manuell ein- und auszuschalten.
Servo- und Beleuchtungssteuerung in Prüfständen
Das Sensor-Fusion-Testgerät sorgt für eine gleichbleibende Bewegung des Smartphones, um reproduzierbare Tests zu ermöglichen. Das Smartphone wird vor einem Schachbrettmuster gedreht, um Bilder aus verschiedenen Positionen aufzunehmen. Beim Test test_sensor_fusion dreht das Servo das Smartphone in etwa 2 Sekunden um 90° um die Achse des Kamerazentrums und wieder zurück. Bei test_video_stabilization dreht das Servo das Smartphone wiederholt um 10 Grad um die Achse des Kamerazentrums und zurück, um die Bewegung des Smartphones beim Aufnehmen eines Videos während des Gehens zu simulieren. Abbildung 1 zeigt zwei Smartphones, die sich in einem Sensorfusions-Prüfstand bewegen. Abbildung 2 zeigt ein Smartphone, das sich in einer Sensor-Fusion-Testvorrichtung bewegt.
Abbildung 1. Bewegung des Smartphones im Prüfstand für test_sensor_fusion
Abbildung 2: Bewegung des Smartphones in der Testvorrichtung für test_video_stabilization
Servomotorsteuerung
Die analogen Servomotoren im Prüfstand sind Positionsservos, die über die Pulsweitenmodulation (PWM) gesteuert werden. Ein typisches Beispiel für eine Positionskontrolle ist in Abbildung 3 dargestellt. Das Steuersignal hat eine Periode von 20 ms. Wenn Sie die Impulsbreite auf die Mindestbreite ändern, wird der Motor in die neutrale Position bewegt. Wenn Sie die Impulsbreite auf die maximale Breite ändern, wird der Motor um 180 Grad im Uhrzeigersinn gedreht.
Abbildung 3: Typische Beschreibung der Servosteuerung
Beleuchtungssteuerung
Um die Bewegung des Servomotors und die Lichter über einen Hostcomputer zu steuern, ist für den Sensorfusions-Prüfstand eine USB-Verbindung erforderlich. Der Android 13-Controller verwendet ein über USB verbundenes Arduino UNO R3-Board mit einem benutzerdefinierten Routing-Board (oder Shield), das oben montiert ist. Der Android 13-Controller kann bis zu drei Rotator-Servos für Sensor-Fusion-Rigs und bis zu drei ITS-in-a-box-Beleuchtungssysteme oder ein Sensor-Fusion-Rig von einem einzelnen Hostcomputer aus steuern.
Mit dem Controller für Android 13 in Revision 3.0 können Nutzer das automatische Zurücksetzen deaktivieren, wenn der serielle Arduino-Port über USB geöffnet wird. Die automatische Rücksetzfunktion wird aktiviert, wenn der Controller an einen anderen Host angeschlossen oder für andere Testläufe verwendet wird. Nutzer können die automatische Rückstellung über einen physischen Schalter am Controller aktivieren oder deaktivieren.
Der Android 13-Controller kann mit jeder Camera ITS-in-a-box verwendet werden. Der Android 13-Controller kann mit jeder Camera ITS-in-a-box (RFoV, WFoV, Modular) oder Sensor Fusion-Box verbunden werden, um Tests mit kontrollierter Beleuchtung durchzuführen. Ab Android 15 sind alle Tests mit kontrollierter Beleuchtung in scene_flash enthalten und können mit der Sensor-Fusion-Box ausgeführt werden, mit Ausnahme von scene_low_light. Für diesen Test ist ein Tablet zur Diagrammdarstellung erforderlich und er muss mit Camera ITS-in-a-box ausgeführt werden.
Für Tests in scene_flash und scene_low_light ist eine dunkle Umgebung mit ausgeschalteter Beleuchtung erforderlich, um die automatische Blitzfunktion auf Testgeräten auszulösen. Abbildung 4 zeigt, wie die Lichter in ITS-in-a-box vom Android 13-Controller ein- und ausgeschaltet werden.
Abbildung 4: Lichter für test_auto_flash aus- und eingeschaltet
Überarbeitungsverlauf
In der folgenden Tabelle wird der Überarbeitungsverlauf des Controllers für Android 13 beschrieben. Außerdem sind Downloadlinks für die Produktionsdateien der einzelnen Versionen enthalten.
| Datum | Revision | Download von Produktionsdateien | Änderungsprotokoll |
|---|---|---|---|
| August 2024 | 3 |
|
|
| Dezember 2022 | 2.2 |
|
|
| März 2022 | 1 |
|
Controller-Einrichtung unter Android 13
In diesem Abschnitt wird beschrieben, wie du einen Controller für Android 13 einrichtest.
Erforderliche Komponenten
Sie können den Android 13-Controller bei einem unserer qualifizierten Anbieter kaufen oder ihn selbst erstellen. Die Produktionsdatei besteht aus einer PCB-Gerber-Datei, der PCB-Stückliste, Informationen zur PCB-Platzierung und einer STEP-Datei für das Gehäuse. Informationen zum Herunterladen der Produktionsdatei finden Sie in der Tabelle im Überarbeitungsverlauf.
Wenn Sie einen eigenen Controller erstellen, benötigen Sie ein Arduino UNO R3-Board. Wenn Sie den Controller über einen qualifizierten Anbieter kaufen, ist das Arduino im Lieferumfang enthalten.
Das Controllergehäuse für Android 13 ist eine optionale, aber empfohlene Komponente, die den Controller schützt und ungenutzte USB-Anschlüsse abdeckt, um Einrichtungsfehler zu vermeiden. Weitere Informationen zu Preisen und Optionen für den Controller erhalten Sie von einem qualifizierten Anbieter.
Einrichtung
So richten Sie den Controller für Android 13 ein:
Schließen Sie die 12‑V-Adapter (für die Beleuchtung) und die 5‑V-Adapter (für den Servo) an die entsprechenden Strombuchsen an (Abbildung 5).
Abbildung 5: Standort des Netzteils
Verbinden Sie die Leuchten Ihrer ITS-in-a-box oder Sensor Fusion Box mit einer der Buchsen für den Lichtkanal (Abbildung 6). Verwenden Sie je nach Fassung der Beleuchtung ein geeignetes Netzteil (Abbildung 7).
Abbildung 6. Speicherort der Ausgabe von Beleuchtungskanälen
Abbildung 7. Adapter, der die Stromversorgung der Beleuchtung mit dem Controller verbindet
Um die Sensor-Fusion-Szenen einzurichten, verbinden Sie das Servo mit einem der Servo-Kanal-Anschluss-Header.
Abbildung 8. Standort der Servoverbindung
Bei Controllern der Revision 3.0 muss der automatische Rücksetzschalter auf
Enableeingestellt sein, wenn der Controller mit einem neuen Host verbunden wird.Die Version 3.0 des Controllers ist mit einem automatischen Rücksetzschalter ausgestattet, der aktiviert oder deaktiviert werden kann. Wir empfehlen, beim Testen den Schalter für das automatische Zurücksetzen auf
Disablezu stellen, damit nicht alle Lichter zu Beginn jedes Tests kurz ausgehen, wennits_base_testdie Kommunikation mit dem Arduino-Controller herstellt. Dies ist entscheidend, wenn parallele Tests durchgeführt werden (ITS-Tests werden gleichzeitig mit dem Beleuchtungssystem des Prüfstands ausgeführt, das mit derselben Steuerung verbunden ist).
Abbildung 9. Schalter für automatisches Zurücksetzen
Verbinde den Controller über ein USB‑A-Kabel mit dem Host.
Abbildung 10. USB‑A-Anschluss zum Host
Abbildung 11 zeigt ein Beispiel für eine abgeschlossene Einrichtung eines Controllers für Android 13 für ein Beleuchtungssystem und ein Servo.
Abbildung 11. Controller-Einrichtung unter Android 13 abgeschlossen
Softwaresteuerung durch den Organisator
Mikrocode kann auf den UNO heruntergeladen werden, um die PWM-Pins den Motorsignalen zuzuweisen und die Impulsbreitenbereiche für verschiedene Winkel zu definieren. Der Mikrocode für die Servorotationssteuerung der sechs HS-755MB-Motoren ist unter Weitere Ressourcen verfügbar. Dieser Abschnitt enthält auch einen Link zu einem einfachen Programm namens rotator.py, das die Servos dreht.
Android 13-Controller verwenden
Verwendung von Camera ITS:
python tools/run_all_tests.py device=device_id camera=0 rot_rig=arduino:1 scenes=sensor_fusion
Mit enthaltenem Testskript:
python rotator.py --ch 1 --dir ON --debug