Android 13-Controller

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.

Bewegung des Smartphones im Testgestell

Abbildung 1. Smartphonebewegung im Testgestell für test_sensor_fusion

Bewegung des Smartphones im Testgestell

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.

Beschreibung der Servosteuerung

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.

Lichtsteuerung in ITS-in-a-Box

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
  • Es wurde eine automatische Bypass-Funktion hinzugefügt, damit die Lampen während der Kommunikation mit dem DUT nicht umgeschaltet werden.
Dezember 2022 2,2
  • Option zum Bestellen einer befüllten Leiterplatte von EasyEDA hinzugefügt
  • Im Arduino-Mikrocode wurden unnötige Verzögerungen nach Servobewegungen entfernt.
  • Abstandhalter wurden von Metall auf Nylon umgestellt
  • Durchgangsloch-MOSFETs wurden durch SMD-MOSFETs ersetzt
  • Kondensator von 10 µF auf 1.000 µF geändert
März 2022 1
  • Eine neue Funktion zur Steuerung der Beleuchtung wurde hinzugefügt.
  • Von 6 zu 3 Servo-Steuerungen geändert

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:

  1. 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).

    Standort des Netzteils

    Abbildung 5. Standort des Netzteils

  2. 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).

    Ort der Beleuchtungsleistung

    Abbildung 6 Speicherort für die Ausgabe von Beleuchtungskanälen

    Adapter von 3,5-mm-Stecker (1,35 mm) auf 5,5-mm-Buchse (2,1 mm)

    Abbildung 7: Adapter, der die Stromversorgung der Beleuchtung mit dem Controller verbindet

  3. Verbinden Sie den Servo mit einem der Verbindungsheader des Servokanals, um die sensor_fusion-Szenen einzurichten.

    Standort der Servokanalverbindung

    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, da Disable 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).

    Standort automatisch zurücksetzen

    Abbildung 9. Schalter für automatisches Zurücksetzen

  4. Verbinden Sie den Controller über ein USB-A-Kabel mit dem Host.

    USB-A-Anschluss

    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.

USB-A-Anschluss

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