Spisu treści:

Robot sterowany serwo Arduino (SERB): 7 kroków (ze zdjęciami)
Robot sterowany serwo Arduino (SERB): 7 kroków (ze zdjęciami)

Wideo: Robot sterowany serwo Arduino (SERB): 7 kroków (ze zdjęciami)

Wideo: Robot sterowany serwo Arduino (SERB): 7 kroków (ze zdjęciami)
Wideo: Single servo robot 2024, Lipiec
Anonim
Serworobot sterowany Arduino (SERB)
Serworobot sterowany Arduino (SERB)
Serworobot sterowany Arduino (SERB)
Serworobot sterowany Arduino (SERB)
Serworobot sterowany Arduino (SERB)
Serworobot sterowany Arduino (SERB)
Serworobot sterowany Arduino (SERB)
Serworobot sterowany Arduino (SERB)

Czy jest lepszy sposób na rozpoczęcie eksperymentowania z mikrokontrolerami typu open source (Arduino) niż zbudowanie własnego robota typu open source (CC (SA -BY))? Co zrobić z SERBem?

  • (tutaj) - Jak podłączyć SERB do Internetu i prowadzić go przez rozmowę wideo Skype.
  • (tutaj) - Jak kontrolować SERB za pomocą akcelerometrów Wii nunchuck
  • (tutaj) - Jak dodać wąsy wykrywające przeszkody do swojego robota?
  • (tutaj) - Jak zrobić 30 zestawów (Open Manufacturing)

Cechy:

  • W pełni programowalny za pomocą mikrokontrolera Arduino Duemilanove (lub innego wybranego mikrokontrolera).
  • Nie ma potrzeby lutowania.
  • Wybór opcji cięcia elementów akrylowych. (piła taśmowa, dostęp do wycinarki laserowej, zakup wyciętych elementów)
  • Łatwo rozszerzalny i modyfikowalny dzięki dodatkowym otworom na śruby i dołączonej płytce stykowej.
  • Tylne koło z podwójnym łożyskiem kulkowym.
  • Gotowy do pracy w ciągu 1-2 godzin. (z zestawu)
  • Projekt open source (buduj tyle, ile chcesz)

(Wtyczka Shameless) W Wielkiej Brytanii i lubisz rzeczy Arduino? sprawdź nasz nowo otwarty sklep internetowy oomlout.co.uk Krótki film przedstawiający ukończony robot serwo sterowany Arduino - (SERB) uruchamiający dołączony program testowy (krok 6) Uwaga: Pliki źródłowe są dostępne równolegle Instructable (Source Files For) - Jak zrobić robota serwo sterowanego Arduino - (SERB)

Krok 1: Części i narzędzia

Części i narzędzia
Części i narzędzia

Wszystkie śruby można znaleźć w lokalnym Home Depot. Pozostałe części można znaleźć online (dla każdego zamieściłem link do mojego ulubionego źródła). Lista części:Pakiet zawierający wszystkie elementy sprzętu można kupić w sklepie oomlout.com (tutaj) (120 USD)Nakrętki i śruby:

  • śruba 3mm x 15mm (x20)
  • Śruba 3mm x 10mm (x12)
  • Nakrętka 3mm (x34)
  • Podkładka 3mm (x12)
  • śruba 8mm x 25mm (x2)
  • Nakrętka 8mm (x2)
  • Łożyska do rolek (x2) (VXB) (są to standardowe łożyska do rolek, dzięki czemu można je odzyskać z pary rolek lub deskorolki)

Opony

  • Duży o-ring (4,5" ID 3/16" Bead Dash #349) (x2) (produkt McMaster-Carr #9452K407)
  • Mały o-ring (3/4" ID 3/16" Bead Dash #314) (x1) (produkt McMaster-Carr #9452K387)

Elektronika

  • Arduino Duemilanove (x1) (Szopa Stwórcy)
  • Serwo obrotowe ciągłe (x2) (paralaksa)
  • Płytka do krojenia styków 400 (x1) (cała elektronika))
  • Pudełko na poczwórne baterie AA (x1) (cała elektronika)
  • Zacisk akumulatora 9 V (x1) (cała elektronika)
  • Wtyczka 2,1 mm (x1) (cała elektronika)
  • Listwa 3-pinowa (x2) (cała elektronika)
  • Kabel USB A-B - styl do drukarki (x1) (cała elektronika) (nie wchodzi w skład zestawu)

Baterie:

  • Bateria AA (x4) (brak w zestawie)
  • Bateria 9v (x1) (brak w zestawie)

Drut: (wszystkie druty są stałe 22 AWG, które kupuję za pośrednictwem McMaster-Carr)

  • 15 cm Fioletowy (x2)
  • 15 cm Czarny (x1)
  • 5 cm Czarny (x2)
  • 5 cm Czerwony (x2)

Narzędzia

  • Śrubokręt (x1) (Philips)
  • Szczypce półokrągłe (x1)

Krok 2: Cięcie kawałków

Cięcie sztuk
Cięcie sztuk
Cięcie sztuk
Cięcie sztuk
Cięcie sztuk
Cięcie sztuk
Cięcie sztuk
Cięcie sztuk

Proszę wybrać, które kroki należy wykonać w oparciu o wybraną opcję cięcia. Opcja 1 (Zakup wstępnie wyciętych części)

Kup wstępnie przyciętą obudowę w sklepie oomlout.com (tutaj) (60 USD, w tym wysyłka do USA i Kanady)

Opcja 2 (Digital Manufacturing (tj. Ponoko) / Dostęp do wycinarki laserowej)

  • Pobierz układ wycinarki laserowej („03 SERB Ponoko Cutting Layout P2.eps” lub „03-(SERB)-Ponoko Cutting Layout (P2).cdr”)
  • Wytnij pliki za pomocą Ponoko lub na własnym wycinaczu laserowym (używając akrylu 3mm,.118" (czasami sprzedawany jako.125")

Opcja 3 (piła i wiertło)

  • Pobierz i wydrukuj wzór PDF (proszę wybrać plik odpowiadający rozmiarowi papieru) 03-(SERB)-Wzór przewijanej piły (letter).pdf 03-(SERB)-Wzór przewijanej piły (A4).pdf (ważne jest, aby nie skalować rysunek podczas drukowania)
  • Zmierz linijkę na wydruku z linijką, której ufasz, jeśli nie pasują, wzór został przeskalowany i musisz sprawdzić ustawienia drukarki przed ponownym wydrukowaniem. Jeśli się zgadzają, dalej.
  • Przyklej wzór do arkusza akrylowego (3 mm, 0,118" (czasami sprzedawany jako 0,125").
  • Wiercić dziury.
  • Wycinanki za pomocą piły do przewijania

Krok 3: Montaż

montaż
montaż
montaż
montaż
montaż
montaż

Gratulacje, że udało Ci się dotrzeć tak daleko, że 90% procesu jest ukończone, wystarczy pobrać instrukcje montażu na tym etapie (04-(SERB)-Assembly Guide.pdf) i po krótkim montażu w stylu lego/mechano będziesz gotowy do podłączenia. Aby cię zabawić po drodze, oto czas mojego zgromadzenia:

Krok 4: Okablowanie

Okablowanie
Okablowanie
Okablowanie
Okablowanie

Ze wszystkimi dużymi kawałkami razem nadszedł czas, aby dodać małe żyły elektryczne, które pozwolą kontrolować naszego robota. Aby to zrobić, pobierz i wydrukuj schemat połączeń (05-(SERB)-Schemat połączeń.pdf). Na pierwszy rzut oka może to wyglądać dość zniechęcająco, jednak jeśli wykonasz każde połączenie sekwencyjnie i nie spiesz się, łączy się ono niezwykle szybko. Okablowanie jest dość proste i nie może zaszkodzić twojemu obwodowi, dopóki nie dodasz baterii. Więc podłącz wszystko dokładnie sprawdź to, a następnie dodaj zasilanie.

Krok 5: Testowanie i rozwiązywanie problemów

Testowanie i rozwiązywanie problemów
Testowanie i rozwiązywanie problemów

Jeśli zamówiłeś zestaw, twoje Arduino ma fabrycznie załadowany program testowy. Wystarczy włożyć 4 baterie AA i podłączyć baterię 9V do Arduino. A jeśli wszystko zostało zrobione poprawnie, robot zacznie się poruszać (obróci się w losowym kierunku przez czas od 0,1 do 1 sekundy, zanim ruszy do przodu przez losowy czas od 1 do 2 sekund, a następnie zatrzyma się na 2 sekundy przed ponownym uruchomieniem). Jeśli nie kupiłeś zestawu, wymagany jest dodatkowy krok. Pobierz załączony plik zip (07-(SERB)- SERB-Test Arduino Program.zip). Następnie rozpakuj go w katalogu szkicu Arduino (domyślnie „moje dokumenty\Arduino”) i pobierz go na swoją płytę arduino. (jeśli jesteś nowy w Arduino, przejdź do przodu o jeden krok, gdzie znajdują się linki do świetnych samouczków dla początkujących) Typowe problemy: Mój SERB porusza się powoli, gdy powinien zostać zatrzymany. Wynika to z tego, że twoje serwa nie są dobrze skalibrowane. Aby skalibrować serwa, poczekaj, aż program się zatrzyma, a następnie małym śrubokrętem przekręć potencjometr wewnątrz serwa (mały otwór w obudowie serwa tuż nad miejscem, gdzie są przewody).). Obracaj go w lewo lub w prawo, aż serwo naprawdę się zatrzyma. Rzeczy nie działają poprawnie. Wyślij do nas e-mail ze swoimi objawami, a my postaramy się pomóc, czekając na odpowiedź, dokładnie sprawdź wszystkie przewody ze schematem połączeń z kroku 4. Jeśli napotkasz jakiś problem, dodaj komentarz do tej instrukcji lub wyślij e-mail na adres [email protected], a my postaramy się jak najlepiej, aby pomóc Ci uruchomić SERB

Krok 6: Programowanie

Programowanie
Programowanie

Fizyczny robot kończy czas, aby zacząć dawać mu mózg. Zanim przejdziemy do szczegółów programowania Arduino Controlled Servo Robot - (SERB) - kilka linków do doskonałych zasobów programowania Arduino w Internecie. Arduino Starter Guide - przewodnik aby pomóc Ci rozpocząć pracę z Arduino, od pobrania środowiska programistycznego do napisania pierwszego programu. Arduino Programming Reference - Kompletny, łatwy do odniesienia przewodnik po języku programowania Arduino. Jak działają serwomechanizmy - Szybki wstęp do tego, jak działają serwomotory. Arduino Servo Library - Jak działa biblioteka Arduino Servo (jak kontrolujemy nasze serwa). Istnieją trzy sposoby na rozpoczęcie programowania robota serwo sterowanego Arduino - (SERB). Opcja 1: (Modyfikacja SERB_Test.pde)Czasami podczas programowania najłatwiej jest wziąć działający program i rozpocząć dodawanie do niego własnego kodu. W tym celu należy pobrać spakowany program SERB_Test (07-(SERB)-SERB-Test Arduino Program.zip). Przejdź do rozpakowania tego w folderze szkicu Arduino (domyślnie „Moje dokumenty\Arduino\”). Na koniec otwórz środowisko programistyczne Arduino i pobierz je do swojego Arduino. Kod jest dobrze skomentowany. (lub skopiuj i wklej kod z załącznika w tym kroku do nowego szkicu Arduino)Opcja 2: (Dodawanie procedur SERB do swojego programu)Dodaj kilka prostych procedur do istniejącego programu (np. goForward(), setSpeed(int) itp.). Aby to zrobić, pobierz procedury z pliku tekstowego (07-(SERB)- Simple Routines Text.txt). 1. Skopiuj i wklej część preambuły na początek swojego programu.2. Skopiuj i wklej część procedury do ciała programu.3. Dodaj wywołanie do serbSetup(); do procedury setup(). Opcja 3: (Tworzenie własnego programu od podstaw)To nie jest zbyt trudne. Wystarczy zapoznać się z biblioteką Arduino Servo Library. Następnie prawy serwo jest podłączony do pinu 9, a lewy do pinu 10. Uwaga: Dodatkowe programy będą tu dodawane w miarę ich opracowywania; lub jeśli coś opracujesz i chciałbyś, aby było to wyróżnione, wyślij mi prywatną wiadomość i można to dodać. Dodatek: (Kod SERB_Test.pde)

