Controller für Android 13

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 durch Steuerung der Riggbeleuchtung und des Servomotors für Testszenen, die eine Drehung und Beleuchtungssteuerung erfordern.

Controller für Android 13 – Ü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 das Servo das Smartphone in etwa 2 Sekunden um 90 Grad um die Kamera-Mittelachse 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 Testgerät für die Sensorfusion 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: Smartphonebewegung im Testgestell 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 die Pulsbreite auf die Mindestbreite geändert wird, bewegt sich der Motor in die Neutralposition. Wenn die Pulsbreite auf die maximale Breite geändert wird, dreht sich der Motor um 180 Grad im Uhrzeigersinn.

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 Rotator-Servos 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 Reset 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 die automatische Neustartsfunktion über einen physischen Schalter auf dem Controller aktivieren oder deaktivieren.

Der Android 13-Controller kann mit jeder ITS-in-a-Box-Kamera 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 beleuchtungsgesteuerten 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 für die Diagrammanzeige erforderlich ist und das mit dem ITS-in-a-Box für Kameras 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 der DUT nicht umgeschaltet werden.
Dezember 2022 2,2
  • Es wurde eine Option hinzugefügt, um bestückte Platinen von EasyEDA zu bestellen.
  • 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
  • Es wurde eine Beleuchtungssteuerung hinzugefügt.
  • Änderung von 6 Servosteuerung auf 3 Beleuchtung und 3 Servosteuerung

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 Gerber-Datei für die Platine, der Stückliste für die Platine, Informationen zur Platinenplatzierung und einer STEP-Datei für das Gehäuse. Informationen zum Herunterladen der Produktionsdatei finden Sie in der Tabelle unter Überarbeitungsverlauf.

Wenn Sie Ihren eigenen Controller bauen, benötigen Sie ein Arduino UNO R3-Board. Wenn Sie den Controller bei einem qualifizierten Anbieter kaufen, ist der Arduino 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 Steckertyp der Beleuchtung einen Adapter (Abbildung 7).

    Speicherort für die Beleuchtungsausgabe

    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. Wenn Sie die Szenen sensor_fusion einrichten möchten, verbinden Sie das Servo mit einem der Servokanal-Verbindungsheader.

    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 für eine fertige Android 13-Controllerkonfiguration für ein Beleuchtungssystem und ein Servo.

USB-A-Anschluss

Abbildung 11 Controller-Einrichtung für Android 13 abgeschlossen

Softwaresteuerung über den Host

Microcode kann auf den UNO heruntergeladen werden, um die PWM-Pins den Motorsignalen zuzuweisen und die Pulsbreitenbereiche für verschiedene Winkel zu definieren. Der Mikrocode für die Servodrehsteuerung 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

Verwendung von Kameras für intelligente Verkehrssysteme:

python tools/run_all_tests.py device=device_id camera=0 rot_rig=arduino:1 scenes=sensor_fusion

Mit dem enthaltenen Testscript:

python rotator.py --ch 1 --dir ON --debug

Downloads der Softwaresteuerung