Spisu treści:

UChip - Prosty szkic do zdalnego sterowania silnikami i / lub serwami za pośrednictwem radia 2,4 GHz Tx-Rx!: 3 kroki
UChip - Prosty szkic do zdalnego sterowania silnikami i / lub serwami za pośrednictwem radia 2,4 GHz Tx-Rx!: 3 kroki

Wideo: UChip - Prosty szkic do zdalnego sterowania silnikami i / lub serwami za pośrednictwem radia 2,4 GHz Tx-Rx!: 3 kroki

Wideo: UChip - Prosty szkic do zdalnego sterowania silnikami i / lub serwami za pośrednictwem radia 2,4 GHz Tx-Rx!: 3 kroki
Wideo: Ona jest uzależniona 🤣 Bruder Fan i kłótnia o komputer 2024, Listopad
Anonim
Image
Image
UChip - Prosty szkic do zdalnego sterowania silnikami i/lub serwami za pośrednictwem radia Tx-Rx 2,4 GHz!
UChip - Prosty szkic do zdalnego sterowania silnikami i/lub serwami za pośrednictwem radia Tx-Rx 2,4 GHz!
UChip - Prosty szkic do zdalnego sterowania silnikami i/lub serwami za pośrednictwem radia Tx-Rx 2,4 GHz!
UChip - Prosty szkic do zdalnego sterowania silnikami i/lub serwami za pośrednictwem radia Tx-Rx 2,4 GHz!

Bardzo lubię świat RC. Korzystanie z zabawki RC daje poczucie, że kontrolujesz coś niezwykłego, mimo że jest to mała łódka, samochód lub dron!

Jednak nie jest łatwo dostosować swoje zabawki i sprawić, by robiły to, co chcesz. Zazwyczaj jesteś zmuszony do korzystania z domyślnych ustawień nadajnika lub specjalnie zaprojektowanych kombinacji przełączników i pokręteł.

Kontrolowanie wszystkiego tak, jak naprawdę chcesz, jest dość trudne, głównie dlatego, że świat RC wymaga dość głębokiej znajomości programowania na poziomie sprzętowym, aby wydobyć z niego to, co najlepsze.

Próbowałem wielu platform i konfiguracji, ale zawsze kosztowało to ogromny wysiłek, aby uzyskać wystarczająco dużo komfortu z kodem, zanim dokonam prawdziwego dostosowania do mojej zabawki RC.

Brakowało mi prostego szkicu, który mógłbym załadować za pomocą Arduino IDE i który pozwoliłby mi łatwo przetłumaczyć wartości wychodzące z Radio RX (odbiornika) na pożądane sterowanie silnikiem/serwomechanizmem.

Dlatego oto, co stworzyłem po zabawie trochę z uChip i Arduino IDE: Prosty szkic do zdalnego sterowania silnikami i / lub serwami za pomocą radia 2.4GHz Tx-Rx!

Zestawienie materiałów

1 x uChip: płyta kompatybilna z Arduino IDE

1 xTx-Rx System radiowy: każdy system radiowy z odbiornikiem cPPM jest dobry (moje połączenie to stary Spectrum DX7 Tx + Orange R614XN cPPM Rx), upewnij się, że postępujesz zgodnie z właściwą procedurą wiązania, aby powiązać Tx i Rx.

1 x Akumulator: akumulatory o wysokim prądzie rozładowania są niezbędne w przypadku silników i serw.

Silniki/Serwa: zgodnie z Twoimi potrzebami

Komponenty elektroniczne do napędzania silników/serw: proste oporniki, tranzystory MOSFET i diody umożliwiają osiągnięcie celu napędzania.

Krok 1: Okablowanie

Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie

Połącz elementy razem, jak opisano na schematach.

Rx jest podłączony bezpośrednio do uChipand nie wymaga żadnych zewnętrznych komponentów. Jeśli używasz innego odbiornika, sprawdź, czy potrzebujesz przełącznika poziomu, czy nie. Pamiętaj, aby podłączyć sygnał cPPM do uChip PIN_9 (czyli PORTA19 w przypadku, gdy chcesz dostosować kod do innej płyty SAMD21).

Pozostałe okablowanie jest niezbędne do napędzania silnika i/lub serwomechanizmu. Załączony schemat przedstawia podstawowy obwód w celu ochrony uChip przed skokami/przeregulowaniami, które zwykle występują podczas napędzania obciążeń indukcyjnych. Kluczowym elementem zapewniającym bezpieczeństwo uChip jest dioda Zenera zasilania 5,1 V (D1 na schemacie), którą należy podłączyć równolegle do VEXT (uChip pin 16) i GND (uChip pin 8). Alternatywnie, zamiast używać diody Zenera, możesz zdecydować się na opcjonalne obwody reprezentowane przez D2, C1 i C2, które zapobiegają uszkodzeniom komponentów uChip.

