Spisu treści:

Dwukierunkowe radio NRF24 do telemetrii: 9 kroków (ze zdjęciami)
Dwukierunkowe radio NRF24 do telemetrii: 9 kroków (ze zdjęciami)

Wideo: Dwukierunkowe radio NRF24 do telemetrii: 9 kroków (ze zdjęciami)

Wideo: Dwukierunkowe radio NRF24 do telemetrii: 9 kroków (ze zdjęciami)
Wideo: [Лекторий CanSat] nRF2401 - быстрый старт 2024, Lipiec
Anonim
Dwukierunkowe radio NRF24 do telemetrii
Dwukierunkowe radio NRF24 do telemetrii

Cześć chłopaki, nazywam się Pedro Castelani i przynoszę wam moją pierwszą instrukcję: zbudowanie dwukierunkowego radia z arduino do, cóż, do czegokolwiek tego potrzebujesz.

W tym projekcie wykonamy dwa oddzielne obwody, które będą pełnić rolę zarówno odbiornika, jak i nadajnika. Najważniejszymi komponentami są dwie płytki arduino (wszystkie działają) oraz dwa moduły nadawczo-odbiorcze nrf24. W moim przypadku kontroluję serwo potencjometrem z drugiego arduino i wysyłam napięcia z dwuogniwowej baterii lipo z powrotem do pierwszego.

Zamierzam użyć go jako dodatku do mojego drona, który nie posiada telemetrii ani sterowania serwonapędem. Możesz jednak użyć go do innych rzeczy, takich jak zbudowanie własnego quadkoptera, samolotu, samochodu rc itp. Z dostarczonego kodu możesz również dokonać dowolnych modyfikacji zgodnie z własnymi potrzebami. Postaram się również wyjaśnić, jak poprawnie go zmodyfikować (co zajęło mi trochę czasu, aby się nauczyć, ponieważ byłem przyzwyczajony do innego zastosowania układu nrf24).

Krok 1: Materiały

Materiały
Materiały
Materiały
Materiały
Materiały
Materiały

Aby rozpocząć nasz projekt, musimy znać wszystkie potrzebne części. Poniżej znajduje się lista podstawowych potrzebnych. Większość z nich kupiłem w lokalnym sklepie z elektroniką, w którym mieszkam, więc nie będę w stanie polecić Ci żadnego miejsca, w którym można je kupić. Możesz spróbować Amazon lub dowolnego innego miejsca. Nie mówię, że powinieneś je tam zamawiać, ale to tylko sugestia.

  1. Dwie płytki Arduino (każdy powinien działać. Mam dwie arduino pro mini, które bardzo lubię, ponieważ mają 13 cyfrowych pinów i 8 analogowych, podczas gdy Uno ma tylko 6 analogowych).
  2. Dwa moduły Nrf24. Niektóre z antenami zewnętrznymi mają większy zasięg transmisji. Wybierz te, które najbardziej Ci się podobają.
  3. Kable rozruchowe żeńsko-żeńskie i żeńsko-męskie.
  4. Tablica prototypowa.
  5. Programator Arduino (dla arduino pro mini, jeśli masz taki z połączeniem USB, nie będziesz go potrzebować).
  6. Arduino IDE (oprogramowanie). Pobierz stąd.
  7. W moim przypadku użyłem również:
  • Serwo. Każdy, kogo możesz dostać. Podoba mi się SG90, mały zaprojektowany dla arduino.
  • Potencjometr (od 10k do 20k omów). Można kupić w lokalnym sklepie z elektroniką lub skorzystać z joysticka stworzonego dla arduino. Jest kilka zdjęć tych, które mam. Dostałem też jeden ze zepsutego kontrolera drona, żeby dać ci kilka pomysłów
  • 4 równe normalne rezystory. Zużyłem 10 tysięcy egzemplarzy, które dostałem z domu mojego dziadka. Używam ich jako dzielników napięcia.
  • Mała miedziana płytka perforowana (którą też dostałem od dziadka) do lutowania razem rezystorów.
  • Szpilki. Służy do łatwego podłączenia kabli połączeniowych z arduino do rezystorów.
  • Bateria lipo 2s. Używam go do zasilania jednego z moich arduino. Rezystory są do niego podłączone i odczytują jego napięcia. Zamierzam, aby moje arduino było podłączone do baterii 2s mojego drona, ponieważ nie będzie potrzebować zewnętrznego źródła zasilania, a jednocześnie powiedzieć mi, ile pozostało baterii.
  • Lutownica i lut. Potrzebne do zlutowania razem rezystorów, perfboard i pinów.

