wtorek, 19 lipca 2022

Kontroler OnStep oparty o Wemos D1 r32 (ESP32) i CNC v3 Part II




    W poprzedniej części (Part I) opisałem przyspieszoną realizację działającego kontrolera OnStep w oparciu o Wemos D1 R32 (ESP32) i CNC3.

    Teraz miałem trochę czasu na poprawki i rozbudowę czyli Part II. 

    Zmieniłem:

  1. Obudowa mieszcząca Raspberry Pi (Astroberry) i OnStep
    • gniazda RJ45 z wyjściami na silniczki
    • mocowanie do tuby pod śrubę gwint 1/4
    • włącznik i wejście zasilania 12V 5.1/2.1
  2. Gniazdo RJ45 na statywie i kabel RJ45 rozdzielający sygnał na silniki RA i DEC
  3. Kabel RJ45 na 6 pin JST PH2.0mm do focusera
  4. Smart Web Server (SWS) na Wemos D1 Mini ESP32
  5. GamePad BT Magicsee R1 zamiast Smart Hand Controller-a
  6. Astroberry i serwer Indi podłączony do OnStep po USB
  7. Regulacja pozycjonowania GOTO i śledzenia w config.h

 Nowe elementy:

Wemos D1 mini ESP32
Przetwornica step-down na 5V
Moduł RTC DS3231
Obudowa Kradex Z78
Bluetooth GamePad R1

Przydatne linki

Strona Wiki OnStep 

Strona autora projektu http://www.stellarjourney.com/  

Wiki WeMos R32 with CNC V3 Shield

Wiki Smart Web Server

Wiki Bluetooth GamePad R1

Obudowa i porty RJ45

Wiem, że ładniej by było wydrukować jedną z wielu dostępnych obudów na drukarce 3D, ale przypominam, że to projekt budżetowy. Tę obudowę miałem pod ręką i jej trochę większy rozmiar rozwiązał też problem połączenia z Raspberry Pi z zainstalowanym Astroberry. Trochę cięcia i lutowania i efekt widać na zdjęciu.   

Kabelki

Połączenie wszystkiego razem było trudniejsze niż myślałem. Kable musiały być łatwe do podłączania, ale jednocześnie musiały zachowywać się właściwie podczas obrotów montażu C4 (EQ3-2). Trzeba było podjąć decyzję, gdzie umieścić obudowę by podczas ruchu teleskopu zminimalizować zginanie kabli. Wybrałem umieszczenie obudowy do tuby teleskopu. Dzięki temu kabel do focusera i silnika osi DEC będzie nieruchomy. Jedynie kabel osi RA będzie musiał wytrzymać regularne zginanie. Czas pokaże czy kabel i złącze RJ45 dobrze to zniosą.    


Smart Web Server i GamePad R1

   Miałem już nie podłączać SWS. Łączność bluetooth z OnStep działa akceptowalnie, dodatkowo Indi na Astroberry zapewnia wiele funkcjonalności. Ale doświadczenie w czasie używania OnStep pokazało, że niestety często jest potrzebne dokonanie małej korekty ustawienia. Robienie tego na telefonie w aplikacji OnStep jest trochę uciążliwe, szczególnie bez patrzenia na ekran. Dlatego zainteresowałem się GamePad-em. To był strzał w dziesiątkę.

    Jest on bardzo łatwy w obsłudze i poręczny. A przy okazji ponieważ wymaga Smart Web Server-a, to mam też połączenie bezprzewodowe o większym zasięgu niż bluetooth. Dodatkowe zalety SWS to możliwość podłączenia więcej niż jednego urządzenia na raz, strona WWW, automatyczne łączenie się do sieci WiFi w domu, a jeśli jest niedostępna to wystawianie własnego AP. Brak konieczności ciągłego restartu całości. Jedyne co musiałem zrobić to zapewnić stabilne 5V. To brane z CNC było za słabe. Konwerter Step-Down podłączony bezpośrednio do wejściowego 12V rozwiązał problem.

Instalacja oprogramowania SWS dla GamePad-a

Szczegółowa instrukcja instalacji SWS z obsługą GamePadjest tu. W skrócie należy:

  1. Pobrać kod SWS z GITHUB wybierając Code -> Download ZIP
  2. Rozpakować do jakiegoś katalogu i otworzyć w Arduino IDE
  3. Dodać w File->Preferences "Additional Boards Manager URLs" wartość "https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json"
  4. W Narzędzia>Płyta>Boards Manager doinstalować ESP32 w wersji 2.0.0
  5. Ustawić w menu Tools->Board->MH ET LIVE ESP32MiniKit i Partition Scheme->No OTA (Large APP)
  6. Wybrać port, który się pojawi po podpięciu ESP32 do USB (numer można sprawdzić w Menagerze Urządzeń)
  7. W pliku Extended.config.h włączyć BLE_GAMEPAD ON oraz wpisać MAC adres naszego GamePad-a w wierszu BLE_GP_ADDR. 
  8. Nacisnąć "Upload" i poczekać na komunikat, że się udało.

Łączność po nowemu

Łączność z OnStep można zapewnić na 4 sposoby.

1. Kabel USB podłączony do portu Wemos D1 R32. W moim wypadku tak podłączam do Astroberry na Raspberry PI 4B, na którym chodzi serwer Indi. 

2. Łączność WiFi i sterowanie przez port IP oraz strona Smart Web Server. Bardzo stabilne i działa jednocześnie na wielu urządzeniach.

3. Łączność Bluetooth. Działa, ale po restarcie wymaga kasowania parowania i ponownego parowania. Przynajmniej tak jest u mnie.  

4. Bezprzewodowy kontroler GamePad. Jeśli w konfiguracji SWS jest poprawnie wpisany MAC adres urządzenia, to po włączeniu, przez chwile jego dioda będzie mrugać na niebiesko, gdy zgaśnie oznacza to że nastąpiło połączenie. Należy jeszcze włączyć tryb wciskając jednocześnie M i D (dioda mrugnie raz). Od teraz działają:

  • Joystick = N,S,E,W
  • Trigger w górę = Focuser -
  • Trigger w dół = Focuser +
  • A = Idź do ostatniej lokalizacji
  • B = Wyszukiwanie spiralne
  • C =Zmniejszenie prędkości
  • D =Zwiększenie prędkości
  • M = Park/UnPark (M jest również „zatrzymaniem awaryjnym” silników)

Podsumowanie drugiego etapu

Testy jeszcze trwają, ale wszystko działa dość stabilnie i w miarę precyzyjnie. Właściwe testy zrobię podczas wypadu pod ciemne niebo. 



 


Brak komentarzy:

Prześlij komentarz