Kontroler Androida 13

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.

Ruch telefonu na platformie testowej

Rysunek 1. Ruch telefonu na stanowisku testowym test_sensor_fusion

Ruch telefonu na platformie testowej

Rysunek 2. Ruch telefonu na stanowisku testowym do test_video_stabilization

Sterowanie oświetleniem w ramach rozwiązania ITS-in-a-box

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.

Opis sterowania serwem

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
  • Dodano opcję zamówienia wypełnionej płytki PCB w EasyEDA
  • Usunięto fałszywe opóźnienia po ruchach serwa w mikrokodzie Arduino
  • Zmieniono elementy dystansowe z metalowych na nylonowe
  • Zmieniono MOSFETY przelotowe na MOSFETY montowane powierzchniowo
  • Zmieniono kondensator z 10 uF na 1000 uF
marzec 2022 r 1
  • Dodano możliwość sterowania oświetleniem.
  • Zmieniono sterowanie z 6 serwami na 3 oświetlenie i 3 serwa

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.

Widok z góry niestandardowej osłony routingu

Rysunek 5. Niestandardowa osłona routingu (widok z góry)

Widok z góry niestandardowej osłony routingu

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.

Zasilanie oświetlenia i ładowarka 12V podłączona do kontrolera Android 13

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.

Konwerter wtyczki męskiej 3,5 mm x 1,35 mm na gniazdo żeńskie 5,5 mm x 2,1 mm

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.

Schemat tarczy 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.

Zmontowany system w obudowie

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.

Wersja 2 Kontroler Arduino

Rysunek 11. Wersja 2 Kontrolera Arduino

Zmontowany system w obudowie

Rysunek 12. Kontroler zestawu Cana

Inne zasoby

Pobieranie rysunków mechanicznych

Pobieranie oprogramowania sterującego