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.
Figura 1. Movimento del telefono nel banco di prova per test_sensor_fusion
Figura 2. Movimento del telefono nel banco di prova per test_video_stabilization
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.
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 |
| |
Marzo 2022 | 1 |
|
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.
Figura 5. Schermatura di routing personalizzata (vista dall'alto)
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.
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à.
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.
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.
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.
Figura 11. Controller Arduino Rev. 2
Figura 12. Controller del kit Cana
Altre risorse
Download di disegni meccanici
- File di produzione del contenitore del controller CameraITS
- File Gerber dello scudo del controller CameraITS (rev 2.2)
Download del controllo software
- Microcodice Arduino per Android 11 e versioni successive
VarSpeedServo_and_lighting_control.ino
- Codice di test del controllo Python
rotator.py