Krok 2: Funkcja i kod

Funkcja i kod
Funkcja i kod

Po wymienieniu wszystkich materiałów zacznijmy mówić o funkcji modułów.

Jak to działa: Nazwijmy jedno arduino „A”, a drugie „B”. W moim przypadku po zaprogramowaniu obu podłączyłem je do odpowiedniego układu radiowego i dodałem potencjometr do arduino A a rezystory i serwo do arduino B. Moduł A wysyła wartości do B i przesuwa serwo. B odczytuje napięcia baterii 2s i wysyła je z powrotem do A. Następnie cały okrąg zaczyna się od nowa. Ponieważ A odbiera wartości, które nie są wyrażane mechanicznie, jest podłączony do programatora, za pomocą którego możemy je odczytać za pomocą monitora szeregowego (dołączonego do Arduino IDE)

Kod: Nazywam szkic dla arduino A (połączony z programatorem i potencjometrem) TwoWayRadio_1, a szkic dla arduino B TwoWayRadio_2WithServo

TwoWayRadio_1 i TwoWayRadio_2WithServo można znaleźć tuż pod tym akapitem. W każdym kodzie znajduje się wyjaśnienie, aby wszystko było łatwiejsze do zrozumienia.

Krok 3: Moduły lutownicze: dzielnik napięcia i potencjometr

Moduły lutownicze: dzielnik napięcia i potencjometr
Moduły lutownicze: dzielnik napięcia i potencjometr
Moduły lutownicze: dzielnik napięcia i potencjometr
Moduły lutownicze: dzielnik napięcia i potencjometr
Moduły lutownicze: dzielnik napięcia i potencjometr
Moduły lutownicze: dzielnik napięcia i potencjometr
Moduły lutownicze: dzielnik napięcia i potencjometr
Moduły lutownicze: dzielnik napięcia i potencjometr

Ten krok jest opcjonalny, ponieważ możesz po prostu użyć joysticka potencjometru zaprojektowanego specjalnie dla arduino i użyć innego modułu zamiast dzielnika napięcia. Ja natomiast zaplanowałem wszystko (wraz z kodami) dla tych modułów.

Potencjometr:

Ta część jest najłatwiejsza na etapie lutowania. Musisz tylko przylutować kilka kabli połączeniowych do potencjometru. Jeśli chcesz, możesz najpierw przylutować potencjometr do płytki perforowanej, a następnie przylutować niektóre piny. Gdy trzeba z niego skorzystać, wystarczy podłączyć zworki do arduino, a następnie do pinów na płytce perfboard. Gdy nie są używane, możesz usunąć kable i użyć ich do innego projektu. Jeśli jednak zrobisz tak jak ja, możesz zostawić potencjometr przylutowany bezpośrednio do kabli

  • Jeśli robisz tak jak ja, weź trzy żeńsko-żeńskie kable połączeniowe, odetnij jedną z końcówek i usuń tam izolację, pozostawiając mały kawałek miedzianego okablowania na każdym drucie.
  • Rozgrzej lutownicę i przylutuj zmodyfikowane zworki do pinów potencjometrów. Jeśli możesz, spróbuj uzyskać różne kolory, aby zapamiętać, który z nich to vcc, gnd i ten "sygnałowy" (środkowy). Podłącz te kable do odpowiednich pinów analogowych na arduino. Na początku etapu jest kilka zdjęć pokazujących, jak to się skończyło. Potencjometr nie jest zwykłym, to właściwie małe kółko, które miało pięć pinów. Zajęło mi trochę czasu, aby dowiedzieć się, który jest który. Spróbuj zrobić to łatwiej i użyj zwykłego potencjometru, jak pokazano w kroku MATERIAŁY.
  • Jeśli lutujesz go do płytki perforowanej, weź potencjometr i płytkę perforowaną i przylutuj je razem z lutownicą.
  • Zdobądź szpilki (trzy) i umieść je w najwygodniejszy sposób. Użyj lutu, aby wykonać połączenie między każdym pinem a pinami potencjometru. Nie twórz połączenia między więcej niż dwoma pinami, bo nie będzie działać (będzie działać jak zwarcie).
  • Zdobądź kilka przewodów połączeniowych żeńsko-żeńskich lub żeńsko-męskich i podłącz je z arduino do nowego modułu potencjometru (pamiętaj, który jest który).