Możesz sterować dowolną liczbą silników / serw, po prostu replikując schemat i zmieniając piny sterujące (możesz użyć dowolnego pinu z wyjątkiem pinów zasilania (PIN_8 i PIN_16) oraz pinu cPPM (PIN_9)). Należy pamiętać, że chociaż potrzebny jest tylko jeden obwód ochronny, który jest reprezentowany przez diodę Zenera (lub komponenty opcjonalnego obwodu), komponenty elektryczne związane z napędem silnika / serwomechanizmu muszą być replikowane tyle razy, ile jest silników / serwa, którymi zamierzasz jeździć.

Ponieważ chciałem sterować co najmniej 2 silnikami i 2 serwomechanizmami, wykonałem małą płytkę drukowaną, w której zaimplementowano opisany układ, co widać na zdjęciu. Jednak pierwszy prototyp został wykonany na proto-boardzie za pomocą latających drutów.

Dzięki temu nie potrzebujesz żadnych umiejętności lutowania/projektowania PCB, aby zrealizować ten prosty projekt:)

Krok 2: Programowanie

Programowanie
Programowanie

Oto magia! To tutaj robi się ciekawie.

Jeśli zbudowałeś obwód opisany na poprzednim schemacie, możesz po prostu załadować szkic „DriveMotorAndServo.ino” i wszystko powinno działać.

Spójrz na kod i sprawdź jak działa.

Na początku jest kilka #define używanych do zdefiniowania:

- ilość kanałów Rx (6Ch z Orange 614XN)

- piny do których mocowane są silniki/serwa

- Maks. i min. używane dla serwomechanizmów i silników

- Max i min używane dla zasięgu kanałów radiowych

Dalej znajduje się sekcja deklaracji zmiennych, w której deklarowane są zmienne silników/serwomechanizmów.

W przypadku, gdy napędzasz więcej niż jeden silnik i jedno dołączone serwo, jak opisano na poprzednim schemacie, musisz zmodyfikować szkic i dodać kod obsługujący dodatkowe dołączone silniki/serwa. Musisz dodać tyle Servo, servo_value i motor_value, ile serw/silników używasz.

W sekcji deklaracji zmiennych znajdują się również zmienne ulotne używane do porównywania przechwytywania sygnału cPPM. NIE ZMIENIAJ TYCH ZMIENNYCH!

To, co musisz zrobić dalej, to funkcja loop(). Tutaj możesz zdecydować, co zrobić z wartości kanałów przychodzących.

W moim przypadku podłączyłem przychodzącą wartość bezpośrednio do silnika i serwomechanizmu, ale możesz ją zmienić zgodnie z własnymi potrzebami! Na filmie i zdjęciach połączonych w tym samouczku podłączyłem 2 silniki i 2 serwa, ale może być 3, 4, 5, …do maksymalnej dostępnej liczby wolnych pinów (13 w przypadku uChip).

Możesz znaleźć przechwyconą wartość kanału w tablicy ch[index], której „indeks” przechodzi od 0 do NUM_CH - 1. Każdy kanał odpowiada drążkowi/przełącznikowi/pokrętłu w radiu. Od Ciebie zależy, czy zrozumiesz, co jest czym:)

Na koniec zaimplementowałem kilka funkcji debugowania, aby ułatwić zrozumienie, co się dzieje. Skomentuj/odkomentuj #define DEBUG, aby wydrukować na natywnym SerialUSB wartość kanałów.

WSKAZÓWKA: Poniżej funkcji loop() znajduje się więcej kodu. Ta część kodu jest niezbędna do ustawienia pinów zasilania uChip, obsługi przerwań generowanych przez funkcję porównywania przechwytywania, ustawienia timerów i celu debugowania. Jeśli czujesz się na tyle odważny, aby bawić się rejestrami, możesz je zmodyfikować!

Edycja: Zaktualizowano szkic, naprawiono błąd w funkcji mapowania.

Krok 3: Graj, jedź, ścigaj się, lataj

Image
Image

Upewnij się, że prawidłowo połączysz system Tx i Rx. Włącz go, podłączając akumulator. Sprawdź, czy wszystko działa. Możesz dowolnie rozszerzać funkcjonalności lub zmieniać funkcję każdego kanału, ponieważ teraz masz pełną kontrolę nad swoim przyszłym modelem RC.

Teraz zbuduj swój spersonalizowany model RC!

PS: Ponieważ oprawa może być dość nudna, planuję wkrótce wydać szkic, który pozwoli na oprawę twojego systemu Tx-Rx bez konieczności robienia tego ręcznie. Bądź na bieżąco z aktualizacjami!

Zalecana: