Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Przez lata widziałem wiele interesujących projektów robotów łazików drukowanych w 3D i uwielbiam to, jak technologia druku 3D pomogła społeczności robotów zwiększyć różnorodność w projektowaniu i wyborze materiałów. Chcę wnieść mały wkład do społeczności robotów, publikując MrK_Blockvader na Instructable for the Maker Community.
MrK_Blockvader to zabawny mały robot z maleńkim brzęczykiem, ale nie daj się zwieść blokowemu wyglądowi. Mógł być wyposażony w czujnik koloru, czujnik odległości, moduł radiowy do komunikacji z innymi Blocky o podobnych możliwościach, z bazą lub ze sterownikiem.
MrK_Blockvader będzie częścią sieci robotów, w której można zostać przydzielonym jako dowódca grupy robotów, aby archiwizować ten sam cel.
Kieszonkowe dzieci
1 * Arduino Nano
1 * sterownik silnika prądu stałego
2 * silnik prądu stałego ze skrzynią biegów
1*650 mAh Venom LiPo;
2*1/24 RC ciężarówki koła;
2 * białe diody LED
1 * czujnik odległości
1 * czujnik koloru
1 * tabliczka zaciskowa nRF24
1 * płyta radiowa nRF24
1 * brzęczyk
1 * przełącznik
1*26 SIERPNIA Czarny drut
1*26 SIERPIEŃ Niebieski przewód
1*22 SIERPNIA Czarny drut
1*22 SIERPIEŃ czerwony przewód
Krok 1: Drukowanie 3D
Używam drukarki 3D CEL Robox wydrukowanej z materiału węglowego, co zapewnia lekkość i trwałość. Poniżej załączę pliki STL. Proszę o komentarz, jeśli masz jakiekolwiek pytania dotyczące procesu i ustawień druku 3D.
Krok 2: Przygotuj Arduino Nano
Nauczyłem się, że wykonanie prac przygotowawczych do wszystkich komponentów elektrycznych jest kluczem do czystego projektu.
Ten projekt obejmuje okablowanie płytki zaciskowej nRF24, zrobiłem to w osobnym projekcie o nazwie NRF24 Wireless LED Box, tutaj można znaleźć informacje o tym, jak podłączyć tablicę zaciskową nRF24 do Arduino.
Uwaga: używam grubszego przewodu 22 AWG do zasilania Nano i cienkich przewodów niebieski i czarny 26 AWG do wszystkich innych celów sygnałowych. Uwielbiam te przewody w rozmiarze 26 AWG, są elastyczne, ale jednocześnie mocne, zapewniają to, co najlepsze z obu światów.
Prace przygotowawcze Arduino Nano:
- Przylutuj listwę sygnałową do Arduino Nano.
- Zmoczenie tych pinów lutowiem znacznie ułatwi późniejsze lutowanie.
- Przylutuj grupę niebieskiego przewodu do 5V, aby zasilić wszystkie czujniki i diody LED.
- Przylutuj grupę czarnych przewodów do GND, aby zapewnić uziemienie wszystkich czujników i diod LED.
Prace przygotowawcze tabliczki zaciskowej NRF 24:
- Przylutuj 5 przewodów do płytki zaciskowej nRF24 dla sygnałów.
- Przylutuj 2 przewody do płytki zaciskowej nRF24 dla zasilania.
- Sprawdź link, aby upewnić się, jak podłączyć tablicę zaciskową do Arduino.
- Przylutuj 5 przewodów sygnałowych z nRF24 do Arduino Nana.
Prace przygotowawcze do brzęczyka:
- Przylutuj czarny przewód do jednej z nóg brzęczyka w celu uziemienia.
- przylutuj niebieski przewód do drugiej nogi brzęczyka w celu kontroli sygnału.
Prace przygotowawcze fotorezystora: (dostępny schemat)
- Przylutuj niebieski przewód do jednej z nóg fotorezystora na 5V.
- Do drugiej nogi fotorezystora przylutuj rezystor 10K.
- Przylutuj niebieski przewód między rezystorem 10K a fotorezystorem dla sygnału.
- Przylutuj czarny przewód do rezystora 10K jako uziemienia.
Prace przygotowawcze diod LED:
- Przylutuj niebieski przewód od dodatniej prawej diody LED do dodatniej lewej diody LED.
- Przylutuj czarny przewód od ujemnej prawej diody LED do ujemnej lewej diody LED.
- Przylutuj niebieski przewód do dodatniej prawej diody LED w celu kontroli sygnału.
- Przylutuj czarny przewód do ujemnej prawej diody LED jako uziemienia.
Krok 3: Przygotuj silnik prądu stałego, sterownik silnika prądu stałego i czujniki
MrK_Blockvador ma kilka opcji czujników, a dodatkowe czujniki nie wpływają na ogólną sprawność, jednak czujnik koloru nie będzie mógł zostać zainstalowany po przyklejeniu silnika prądu stałego.
Prace przygotowawcze do silnika prądu stałego:
- Przylutuj czarny i czerwony przewód do silnika prądu stałego.
- Owiń koniec silnika taśmą klejącą.
- Wypełnij obszar gorącym klejem, aby uszczelnić złącza silnika.
Prace przygotowawcze sterownika silnika prądu stałego:
- Przylutuj 6 przewodów sygnałowych do sterownika silnika.
- Przylutuj przewód sygnałowy do odpowiedniego pinu w Arduino Nano.
- Zamontuj przewody 12 V, aby zasilić sterownik silnika z akumulatora. Upewnij się, że masz wystarczająco długie przewody, aby poprowadzić je pod tyłem robota i wyprowadzać go.
- Zainstaluj przewody 5 V, aby zasilić Arduino Nano ze sterownika silnika.
Prace przygotowawcze do czujnika koloru (opcjonalnie):
- Przylutuj 2 przewody do sygnału.
- Przylutuj 2 przewody do zasilania.
- Przylutuj 1 przewód, aby kontrolować super jasną diodę LED.
Prace przygotowawcze czujnika odległości: (opcjonalnie)
- Przylutuj niebieski przewód do sygnału.
- Przylutuj kolejny niebieski przewód do portu dodatniego dla dodatniego 3V.
- Przylutuj czarny przewód na ujemnym porcie do uziemienia.
Krok 4: Montaż
Po wszystkich pracach przygotowawczych nadszedł moment, w którym wszystko się układa.
Uwaga: używam gorącego kleju do silnika prądu stałego i sterownika silnika prądu stałego, ponieważ gorący klej może zapewnić niewielką amortyzację wstrząsów, a jeśli trzeba go usunąć, odrobina alkoholu do wycierania natychmiast usunie gorący klej.
Proces montażu:
- Przyklej czujnik koloru na gorąco do obudowy i przeprowadź przewód czujnika koloru przez kanał. (opcjonalny)
- Przyklej na gorąco silniki prądu stałego do podwozia, upewnij się, że silnik prądu stałego jest wyrównany z podwoziem.
- Super przyklej głowicę Blocvader do obudowy, aby upewnić się, że wszystkie przewody przebiegają.
- Czujnik odległości gorącego kleju. (opcjonalny)
- Diody LED z klejem na gorąco do oczu Blockvador.
- Włóż do końca przewody silnika prądu stałego do sterownika silnika prądu stałego i mocno dokręć.
- Poprowadź przewody zasilające 12 V ze sterownika prądu stałego pod i z tyłu obudowy w celu włączenia/wyłączenia.
- Upewnij się, że wszystkie przewody ze wszystkich czujników są czyste przed przyklejeniem sterownika silnika prądu stałego.
- Prześlij kod testowy i rozwiąż ewentualne problemy.
Krok 5: Kod
Kod podstawowy:
Robot wykorzystujący swój fotorezystor wykrywający poziom oświetlenia w pomieszczeniu i reagujący na zmianę poziomu światła w czasie
Serce kodu:
void loop() { lightLevel = analogRead(Photo_Pin); Serial.print("Poziom światła: ");Serial.println(lightLevel); Serial.print("Bieżący wskaźnik: ");Serial.println(Bieżący_światło); if (lightLevel >= 200){ Chill_mode();analogWrite(eyes_LED, 50);Serial.println("Tryb chłodzenia");} if (lightLevel < 180){ Active_mode();analogWrite(eyes_LED, 150);Serial. println("Tryb aktywny");} }
Robotem można sterować za pomocą kontrolera i przełączać się w częściowy tryb autonomiczny za pomocą kontrolera.
Serce kodu:
void loop() {debug int = 0; lightLevel = analogRead (Photo_Pin); Dis = odczyt analogowy (Dis_Pin); // Sprawdź, czy istnieją dane do odbioru if (radio.available()) { radio.read(&data, sizeof(Data_Package)); if (data. C_mode == 0){Trim_Value = 10; Direct_drive();} if (data. C_mode == 1){Trim_Value = 0; Autonomous_mode();} if (data. C_mode == 2){Trim_Value = 0; Chill_mode();} if(debug >= 1) { if (data. R_SJoy_State == 0){Serial.print("R_SJoy_State = HIGH; ");} if (data. R_SJoy_State == 1){Serial.print("R_SJoy_State = LOW; ");} if (data. S_Switch_State == 0){Serial.print("S_Switch_State = HIGH; ");} if (data. S_Switch_State == 1){Serial.print("S_Switch_State = LOW; ");} if (data. M_Switch_State == 0){Serial.println("M_Switch_State = HIGH");} if (data. M_Switch_State == 1){Serial.println("M_Switch_State = LOW");} Serial.print("\n"); Serial.print("Tryb łazika: ");Serial.println(data. C_mode); Serial.print("L_XJoy_Value= ");Serial.print(data. L_XJoy_Value); Serial.print("; L_YJoy_Value= ");Serial.print(data. L_YJoy_Value); Serial.print("; R_YJoy_Value= ");Serial.print(data. R_YJoy_Value); Serial.print("; Throtle_Value= ");Serial.println(data. Throtle_Value); opóźnienie(debugowanie*10); } ostatniCzasOtrzymania = millis(); // W tej chwili otrzymaliśmy dane } // Sprawdź, czy nadal otrzymujemy dane, czy też mamy połączenie między dwoma modułami currentTime = millis(); if (currentTime - lastReceiveTime > 1000) // Jeśli aktualny czas jest dłuższy niż 1 sekunda od otrzymania ostatnich danych, { //oznacza to utratę połączenia resetData(); // Jeśli połączenie zostanie utracone, zresetuj dane. Zapobiega niechcianym zachowaniom, na przykład jeśli dron ma przepustnicę i tracimy połączenie, może dalej latać, chyba że zresetujemy wartości } }
Krok 6: Co dalej?
Ten projekt jest początkiem większego projektu, w którym sieć tych małych facetów pracuje razem, aby zarchiwizować wspólny cel.
Jednak te roboty musiałyby zgłosić swój status do stacji komunikacyjnej, a następnie ta stacja połączyłaby wszystkie raporty od wszystkich botów, aby następnie podjąć decyzję o tym, jakie będzie następne konieczne działanie.
Z tego powodu kolejnym etapem projektu byłby sterownik pełniący funkcję stacji komunikacyjnej. Pomoże to w dalszym rozwoju projektu.
Sam kontroler jest robotem, jednak jest bardziej pasywny niż Blockader. Dlatego kontroler opuszcza swój własny artykuł z instrukcjami, więc przygotuj się na przyszły projekt;D