Controllore Android 13

Questa pagina descrive come assemblare il controller Android 13, che controlla il movimento per un banco di prova di fusione di sensori e l'illuminazione per ITS-in-a-box. Il test di fusione dei sensori fa parte della Camera Image Test Suite (Camera ITS) nella Compatibility Test Suite (CTS). Il controller Android 13 è progettato per facilitare l'assemblaggio e ridurre i costi rispetto alle versioni precedenti del controller. Ulteriori vantaggi sono l'isolamento dell'alimentazione tra l'elettronica e i servi e il controllo di un massimo di tre servi e tre luci da un unico controller.

Panoramica del controller Android 13

Controllo servo e illuminazione nei banchi prova

Il banco di prova per la fusione dei sensori fornisce un movimento fisso del telefono per test riproducibili. Il telefono viene ruotato davanti a un bersaglio a scacchiera per consentire l'acquisizione di immagini con il telefono in varie posizioni. Per test_sensor_fusion, il servo ruota il telefono attorno al centro dell'asse della fotocamera di 90 gradi e viceversa in circa 2 secondi. Per test_video_stabilization, il servo ruota ripetutamente il telefono attorno al centro dell'asse della fotocamera di 10 gradi e viceversa per imitare il movimento del telefono quando si riprende un video mentre si cammina. La Figura 1 mostra due telefoni che si muovono in un banco di prova per la fusione dei sensori. La Figura 2 mostra un telefono in movimento in un banco di prova per la fusione dei sensori.

ITS-in-a-box fornisce un ambiente di test coerente con distanza fissa tra il tablet di prova e il telefono di prova, oltre a un'illuminazione coerente senza fonte di luce esterna. Per test_auto_flash, è necessario un ambiente buio con le luci spente per attivare la funzione di flash automatico sui telefoni di prova. La Figura 3 mostra le luci di ITS-in-a-box spente e accese dal controller Android 13.

Movimento del telefono nel banco di prova

Figura 1. Movimento del telefono nel banco di prova per test_sensor_fusion

Movimento del telefono nel banco di prova

Figura 2. Movimento del telefono nel banco di prova per test_video_stabilization

Controllo della luce con ITS-in-a-box

Figura 3. Luci spente e accese per test_auto_flash

Controllo del servomotore

I servomotori analogici nel banco di prova sono servi posizionali controllati utilizzando la modulazione di larghezza di impulso (PWM). Un tipico esempio di controllo posizionale è mostrato nella Figura 3. Il segnale di controllo ha un periodo di 20 ms. La modifica dell'ampiezza dell'impulso all'ampiezza minima sposta il motore in posizione neutra e la modifica dell'ampiezza dell'impulso all'ampiezza massima sposta il motore di 180 gradi in senso orario.

Descrizione del servocomando

Figura 4. Descrizione tipica del servocomando

Esercitazione video

Questo è un video tutorial su come configurare il controller Android 13.

Cronologia delle revisioni

La tabella seguente descrive la cronologia delle revisioni del rig Camera ITS WFoV e include i collegamenti per il download a ciascuna versione dei file di produzione.

Data Revisione Download del file di produzione Modifica registro
Dicembre 2022 1.1
  • Aggiunta opzione per ordinare schede PCB popolate da EasyEDA
  • Rimossi i ritardi spuri dopo i movimenti del servo nel microcodice Arduino
  • Distanziatori modificati da metallo a nylon
  • MOSFET a foro passante modificati in MOSFET a montaggio superficiale
  • Condensatore modificato da 10 uF a 1000 uF
Marzo 2022 1
  • Aggiunta funzionalità di controllo dell'illuminazione.
  • Modificato da 6 servocomandi a 3 illuminazione e 3 servocomandi

Implementazione del controller Android 13