2. Dzielnik napięcia:

  • Ta część jest nieco bardziej skomplikowana. Będziesz musiał zdobyć cztery rezystory, pięć pinów i płytkę perforowaną. Zaprojektowałem kod do użycia dla baterii 2s (dwóch ogniw), ale można go również użyć do 1s, zmieniając nieco szkic arduino i sprzęt. Dołączyłem zdjęcia dwóch wykonanych przeze mnie dzielników napięcia, jednego tylko z 2 opornikami (dla baterii 1s) i jednego z czterema (zgadliście: baterie 2s).
  • Zacznijmy od 2s. Nie mam obrazów procesu budowy, odkąd zacząłem pisać o tym instruktażu chwilę po zakończeniu lutowania. Zamieszczam zdjęcia końcowego wyniku, więc postaram się, aby były jak najbardziej przejrzyste.
  • Zacznij od zdobycia płyty perforowanej i 5 szpilek. Przylutuj je blisko boku i nie pozwól im się stykać.
  • Przylutuj rezystory, jak pokazano na ostatnim obrazku na początku kroku (mały schemat obwodu). Połączenia pomiędzy każdym rezystorem a pinem wykonuje się za pomocą lutu. Postaraj się zająć jak najmniej miejsca.
  • Kiedy skończysz, powinno to wyglądać jak na zdjęciach gotowego dzielnika napięcia, które zamieściłem powyżej.
  • Dzielnik napięcia 1s jest w zasadzie taki sam, z wyjątkiem tego, że używasz tylko trzech pinów i dwóch rezystorów. Dołączyłam zdjęcia, jak to wygląda po zakończeniu. Po prostu spójrz na schemat dla 2s i wyobraź sobie bez przewodu sygnałowego 1, przewodu środkowego i rezystorów r2 i r3 i już masz!
  • Tak więc, jeśli chcesz dzielnik napięcia 1s, może to być trochę bardziej skomplikowane niż użycie tylko 2s.

Krok 4: Programowanie Arduino

