Na tej stronie opisano sposób montażu kontrolera z systemem Android 13, który steruje ruchem stanowiska do testowania fuzji czujników i oświetleniem w przypadku rozwiązania ITS-in-a-box. Test fuzji czujnika jest częścią pakietu Camera Image Test Suite (Camera ITS) w pakiecie Compatibility Test Suite (CTS). Kontroler Android 13 został zaprojektowany tak, aby ułatwić montaż i obniżyć koszty w porównaniu do poprzednich wersji kontrolera. Dodatkowe korzyści to izolacja zasilania pomiędzy elektroniką i serwami oraz sterowanie maksymalnie trzema serwami i trzema światłami za pomocą jednego sterownika.
Omówienie kontrolera Androida 13
Sterowanie serwami i oświetleniem na stanowiskach testowych
Stanowisko do testowania fuzji czujników zapewnia stały ruch telefonu w celu powtarzalnych testów. Telefon jest obracany przed tarczą w kształcie szachownicy, aby umożliwić robienie zdjęć telefonem w różnych pozycjach. W przypadku test_sensor_fusion serwo obraca telefon wokół środka osi aparatu o 90 stopni i z powrotem w ciągu około 2 sekund. W celu stabilizacji test_video_serwo wielokrotnie obraca telefon wokół środka osi aparatu o 10 stopni i z powrotem, aby naśladować ruch telefonu podczas nagrywania wideo podczas chodzenia. Rysunek 1 przedstawia dwa telefony poruszające się na stanowisku do testowania syntezy czujników. Rysunek 2 przedstawia jeden telefon poruszający się na stanowisku do testowania syntezy czujników.
Rozwiązanie ITS-in-a-box zapewnia spójne środowisko testowe ze stałą odległością między tabletem testowym a telefonem testowym, a także spójne oświetlenie bez zewnętrznego źródła światła. W przypadku test_auto_flash potrzebne jest ciemne otoczenie z wyłączonymi światłami, aby uruchomić funkcję automatycznego flashowania w telefonach testowych. Rysunek 3 pokazuje, jak światła w ITS-in-a-box są wyłączane i włączane przez kontroler z Androidem 13.
Rysunek 1. Ruch telefonu na stanowisku testowym test_sensor_fusion
Rysunek 2. Ruch telefonu na stanowisku testowym do test_video_stabilization
Rysunek 3. Wyłączone i włączone światła dla testu_auto_flash
Sterowanie silnikiem serwo
Analogowe serwomotory na stanowisku testowym to serwomotory pozycyjne sterowane za pomocą modulacji szerokości impulsu (PWM). Typowy przykład sterowania pozycyjnego pokazano na rysunku 3. Sygnał sterujący ma okres 20 ms. Zmiana szerokości impulsu na minimalną przesuwa silnik do pozycji neutralnej, a zmiana szerokości impulsu na maksymalną przesuwa silnik o 180 stopni w kierunku zgodnym z ruchem wskazówek zegara.
Rysunek 4. Typowy opis sterowania serwo
Film instruktażowy
To jest samouczek wideo dotyczący konfigurowania kontrolera Android 13.
Historia zmian
Poniższa tabela opisuje historię wersji platformy Camera ITS WFoV i zawiera łącza do pobierania poszczególnych wersji plików produkcyjnych.
Data | Rewizja | Pobieranie pliku produkcyjnego | Zmień dziennik |
---|---|---|---|
Grudzień 2022 | 1.1 |
| |
marzec 2022 r | 1 |
|
Implementacja kontrolera Android 13
Aby sterować ruchem serwosilnika i oświetleniem za pośrednictwem komputera głównego, stanowisko do testowania fuzji czujników wymaga połączenia USB. Kontroler Android 13 wykorzystuje podłączoną przez USB płytkę Arduino UNO R3 z niestandardową płytką routingu (lub osłoną ) zamontowaną na górze. Dwuwarstwowa osłona została zaprojektowana przy użyciu narzędzia online do projektowania PCB typu open source i jest dostępna pod adresem https://oshwlab.com/leslieshaw1023/cameraits_arduino_shield_populated . Widoki z góry i z dołu niestandardowej osłony prowadzącej pokazano na rysunkach 5 i 6.
Rysunek 5. Niestandardowa osłona routingu (widok z góry)
Rysunek 6. Niestandardowa osłona routingu (widok od dołu)
Kontroler z systemem Android 13 może sterować maksymalnie trzema zestawami do fuzji czujników i trzema urządzeniami ITS-in-a-box z jednego komputera hosta. Widok z góry pokazuje kontury sitodruku do montażu trzech 3-pinowych złączy silnika wzdłuż osi środkowej oraz trzy gniazda zasilania LED. Widok od dołu pokazuje kontury sitodruku dla 4- i 8-pinowych połączeń głowicy wymaganych do współpracy z UNO, gniazdem zasilania 5 V i kondensatorem obejściowym 10 uF.
Aby odizolować prąd serwa i oświetlenia, zasilanie serwa jest dostarczane przez zewnętrzne gniazdo 5 V. Elektronika UNO zasilana jest oddzielnie poprzez złącze USB i nie ma podziału zasilania pomiędzy obiema płytkami. Należy pamiętać, że istniejące zewnętrzne gniazdo zasilania w UNO jest nieużywane i jest zakryte konstrukcją obudowy, aby uniknąć pomyłek podczas podłączania zasilania do kontrolera.
Rysunek 7. Oświetlenie i zasilanie 12V podłączone do kontrolera Android 13
W zależności od rozmiaru lufy mocy oświetleniowej, w razie potrzeby użyj adaptera.
Rysunek 8. Adapter łączący zasilanie oświetlenia ze sterownikiem
Montaż kontrolera Android 13
Zestawienie materiałów (BOM)
Ilość | Opis | PN/łącze |
---|---|---|
1 | Osłona CameraITS Arduino o grubości 1,6 mm | https://oshwlab.com/leslieshaw1023/cameraits_arduino_shield_populated |
1 | Arduino UNO R3 | https://store.arduino.cc/usa/arduino-uno-rev3 |
6 | Gniazdo lufowe 2,1 x 5,5 mm, 5 V z otworem przelotowym, kątowe | 101179 |
2 | Kondensatory tantalowe 35 V, 10%, 10 uF | 2290863 |
2 | Kondensatory ceramiczne 1206 do montażu 50 V, 5%, 100 pF | 12065A101JAT2A |
3 | 1 kΩ, rezystor do montażu powierzchniowego | CRCW08051K00FKEAC |
3 | MOSFET mocy | RFP30N06LE |
3 | 1x3x, rozstaw 100 mil (2,54 mm), męska głowica z otworem przelotowym | 732-5316-ND |
1 | 1x8x, rozstaw 100 mil (2,54 mm), męska głowica z otworem przelotowym | 732-5321-ND |
1 | 1x4x, rozstaw 100 mil (2,54 mm), złącze męskie z otworem przelotowym | 732-5317-ND |
3 | Nylonowe podkładki żeńskie-żeńskie 11 mm (szerokość 5 mm, gwinty M3-0,5) | 92319a317 |
4 | Nylonowe podkładki męsko-żeńskie 6 mm (szerokość 5 mm, gwinty M3-0,5) | 95783a004 |
3 | Śruby nylonowe M3-0,5 6 mm z łbem stożkowym | 92492A716 |
4 | Śruby maszynowe M3-0,5 8 mm z łbem płaskim | XM2510008A20000 |
2 | Śruby maszynowe M3-0,5 6 mm z łbem płaskim | XM2510006A20000 |
6 | Wkręty do blachy nr 4, 1/2 cala z łbem okrągłym | 90925A110 |
1 | Zasilacz 5 V, 15 W z certyfikatem UL, wtyczka 2,1x5,5 mm (silniki) | KSAS0180500300VU-VI |
1 | Zasilacz 12 V, 60 W z certyfikatem UL, wtyczka 2,1x5,5 mm (oświetlenie) | GSM60A12-P1J |
Potrzebne inne narzędzia
- Lutownica, lutownica, przyssawka lutownicza
- Mały śrubokręt krzyżakowy
- Śrubokręt Torx o rozmiarze T10
Zapełnianie tablicy routingu
Wypełnij górną i dolną część płytki trasującej częściami pasującymi do ich konturów. W dolnej części płytki męskie nagłówki można wyrównać, umieszczając nagłówki w odpowiednich miejscach na płycie Arduino i umieszczając płytkę routingu na wierzchu złączy. Gniazda 1x8 i 1x4 można następnie przylutować na miejscu, gwarantując dobre dopasowanie pomiędzy Arduino i płytką routingu. To samo można zrobić z gniazdem zasilania, ale do dokładnego montażu potrzebna jest podkładka, ponieważ gniazdo zasilania nie opiera się na Arduino po złożeniu. Po wlutowaniu kondensatora obejściowego, na górze płytki można umieścić sześć męskich złączy 1x3 do sterowania silnikiem. Należy pamiętać, że głowica powinna być ustawiona w taki sposób, aby dolna część złącza zatrzaskowego była skierowana w stronę silników, aby zapewnić maksymalną ilość miejsca na mocowanie silnika.
Po przylutowaniu wszystkich elementów system można zmontować za pomocą wsporników i śrub. Istnieją cztery elementy dystansowe męsko-żeńskie o średnicy 6 mm, które zapewniają stabilność mechaniczną pomiędzy Arduino a spodem plastikowej obudowy. Jednakże pomiędzy Arduino a niestandardową osłoną znajdują się tylko trzy 11-milimetrowe elementy dystansowe żeńskie i żeńskie, ponieważ jeden otwór w Arduino (ten w pobliżu styku SCL) jest bezużyteczny ze względu na bliskość żeńskiego złącza Arduino. Przykręć trzy elementy dystansowe żeńskie i żeńskie do trzech elementów dystansowych męsko-żeńskich, aby przymocować elementy dystansowe do Arduino. Następnie przymocuj osłonę płytki routingu do wsporników za pomocą trzech śrub M3. Rysunek 9 przedstawia schemat nakładki Arduino.
Rysunek 9. Schemat nakładki Arduino
Obudowa kontrolera
Kontroler posiada niestandardową obudowę. Zmontowany sterownik mocuje się do obudowy za pomocą czterech wkrętów z łbem stożkowym przechodzących przez dolną płytę obudowy. Zmontuj obudowę za pomocą sześciu śrub montażowych z łbem okrągłym i dwóch śrub montażowych z łbem płaskim. Odpowiednie informacje, takie jak serwo i zewnętrzne zasilanie 5 V, są wygrawerowane na plastikowej górze. Rysunek 10 przedstawia obraz sterownika wewnątrz zmontowanej obudowy.
Rysunek 10. Zapełniony ekran i zmontowany system w obudowie
Kontrola oprogramowania z hosta
Mikrokod można pobrać do UNO, aby przypisać piny PWM do sygnałów silnika i zdefiniować zakresy szerokości impulsu dla różnych kątów. Mikrokod do sterowania obrotami serwa sześciu silników HS-755MB znajduje się w sekcji Inne zasoby . W tej sekcji znajduje się także link do prostego programu o nazwie rotator.py
, który obraca serwa.
Korzystanie z kontrolera Android 13
Użycie kamery ITS:
python tools/run_all_tests.py device=device_id camera=0 rot_rig=arduino:1 scenes=sensor_fusion
Z dołączonym skryptem testowym:
python rotator.py --ch 1 --dir ON --debug
Poprzednie kontrolery i kompatybilność
Kontrolery Rev. 2 i Rev. 1 (pokazane na rysunkach 11 i 12) nie są kompatybilne z systemem Android 13 i nie obsługują testów_preview_stabilization, test_video_stabilization i test_auto_flash, ponieważ nie pozwalają na precyzyjny ruch wymagany do stabilizacji i oświetlenia kontrola.
Rysunek 11. Wersja 2 Kontrolera Arduino
Rysunek 12. Kontroler zestawu Cana
Inne zasoby
Pobieranie rysunków mechanicznych
Pobieranie oprogramowania sterującego
- Mikrokod Arduino dla Androida 11 i nowszych
VarSpeedServo_and_lighting_control.ino
- Kod testowy kontroli Pythona
rotator.py