Per controllare il movimento e le luci del servomotore tramite un computer host, il banco di prova per la fusione dei sensori richiede una connessione USB. Il controller Android 13 utilizza una scheda Arduino UNO R3 collegata tramite USB con una scheda di routing personalizzata (o scudo ) montata sulla parte superiore. Lo scudo a due strati è progettato con uno strumento di progettazione PCB online open source ed è disponibile su https://oshwlab.com/leslieshaw1023/cameraits_arduino_shield_populated . Le viste dall'alto e dal basso dello schermo di instradamento personalizzato sono mostrate nelle Figure 5 e 6.

Vista dall'alto dello scudo di routing personalizzato

Figura 5. Schermatura di routing personalizzata (vista dall'alto)

Vista dall'alto dello scudo di routing personalizzato

Figura 6. Schermatura di instradamento personalizzata (vista dal basso)

Il controller Android 13 può controllare fino a tre impianti di fusione di sensori e tre ITS-in-a-box da un singolo computer host. La vista dall'alto mostra i contorni serigrafati per il montaggio dei tre connettori motore a 3 pin lungo l'asse centrale e tre jack di alimentazione LED. La vista dal basso mostra i contorni serigrafati per le connessioni header a 4 e 8 pin necessarie per l'accoppiamento con l'UNO, un jack di alimentazione da 5 V e un condensatore di bypass da 10 uF.

Per isolare le correnti del servo e dell'illuminazione, l'alimentazione per i servi viene fornita tramite il jack esterno da 5 V. L'elettronica UNO è alimentata separatamente tramite il connettore USB e non c'è condivisione di potenza tra le due schede. Si noti che il jack di alimentazione esterna esistente sull'UNO non è utilizzato ed è nascosto nel design della custodia per evitare confusione quando si collega l'alimentazione al controller.

Alimentazione di illuminazione e caricabatterie da 12 V collegati al controller Android 13

Figura 7. Illuminazione e alimentazione a 12 V collegate al controller Android 13

A seconda delle dimensioni del cilindro della potenza di illuminazione, utilizzare l'adattatore secondo necessità.

Convertitore da spina maschio da 3,5 mm x 1,35 mm a jack femmina da 5,5 mm x 2,1 mm

Figura 8. Adattatore che collega l'alimentazione dell'illuminazione al controller

Assemblare il controller Android 13

Distinta base (BOM)

Qtà Descrizione PN/Collegamento
1 Scudo CameraITS Arduino da 1,6 mm di spessore https://oshwlab.com/leslieshaw1023/cameraits_arduino_shield_populated
1 Arduino UNO R3 https://store.arduino.cc/usa/arduino-uno-rev3
6 Jack a barilotto ad angolo retto 2,1x5,5 mm, 5 V, foro passante 101179
2 Condensatori al tantalio da 35 V, 10%, 10 uF 2290863
2 Condensatori ceramici con montaggio 1206 da 50 V, 5%, 100 pF 12065A101JAT2A
3 1 kΩ, resistore a montaggio superficiale CRCW08051K00FKEAC
3 MOSFET di potenza RFP30N06LE
3 1x3x, passo 100 mil (2,54 mm), connettore maschio a foro passante 732-5316-ND
1 1x8x, passo 100 mil (2,54 mm), connettore maschio a foro passante 732-5321-ND
1 1x4x, passo 100 mil (2,54 mm), connettore maschio a foro passante 732-5317-ND
3 Distanziali in nylon femmina-femmina da 11 mm (larghezza 5 mm, filettatura M3-0,5) 92319a317
4 Distanziali in nylon maschio-femmina da 6 mm (larghezza 5 mm, filettatura M3-0,5) 95783a004
3 Viti in nylon a testa bombata M3-0,5 da 6 mm 92492A716
4 Viti a testa piatta M3-0,5 da 8 mm XM2510008A20000
2 Viti a testa piatta M3-0,5 da 6 mm XM2510006A20000
6 N. 4, viti per lamiera a testa tonda da 1/2 pollice 90925A110
1 Alimentatore certificato UL da 5 V, 15 W, spina 2,1x5,5 mm (motori) KSAS0180500300VU-VI
1 Alimentatore omologato UL da 12 V, 60 W, spina 2,1x5,5 mm (luci) GSM60A12-P1J

Servono altri strumenti

  • Saldatore, saldatore, ventosa per saldatura
  • Piccolo cacciavite a croce
  • Cacciavite Torx misura T10

Popolamento della scheda di routing

Compila la parte superiore e inferiore della scheda di routing con le parti che si adattano ai relativi contorni. Per la parte inferiore della scheda, i connettori maschio possono essere allineati posizionandoli nelle posizioni corrette sulla scheda Arduino e posizionando la scheda di instradamento sopra i connettori. I connettori 1x8 e 1x4 possono quindi essere saldati in posizione, garantendo un buon allineamento tra Arduino e la scheda di routing. Lo stesso può essere fatto per il jack di alimentazione, ma è necessario uno spessore per un assemblaggio più stretto poiché il jack di alimentazione non poggia sull'Arduino dopo l'assemblaggio. Dopo aver saldato il condensatore di bypass, la parte superiore della scheda può essere popolata con i sei connettori maschio 1x3 per il controllo del motore. Si noti che la testata deve essere orientata in modo che la parte inferiore del connettore a scatto sia rivolta verso i motori per dare il massimo spazio per il supporto del motore.

Una volta saldati tutti i componenti, il sistema può essere assemblato utilizzando i distanziatori e le viti. Sono presenti quattro distanziatori maschio-femmina da 6 mm per fornire stabilità meccanica tra Arduino e il fondo dell'involucro di plastica. Tuttavia, ci sono solo tre distanziatori femmina-femmina da 11 mm tra Arduino e lo scudo personalizzato perché un foro su Arduino (quello vicino al pin SCL) è inutilizzabile a causa della sua vicinanza al connettore femmina su Arduino. Avvita i tre distanziatori femmina-femmina su tre distanziatori maschio-femmina per fissarli all'Arduino. Quindi fissa la protezione della scheda di routing ai distanziatori con le tre viti M3. La Figura 9 mostra uno schema dello scudo Arduino.

Schema dello scudo arduino

Figura 9. Schema dello scudo Arduino

Custodia del controller

Il controller include un involucro personalizzato. Il controller assemblato si monta sulla custodia tramite quattro viti a testa svasata attraverso la piastra inferiore della custodia. Assemblare la custodia utilizzando sei viti di montaggio a testa tonda e due a testa piatta. Le informazioni pertinenti, come il servo e l'alimentazione esterna a 5 V, sono incise sulla parte superiore in plastica. La Figura 10 mostra un'immagine del controller all'interno del contenitore assemblato.

Sistema assemblato in custodia

Figura 10. Schermo popolato e sistema assemblato nell'involucro

Controllo software dall'host

Il microcodice può essere scaricato sull'ONU per assegnare i pin PWM ai segnali del motore e definire gli intervalli di larghezza dell'impulso per diversi angoli. Il microcodice per il controllo della rotazione servo dei sei motori HS-755MB è incluso in Altre risorse . Quella sezione include anche un collegamento a un semplice programma chiamato rotator.py , che ruota i servi.

Utilizzando il controller Android 13

Utilizzo della fotocamera ITS:

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

Con script di test incluso:

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

Controller precedenti e compatibilità

Il controller Rev. 2 e il controller Rev. 1 (mostrati nelle Figure 11 e 12) non sono compatibili con Android 13 e non supportano test_preview_stabilization, test_video_stabilization e test_auto_flash perché non consentono i movimenti precisi richiesti per la stabilizzazione e l'illuminazione controllo.

Rev.2 Controller Arduino

Figura 11. Controller Arduino Rev. 2

Sistema assemblato in custodia

Figura 12. Controller del kit Cana

Altre risorse

Download di disegni meccanici

Download del controllo software