Programowanie Arduino
Programowanie Arduino
  1. Już prawie skończyliśmy!
  2. Po pobraniu oprogramowania Arduino IDE ze strony połączonej w kroku MATERIAŁY, pobierz szkice z kroku FUNKCJA I KOD.
  3. Następnie otwórz je w Arduino IDE.
  4. Otwórz "Narzędzia" w dowolnej z obu zakładek i kliknij "Płyty". Wybierz swoją tablicę z listy. Kliknij "Procesor", a następnie "Programista", wybierając każdy z nich zgodnie z twoją płytą. Następnie wróć do szkicu. Wygodnie jest przeglądać informacje o swojej tablicy w Internecie. Po prostu wyszukaj nazwę i zobacz specyfikacje.
  5. Kliknij „szkic” (na górze), następnie „dołącz bibliotekę”, a następnie „zarządzaj bibliotekami”. Na środku ekranu powinno otworzyć się małe okno. Wpisz w wyszukiwarce „rf24”. Pobierz żądaną bibliotekę. Konieczna będzie możliwość wgrania kodu na płytkę arduino.
  6. Aby się upewnić, kliknij symbol „Tick” (w górę po lewej), aby sprawdzić, czy nie ma żadnych błędów. Następnie przejdź do załadowania, naciskając strzałkę skierowaną w prawo, obok symbolu „Tick”.
  7. Jeśli twoja płyta to Pro Mini, za chwilę wyjaśnię, jak to wszystko podłączyć. Jeśli tak nie jest, wystarczy go wgrać i po zakończeniu programowania obu arduino przejść do kolejnego kroku, po przeczytaniu poniższego ostrzeżenia.
  8. Ponieważ masz dwie tablice, PAMIĘTAJ, z którym kodem została zaprogramowana każda, aby uniknąć przyszłych problemów.
  9. Tak więc, jeśli masz Pro Mini, będziesz potrzebować programatora. Istnieją dwa rodzaje programatorów: 5-pinowe i 6-pinowe. Skoncentruję się na 5-pinowych, ponieważ są tymi, które mam. Połączenia są następujące (pierwszy pin pochodzi z programatora, a następnie z arduino): Gnd--Gnd; 5 V-Vcc (z wyjątkiem sytuacji, gdy Twój Pro Mini to 3,3 V, w którym to przypadku jest to 3,3 V - Vcc); Rxd--Txo; Txd--Rxi. Dołączyłem obraz zarówno płytki, jak i programatora, na wypadek, gdybyś musiał to sprawdzić.
  10. Podłącz swoje arduino do programatora, a programator do komputera. Otwórz IDE i kliknij przycisk przesyłania. Jeśli spojrzysz na lewy dół ekranu, zobaczysz komunikat „kompilacja”. W momencie, gdy ten komunikat zmieni się w „przesyłanie”, naciśnij przycisk resetowania na arduino Pro Mini. Po chwili szkic się zakończy i pojawi się komunikat „Zakończono przesyłanie”. Gdy to się stanie, skończysz i możesz przejść do następnego kroku.

Krok 5: Łączenie wszystkiego

Łącząc wszystko
Łącząc wszystko
Łącząc wszystko
Łącząc wszystko
Łącząc wszystko
Łącząc wszystko
Łącząc wszystko
Łącząc wszystko
  1. Po zaprogramowaniu obu arduino, musimy wszystko połączyć, aby wszystko działało. Tutaj będziemy potrzebować wszystkiego, o czym wspomniano wcześniej: arduino, moduły nrf24, kable, serwo, programator, dzielnik napięcia, potencjometr itp.
  2. Najpierw podłączymy arduino, które współpracuje z programatorem. Na początku kroku znajdują się obrazy połączeń nrf24. Pin irq, o którym mówi się, że idzie do pinu 8 w arduino, w ogóle nie jest podłączony. Reszta jest taka sama jak na obrazku dla obu arduino (możesz przeczytać notatki wewnątrz obrazków, aby uzyskać więcej informacji)
  3. Vcc dla radia może być podłączony do 3,3 lub 5v. Czasami działa tylko z jednym z nich. Spróbuj z 3.3, a następnie 5, jeśli to nie zadziała. W przypadku 3.3 użyj pinu 3.3v programatora. Musiałem to zrobić, jak widać na zdjęciach gotowego produktu.
  4. Podłącz programator do arduino, jak wspomniano w poprzednim kroku.
  5. Podłącz kabel "sygnałowy" potencjometru do pinu analogowego A0.
  6. Podłącz "Dodatni" potencjometr do Vcc (tylko 5V, nie 3.3) i "Ujemny" do Gnd.
  7. Przejdź do drugiego arduino.
  8. Podłącz radio tak, jak powiedziałem wcześniej, zgodnie z obrazkami.
  9. Podłącz kabel sygnałowy serwomechanizmu (pomarańczowo-żółto-biały. Sprawdź specyfikację serwomechanizmu) do cyfrowego pinu 2, a jego gnd do Gnd arduino, a dodatni do Vcc arduino.
  10. Podłącz kabel sygnałowy 1 z dzielnika napięcia do styku A0, a przewód sygnałowy 2 do styku A1.
  11. Połącz za pomocą płyty prototypowej przewód ujemny dzielnika napięcia, gnd arduino i gnd akumulatora (czarny przewód na wtyczce jst).
  12. Połącz "środkowy przewód" z dzielnika napięcia do środkowego akumulatora, pomiędzy czerwony i czarny przewód wtyczki jst (kolor biały).
  13. Podłącz kabel „dodatni” z dzielnika napięcia do dodatniego zacisku akumulatora i do Raw arduino. Nie podłączaj bezpośrednio do Vcc, ponieważ ten pin jest specjalnie dla 5 V. Raw pin używa dowolnego napięcia powyżej 3,3 lub 5 V do 12 V i reguluje je Piny Vcc stają się następnie wyjściami z 5V.