/* * Arduino Controlled Servo Robot (SERB) - Program testowy * Więcej szczegółów na stronie: https://www.oomlout.com/serb * * Zachowanie: Prosty program testowy, który powoduje, że SERB * obraca się losowo w lewo lub w prawo przez * losowy okres czasu od 0,1 do 1 sekundy. * SERB będzie wtedy jechał do przodu przez losowy * czas od 1 do 2 sekund. Wreszcie * pauza na 2 sekundy przed ponownym uruchomieniem. * * Okablowanie: Right Servo Signal - pin 9 * Left Servo Signal - pin 10 * * Licencja: Ta praca jest objęta licencją Creative Commons * Uznanie autorstwa – Na tych samych warunkach 3.0 Unported License. Aby * wyświetlić kopię tej licencji, odwiedź * https://creativecommons.org/licenses/by-sa/3.0/ * lub wyślij list do Creative Commons, 171 Second * Street, Suite 300, San Francisco, California 94105, * Stany Zjednoczone. * */ //---------------------------------------------- -----------------------------// START SERWOROBOTA STEROWANEGO ARDUINO (SERB) PREAMBUŁA#include #define LEFTSERVOPIN 10 #define RIGHTSERVOPIN 9Servo lewoSerwo; Serwo prawoSerwo; prędkość wewnętrzna = 100; //ustawia prędkość robota (oba serwa) //procent od 0 do 100// END OF ARDUINO CONTROLLED SERVO ROBOT (SERB) PREAMBUŁA//---------------- -------------------------------------------------- --------/* * ustawia piny w odpowiednich stanach i podpina serwa. Następnie zatrzymuje się * na 1 sekundę przed uruchomieniem programu*/ void setup() { serbSetup(); //ustawia stan wszystkich potrzebnych //pinów i dodaje serwa do twojego szkicu randomSeed(analogRead(0)); //ustawia ziarno liczby losowej za pomocą //coś łagodnie losowego opóźnienia(1000);}/* * obraca robota w lewo lub w prawo (losowo) przez okres od * 0,1 do 1 sekundy. Przed przejściem do przodu przez losowy okres * od 1 do 4 sekund. Przed wstrzymaniem na dwie sekundy, a następnie * ponownym rozpoczęciem.*/void loop() { turnRandom(100, 1000); //Obraca się losowo w lewo lub w prawo przez //losowy okres od 0,1 sekundy //do jednej sekundy goForwardRandom(1000, 2000); //Przechodzi do przodu o losowy okres //od //1 do 2 sekund goStop(); //Zatrzymuje opóźnienie robota(2000); //wstrzymuje na 2 sekundy (podczas zatrzymania)}/* * obraca robota losowo w lewo lub w prawo przez losowy okres czasu od * minTime (milisekundy) do maxTime (milisekundy) */void turnRandom(int minTime, int maxTime){ int wybór = losowy(2); //Losowa liczba do wyboru //między lewą (1) a prawą (0) int turnTime = random(minTime, maxTime); //Losowa liczba dla pauzy //czas if(choice == 1){ goLeft();} //Jeżeli losowa liczba = 1 to skręć //w lewo {goRight();} //Jeżeli losowa liczba = 0 to skręt //opóźnienie w prawo(czas skrętu); //opóźnienie o losowy czas }/* * przechodzi do przodu o losowy okres czasu pomiędzy minTime (milisekundy) * a maxTime (milisekundy) */void goForwardRandom(int minTime, int maxTime){ int forwardTime = random(minTime, maxTime); //określ losowy czas //przejścia do przodu goForward(); //ustawia SERB forward delay(forwardTime); //opóźnienia dla losowego przedziału czasu}//------------------------------------------- --------------------------------//POCZĄTEK STEROWANYCH SERWOROBOTAMI ARDUINO (SERB) ROUTINES/* * konfiguruje arduino do adresowania SERB za pomocą dołączonych procedur*/void serbSetup(){ setSpeed(speed); pinMode(LEFTSERVOPIN, OUTPUT); //ustawia lewy pin sygnału serwa //na wyjście pinMode(RIGHTSERVOPIN, OUTPUT); //ustawia prawy pin sygnału serwa //na wyjście leftServo.attach(LEFTSERVOPIN); //dołącza lewe serwo rightServo.attach(RIGHTSERVOPIN); //podłącza prawe serwo goStop();}/* * ustawia prędkość robota od 0-(zatrzymany) do 100-(pełna prędkość) * UWAGA: prędkość nie zmieni aktualnej prędkości musisz zmienić prędkość * następnie wywołaj jedną metod go przed wprowadzeniem zmian.*/ void setSpeed(int newSpeed){ if(newSpeed >= 100) {newSpeed = 100;} //jeśli prędkość jest większa niż 100 //zrób to 100 if(newSpeed <= 0) {newSpeed = 0;} //jeśli prędkość jest mniejsza niż 0, to //it 0 speed = newSpeed * 0.9; //skaluje prędkość do //od 0 do 90}/* * wysyła robota do przodu */void goForward(){ leftServo.write(90 + prędkość); rightServo.write(90 - prędkość);}/* * wysyła robota do tyłu */void goBackward(){ leftServo.write(90 - prędkość); rightServo.write(90 + prędkość);} /* * wysyła robota w prawo */void goRight(){ leftServo.write(90 + prędkość); rightServo.write(90 + prędkość);}/* * wysyła robotowi left */void goLeft(){ leftServo.write(90 - prędkość); rightServo.write(90 - prędkość);}/* * zatrzymuje robota */void goStop(){ leftServo.write(90); rightServo.write(90);} //KONIEC PROCEDUR SERWOROBOTÓW STEROWANYCH PRZEZ ARDUINO (SERB)//------------------------------------------ -----------------------------------------------

Krok 7: Gotowi, inni, którzy skończyli i przyszłość

Skończeni, inni, którzy skończyli i przyszłość
Skończeni, inni, którzy skończyli i przyszłość
Skończeni, inni, którzy skończyli i przyszłość
Skończeni, inni, którzy skończyli i przyszłość
Skończeni, inni, którzy skończyli i przyszłość
Skończeni, inni, którzy skończyli i przyszłość
Skończeni, inni, którzy skończyli i przyszłość
Skończeni, inni, którzy skończyli i przyszłość

Gratuluję osiągnięcia tak daleko i mam nadzieję, że dobrze się bawisz z Arduino Controlled Servo Robot - (SERB). SERB Michaela Becka - Michael znalazł plany SERB na Thingiverse.com i wyciął je z żółtego i czerwonego akrylu. Myślę, że wygląda świetnie. SERB Mike'a – Mike (z klubu robotów ROBOMO w St. Louis Area) miał przyjaciela, który wycinał laserem obudowę SERB i używał swojej własnej wiedzy o robotach, aby ją uruchomić. Myślę, że wygląda niesamowicie na niebiesko. (sprawdź jego stronę internetową, aby uzyskać szczegółowe informacje na ten temat, a także inne jego roboty (tutaj) Ta sekcja będzie zawierała szczegółowe informacje na temat przyszłych zmian i załączników (zostaną tutaj przedstawione, zanim zostaną odpowiednio udokumentowane). Ale chciałbym również pokazać zdjęcia SERBÓW innych ludzi. Więc jeśli skończyłeś, wyślij mi prywatną wiadomość ze zdjęciem i kilkoma słowami (czy to opis, czy link do Twojej strony), a dodam to tutaj. (Wtyczka Shameless)Jeśli Ci się podobało ten instruktażowy sprawdź oomlout.com dla innych zabawnych projektów open source.

Pierwsza nagroda w konkursie SANYO eneloop na zasilanie bateryjne

Zalecana: