Auf dieser Seite wird beschrieben, wie Sie den Android 13-Controller zusammenbauen, der die Bewegung eines Sensorfusions-Teststands und die Beleuchtung für ITS-in-a-Box steuert. Der Sensorfusionstest ist Teil der Camera Image Test Suite (Camera ITS) in der Compatibility Test Suite (CTS). Der Android 13-Controller ermöglicht die Automatisierung, da er die Rig-Beleuchtung und den Servomotor für Testszenen steuert, die eine Dreh- und Beleuchtungssteuerung erfordern.
Android 13-Controller – Übersicht
ITS-in-a-Box bietet eine einheitliche Testumgebung mit einem festen Abstand zwischen dem Testtablet und dem Testsmartphone sowie eine gleichmäßige Beleuchtung ohne externe Lichtquelle. Der Android 13-Controller automatisiert sowohl die Servosteuerung als auch die Beleuchtungssteuerung. Außerdem muss das Testgerät für Sensorfusions-Szenentests nicht mehr manuell gedreht und die Beleuchtung für beleuchtungsgesteuerte Tests nicht mehr manuell ein- und ausgeschaltet werden.
Servo- und Beleuchtungssteuerung in Testaufbauten
Das Sensorfusionstestgerät sorgt für eine feste Bewegung des Smartphones, um reproduzierbare Tests zu ermöglichen. Das Smartphone wird vor einem Schachbrettmuster gedreht, um Bilder an verschiedenen Positionen aufzunehmen. Bei test_sensor_fusion dreht der Servo das Smartphone in etwa 2 Sekunden um 90 Grad um die Kameraachse und wieder zurück. Bei test_video_stabilization dreht der Servo das Smartphone um die Kamera-Mittelachse um 10 Grad und wieder zurück, um die Bewegung des Smartphones beim Aufnehmen eines Videos beim Gehen nachzuahmen. Abbildung 1 zeigt zwei Smartphones, die sich in einem Sensorfusionstestgerät bewegen. Abbildung 2 zeigt ein Smartphone, das sich in einem Sensorfusionstestgerät bewegt.
Abbildung 1. Smartphonebewegung im Testgestell für test_sensor_fusion
Abbildung 2. Bewegung des Smartphones auf dem Prüfstand für test_video_stabilization
Servomotorsteuerung
Die analogen Servomotoren im Testgestell sind Positionsservos, die über eine Pulsweitenmodulation (PWM) gesteuert werden. Ein typisches Beispiel für eine Positionssteuerung ist in Abbildung 3 dargestellt. Das Steuersignal hat eine Periode von 20 ms. Wenn Sie die Pulsbreite auf die minimale Breite ändern, wird der Motor in die neutrale Position verschoben und durch Ändern der Pulsbreite auf die maximale Breite wird der Motor um 180 Grad im Uhrzeigersinn bewegt.
Abbildung 3 Beschreibung einer typischen Servosteuerung
Beleuchtungssteuerung
Damit die Bewegung des Servomotors und die Beleuchtung über einen Hostcomputer gesteuert werden können, benötigt das Sensorfusionstestgerät eine USB-Verbindung. Der Android 13-Controller verwendet ein USB-angeschlossenes Arduino UNO R3-Board mit einem benutzerdefinierten Routing-Board (oder Shield) oben. Der Android 13-Controller kann bis zu drei Rotatorservos für Sensorfusions-Rigs und bis zu drei ITS-in-a-Box-Beleuchtungssysteme oder ein Sensorfusions-Rig von einem einzigen Hostcomputer aus steuern.
Mit der Version 3.0 des Android 13-Controllers können Nutzer den automatischen Neustart deaktivieren, wenn der Arduino-Serienport über USB geöffnet wird. Die Funktion zum automatischen Zurücksetzen ist aktiviert, wenn der Controller an einen anderen Host angeschlossen oder für andere Testfälle verwendet wird. Nutzer können das automatische Zurücksetzen ü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 jedem ITS-in-a-Box für Kameras (RFoV, WFoV, modular) oder Sensor Fusion verbunden werden, um beleuchtungsgesteuerte Tests durchzuführen. Ab Android 15 sind alle von der Beleuchtung abhängigen Tests in scene_flash enthalten und können mit dem Sensorfusions-Box ausgeführt werden, außer scene_low_light, für das ein Tablet zur Darstellung von Diagrammen erforderlich ist und das mit dem Kamera-ITS-in-a-Box ausgeführt werden muss.
Für Tests unter scene_flash und scene_low_light ist eine dunkle Umgebung mit ausgeschalteten Lampen erforderlich, um die automatische Blitzfunktion auf den Test-Smartphones auszulösen. Abbildung 4 zeigt, wie die Lampen in ITS-in-a-Box vom Android 13-Controller ausgeschaltet und eingeschaltet werden.
Abbildung 4 Lampen werden für test_auto_flash aus- und eingeschaltet
Überarbeitungsverlauf
In der folgenden Tabelle wird der Änderungsverlauf des Android 13-Controllers beschrieben. Außerdem enthält sie Downloadlinks zu jeder Version der Produktionsdateien.
Datum | Revision | Download der Produktionsdatei | Änderungsprotokoll |
---|---|---|---|
August 2024 | 3 |
|
|
Dezember 2022 | 2,2 |
|
|
März 2022 | 1 |
|
Controller-Einrichtung unter Android 13
In diesem Abschnitt wird beschrieben, wie Sie einen Android 13-Controller einrichten.
Erforderliche Komponenten
Sie können den Android 13-Controller bei einem unserer qualifizierten Anbieter kaufen oder selbst erstellen. Die Produktionsdatei besteht aus einer PCB-Gerber-Datei, der PCB-Materialliste (Bill of Materials, Stückliste), Informationen zur PCB-Platzierung und einer STEP-Datei im Gehäuse. Informationen zum Herunterladen der Produktionsdatei finden Sie in der Tabelle unter Überarbeitungsverlauf.
Wenn Sie Ihren eigenen Controller erstellen, benötigen Sie eine Arduino UNO R3-Platine. Wenn Sie den Controller bei einem qualifizierten Anbieter kaufen, ist Arduino im Lieferumfang enthalten.
Das Gehäuse für den Android 13-Controller ist eine optionale, aber empfohlene Komponente, die den Controller schützt und nicht verwendete USB-Anschlüsse blockiert, um Einrichtungsfehler zu vermeiden. Informationen zu Preisen und Optionen für den Controller erhalten Sie von einem qualifizierten Anbieter.
Einrichtung
So richten Sie den Android 13-Controller ein:
Schließen Sie die 12‑V-Adapter (für die Beleuchtung) und die 5‑V-Adapter (für die Servos) an die entsprechenden Stromanschlüsse an (Abbildung 5).
Abbildung 5. Standort des Netzteils
Schließen Sie die ITS-in-a-Box- oder Sensor Fusion-Box-Lampen an eine der Ausgangsbuchsen des Beleuchtungskanals an (Abbildung 6). Verwenden Sie je nach Nutzung der Beleuchtungsleistung einen Adapter (Abbildung 7).
Abbildung 6 Speicherort für die Ausgabe von Beleuchtungskanälen
Abbildung 7: Adapter, der die Stromversorgung der Beleuchtung mit dem Controller verbindet
Verbinden Sie den Servo mit einem der Verbindungsheader des Servokanals, um die sensor_fusion-Szenen einzurichten.
Abbildung 8. Servoanschluss
Bei Controllern der Version 3.0 muss der Schalter für den automatischen Neustart auf
Enable
gestellt sein, wenn der Controller mit einem neuen Host verbunden wird.Bei Version 3.0 ist der Controller mit einem Schalter für den automatischen Neustart ausgestattet, der aktiviert oder deaktiviert werden kann. Wir empfehlen, den Schalter für den automatischen Reset während des Tests auf
Disable
zu stellen, damit zu Beginn jedes Tests nicht alle LEDs kurzzeitig ausgeschaltet werden, daDisable
die Kommunikation mit dem Arduino-Controller herstellt.its_base_test
Dies ist wichtig, wenn parallele Tests ausgeführt werden (ITS läuft gleichzeitig mit dem Beleuchtungssystem des Teststands, das mit demselben Controller verbunden ist).Abbildung 9. Schalter für automatisches Zurücksetzen
Verbinden Sie den Controller über ein USB-A-Kabel mit dem Host.
Abbildung 10. USB-A-Anschluss zum Host
Abbildung 11 zeigt ein Beispiel einer fertigen Android 13-Controller-Einrichtung für ein Beleuchtungssystem und einen Servo.
Abbildung 11. Controller-Einrichtung für Android 13 abgeschlossen
Softwaresteuerung über den Host
Mikrocode kann in die UNO heruntergeladen werden, um die PWM-Pins den motorischen Signalen zuzuweisen und die Pulsbreitenbereiche für verschiedene Winkel zu definieren. Der Mikrocode zur Steuerung der Servorotation der sechs HS-755MB-Motoren ist unter Weitere Ressourcen enthalten. Dieser Abschnitt enthält auch einen Link zu einem einfachen Programm namens rotator.py
, mit dem die Servos gedreht werden.
Android 13-Controller verwenden
Nutzung von Kamera-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
Downloads der Softwaresteuerung
- Arduino-Mikrocode für Android 11 und höher
VarSpeedServo_and_lighting_control.ino
- Python-Kontrollcode-Testcode
rotator.py