Twoje prawie gotowe! Twoje gotowe produkty powinny wyglądać tak, jak na powyższych zdjęciach. Sprawdź ponownie każde połączenie, aby uniknąć zwarć.

Krok 6: Wzmocnij swój projekt

  • Twoje arduino z serwo zostało zasilone w ostatnim kroku po podłączeniu akumulatora do całego obwodu. Więc wystarczy podłączyć drugie arduino do portu USB i gotowe!
  • Poruszaj potencjometrem i powinieneś zobaczyć, jak porusza się serwo. W moim przypadku serwo jest przymocowane do 1-osiowego gimbala kamery, co ograniczało kąt, więc musiałem dostosować parametry. W każdym razie znajdziesz to w kodzie.
  • Aby zobaczyć napięcia, po podłączeniu programatora do komputera otwórz oprogramowanie arduino i naciśnij "Ctrl+Shift+m". Otworzy się okno z napisem „Serial Monitor”. Na dole tego okna znajduje się opcja, która brzmi "(liczba) bodów". Kliknij na niego i wybierz „9600”. Zamknij monitor i otwórz go ponownie, naciskając te same klawisze, a powinieneś zacząć widzieć wiele wartości napływających. Nie będziesz w stanie zobaczyć, jakie są te wartości ze względu na prędkość, z jaką przychodzą, ale jeśli odłączysz programista zatrzymają się i możesz je przeczytać. Próbuję uzyskać coś, za pomocą którego można by je automatycznie wykreślić, aby wyświetlić napięcia lub przedstawić je za pomocą diod led, ale to wciąż trwa.
  • Nawet jeśli nie widzisz wyraźnie wartości, ponieważ mijają one tak szybko, po prostu wiedz, że w końcu działa i że możesz je zmodyfikować, aby dostosować je do swoich potrzeb!

Krok 7: Demo

Cóż, to jest film, w którym go zasilam i używam go tylko trochę, aby pokazać, jak to powinno działać.

Krok 8: Więcej pomysłów na wykorzystanie tego projektu

Więcej pomysłów na wykorzystanie tego projektu
Więcej pomysłów na wykorzystanie tego projektu
Więcej pomysłów na wykorzystanie tego projektu
Więcej pomysłów na wykorzystanie tego projektu
Więcej pomysłów na wykorzystanie tego projektu
Więcej pomysłów na wykorzystanie tego projektu

Oto kilka pomysłów, które możesz zbudować, używając tego jako podstawy. Powiedz mi, czy zrobisz jeden z nich, czy też spróbujesz i nie możesz, więc mogę pomóc!

  • Zamiast odczytywać napięcia, zmodyfikuj kod tak, aby odsyłał temperaturę, ciśnienie, wysokość itp. Chip BMP180 okazał się do tego całkiem przydatny.
  • Zmierz odległości za pomocą modułu HC-SR04 i wyślij je z powrotem do pierwszego arduino. Użyj serwomechanizmu, aby skierować czujnik w dowolne miejsce.
  • Dodaj kolejny kanał serwo, aby przesunąć kamerę w górę i na boki; na przykład w samochodzie rc.
  • Dodaj trzy inne kanały serwo (lub więcej!) i stwórz własny nadajnik i odbiornik rc dla quadkoptera, samolotu, helikoptera, samochodu rc itp.!
  • Zmień serwo na reflektor i dodaj go do swojego drona! Będziesz także mógł kontrolować intensywność światła (może potrzebować trochę tranzystorów i trochę zmiany kodu)
  • Zamiast odczytywać napięcia na komputerze, wykaż się kreatywnością i dodaj moduł lcd lub możesz zrobić tablicę z 6 diodami (dwie zielone, dwie żółte i dwie czerwone), która wyłączy je jeden po drugim, gdy bateria się wyczerpie i zacznie migać, gdy poziom naładowania baterii spadnie poniżej wybranego napięcia. Zrobiłem tę małą tablicę i zamieściłem zdjęcie na początku kroku.

