Controller Android 13

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Questa pagina descrive come assemblare il controller Android 13, che controlla il movimento per un banco di prova per la fusione dei 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 singolo controller.

Panoramica del controller Android 13

Servocomando e controllo dell'illuminazione nei banchi di prova

Il banco di prova Sensor Fusion 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 indietro in circa 2 secondi. Per test_video_stabilization, il servo ruota il telefono attorno al centro della fotocamera dell'asse di 10 gradi e indietro ripetutamente 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 di sensori. La Figura 2 mostra un telefono che si muove in un banco di prova per la fusione di sensori.

ITS-in-a-box fornisce un ambiente di test coerente con una distanza fissa tra il tablet di prova e il telefono di prova, oltre a un'illuminazione uniforme senza fonte di luce esterna. Per test_auto_flash, è necessario un ambiente buio con luci spente per attivare la funzione di flash automatico sui telefoni di prova. La figura 3 mostra le luci in ITS-in-a-box che vengono 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 all'interno di 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 tramite modulazione di larghezza di impulso (PWM). Un tipico esempio di controllo posizionale è mostrato in Figura 3. Il segnale di controllo ha un periodo di 20 ms. La modifica dell'ampiezza dell'impulso alla larghezza minima sposta il motore in posizione neutra e la modifica dell'ampiezza dell'impulso alla larghezza massima sposta il motore di 180 gradi in senso orario.

Descrizione del servocomando

Figura 4. Descrizione tipica del servocomando

Tutorial video

Questo è un tutorial video 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 collegamenti per il download a ciascuna versione dei file di produzione.

Data Revisione Download del file di produzione Registro delle modifiche
dicembre 2022 1.1
  • Aggiunta l'opzione per ordinare la scheda PCB popolata da EasyEDA
  • Ritardi spuri rimossi 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 capacità di controllo dell'illuminazione.
  • Modificato da 6 servocomandi a 3 luci e 3 servocomandi

Implementazione del controller Android 13

Per controllare il movimento del servomotore e le luci tramite un computer host, il banco di prova Sensor Fusion 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 scudo di instradamento personalizzato sono mostrate nelle Figure 5 e 6.

Vista dall'alto dello scudo di instradamento personalizzato

Figura 5. Scudo di instradamento personalizzato (vista dall'alto)

Vista dall'alto dello scudo di instradamento personalizzato

Figura 6. Scudo di instradamento personalizzato (vista dal basso)

Il controller Android 13 può controllare fino a tre sensori di fusione e tre ITS-in-a-box da un singolo computer host. La vista dall'alto mostra i contorni della serigrafia per il montaggio delle tre intestazioni del motore a 3 pin lungo l'asse centrale e tre jack di alimentazione LED. La vista dal basso mostra i contorni della serigrafia per le connessioni dell'intestazione a 4 e 8 pin necessarie per l'accoppiamento con 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 di UNO è alimentata separatamente tramite il connettore USB e non c'è condivisione dell'alimentazione tra le due schede. Si noti che il jack di alimentazione esterno esistente su UNO non è utilizzato ed è nascosto nel design della custodia per evitare confusione durante il collegamento dell'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 barilotto della potenza di illuminazione, utilizzare l'adattatore secondo necessità.

Convertitore jack 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

Assemblaggio del controller Android 13

Distinta materiali (BOM)

Qtà Descrizione PN/Collegamento
1 Schermo Arduino CameraITS spesso 1,6 mm https://oshwlab.com/leslieshaw1023/cameraits_arduino_shield_populated
1 Arduino UNO R3 https://store.arduino.cc/usa/arduino-uno-rev3
6 2,1x5,5 mm, 5 V, foro passante, jack cilindrico ad angolo retto 101179
2 Condensatori al tantalio da 35 V, 10%, 10 uF 2290863
2 Condensatori ceramici a 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), testata maschio a foro passante 732-5316-ND
1 1x8x, passo 100 mil (2,54 mm), testata maschio a foro passante 732-5321-ND
1 1x4x, passo 100 mil (2,54 mm), testata maschio a foro passante 732-5317-ND
3 Distanziatori in nylon femmina-femmina da 11 mm (larghezza 5 mm, filettature M3-0,5) 92319a317
4 Distanziatori in nylon maschio-femmina da 6 mm (larghezza 5 mm, filettature M3-0,5) 95783a004
3 Viti in nylon a testa bombata M3-0.5 6 mm 92492A716
4 Viti a testa piatta M3-0.5 8 mm XM2510008A20000
2 Viti a testa piatta M3-0.5 6 mm XM2510006A20000
6 #4, 1/2 in viti per lamiera a testa tonda 90925A110
1 Alimentatore 5 V, 15 W certificato UL, spina 2,1x5,5 mm (motori) KSAS0180500300VU-VI
1 Alimentatore UL-listed 12 V, 60 W, spina 2,1x5,5 mm (luci) GSM60A12-P1J

Altri strumenti necessari

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

Popolamento della scheda di routing

Popola la parte superiore e inferiore della scheda di instradamento con le parti che si adattano ai loro contorni. Per la parte inferiore della scheda, le intestazioni maschio possono essere allineate posizionando le intestazioni nelle posizioni corrette nella scheda Arduino e posizionando la scheda di instradamento sopra i connettori. Le intestazioni 1x8 e 1x4 possono quindi essere saldate 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 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 l'intestazione 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.

Quando tutti i componenti sono saldati in posizione, il sistema può essere assemblato utilizzando i distanziatori e le viti. Ci sono quattro distanziatori maschio-femmina da 6 mm per fornire stabilità meccanica tra Arduino e la parte inferiore 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 all'intestazione femmina su Arduino. Avvitare i tre distanziatori femmina-femmina su tre distanziatori maschio-femmina per fissare i distanziatori all'Arduino. Quindi fissare la protezione della scheda di instradamento ai distanziatori con le tre viti M3. La Figura 9 mostra uno schema dello shield Arduino.

Schema dello scudo arduino

Figura 9. Schema dello scudo Arduino

Custodia del controllore

Il controller include un contenitore personalizzato. Il controller assemblato viene montato sull'armadio tramite quattro viti a testa svasata attraverso la piastra inferiore dell'armadio. Montare l'armadio 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 nella parte superiore in plastica. La Figura 10 mostra un'immagine del controller all'interno del contenitore assemblato.

Sistema assemblato in custodia

Figura 10. Schermatura popolata e sistema assemblato in custodia

Controllo software dall'host

Il micro-codice può essere scaricato su UNO per assegnare i pin PWM ai segnali del motore e definire gli intervalli di larghezza di impulso per diversi angoli. Il micro-codice per il controllo della rotazione del 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.

Utilizzo del 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 (illustrati 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 il movimento fine richiesto per la stabilizzazione e l'illuminazione controllo.

Controllore Arduino Rev. 2

Figura 11. Controller Arduino Rev. 2

Sistema assemblato in custodia

Figura 12. Controller del kit Cana

Altre risorse

Download di disegni meccanici

Download di controllo software