Żeby wszystko było jasne, jeśli zamierzasz zrobić jeden z tych projektów, pamiętaj, że będziesz musiał zmodyfikować oba kody i być może niektóre połączenia. Pamiętaj, żeby nie smażyć swojej deski robiąc coś głupiego.

Jeśli masz więcej pomysłów lub potrzebujesz pomocy w realizacji jednego z tych projektów, napisz w dziale pytań!

Krok 9: Rozwiązywanie problemów

Rozwiązywanie problemów
Rozwiązywanie problemów

Prawdę mówiąc, większość problemów, które do tej pory napotkałem, dotyczyła części szkicowej, którą już rozwiązałeś. Postaram się opowiedzieć Ci jak najwięcej problemów, aby jak najlepiej Ci pomóc.

Po pierwsze, jeśli próbujesz przesłać szkic i nie możesz, wypróbuj to:

Upewnij się, że pobrałeś niezbędne biblioteki (i właściwe!).

Upewnij się, że wybrałeś właściwą płytę, procesor i programator.

Upewnij się, że połączenie między komputerem a programatorem oraz programatorem i arduino jest dobre.

Jeśli używasz Pro mini, spróbuj nacisnąć przycisk resetowania tak szybko, jak to możliwe po pojawieniu się komunikatu „przesyłanie”.

Wszystkie te rzeczy są omówione w kroku PROGRAMOWANIE TWOJEGO ARDUINO.

Po drugie, sprawdź wszystkie połączenia między wszystkim:

Jeśli twoje arduino nie włącza się, jest to wyraźnie problem z napięciem. Sprawdź, czy kable nie są prawidłowo podłączone i czy nie ma zwarcia.

Jeśli włącza się, ale nie działa, upewnij się, że wszystkie połączenia są tam, gdzie powinny być, że arduino zaprogramowane do podłączenia do serwomechanizmu i dzielnika napięcia jest naprawdę połączone z nimi (innymi słowy, upewnij się, że nie pomieszałeś je w górę), spróbuj nacisnąć przycisk resetowania na obu z nich i zobacz, co się stanie. W niezwykle rzadkich przypadkach cała wina może być po stronie modułu NRF24. Znalazłem jeden z moich, który działa tylko na 5 woltach, a drugi, który działa tylko na 3,3 V. Sprawdź, czy to coś rozwiązuje. Zdarzyło mi się też, że tylko jedno arduino współpracowało z radiem 3.3v a drugie tylko z 5v. Zaskakujące, prawda?

Po trzecie, jeśli możesz ruszyć serwo, ale napięcia są złe, sprawdź połączenia do dzielnika napięcia jak na schemacie w kroku 3, a połączenie do arduino. Jeśli natomiast dostajesz napięcia, ale nie możesz prawidłowo poruszyć serwo, sprawdź potencjometr i jego połączenia, połączenie serwa z pinem cyfrowym oraz z Vcc i Gnd oraz czy serwo jest zablokowane, zepsute lub w zwarcie. Spróbuj go zmienić na inny serwo. Upewnij się, że cyfrowy pin jest taki sam, jak określony w kodzie

Cóż, to prawie wszystkie rzeczy, które mogą mi przychodzić na myśl w związku z problemami, które możesz napotkać. Mam nadzieję, że nigdy się nie wydarzą i Happy Projects!

Dziękuję za przeczytanie mojego Instructable! Prosimy o udostępnienie i zagłosowanie na Konkurs AUTORSKI PIERWSZY RAZ!

Zalecana: