![Szeregowy kontroler serwo oparty na Arduino: 6 kroków Szeregowy kontroler serwo oparty na Arduino: 6 kroków](https://i.howwhatproduce.com/preview/how-and-what-to-produce/10967780-arduino-based-serial-servo-controller-6-steps-j.webp)
Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:03
Jest to prosty kontroler szeregowy dla wielu serw oparty na Arduino. (mój pierwszy instruktaż też:))
Większość pracy w tym zakresie polegała na uzyskaniu oprogramowania do komunikowania się z arduino i stworzeniu protokołu do przekazywania danych. Jeśli chodzi o aspekt sprzętowy, użyłem tylko dwóch serw (tutaj standardowe serwo Parallax). Sparkfun Arduino ProtoShield i Arduino Duemilanove z ATMEGA328, ale większość tych części można zastąpić podobnymi elementami. Wymyśliłem ten projekt jako część systemu RC, ale nawiązanie komunikacji zajęło dużo czasu. Jeśli ktoś ma jakieś ulepszenia, pomysły lub błędy, prosimy o komentowanie. EDIT: Napisałem to jakiś czas temu, dopiero niedawno to opublikowałem.
Krok 1: Rzeczy, których możesz potrzebować…
Niektóre rzeczy, których będziesz potrzebować, aby to zbudować. 1. Płytka Arduino (do wyboru) 2. dwa (lub jedno) serwa 3. zworki 4. Visual Studio 2008 Express – link (opcjonalnie) 5. Arduino IDE – link Przepraszam fani Linuksa i Apple, mój program działa tylko na Windows na razie, ale nadal możesz ręcznie wysyłać polecenia szeregowe do arduino bez zmiany kodu.
Krok 2: Podłącz sprzęt
Nic bardzo skomplikowanego w tym kroku. Po prostu podłącz jeden serwo do pinu 9, a drugi do pinu 10.
Krok 3: Zaprogramuj Arduino
teraz możesz wgrać szkic na arduino.
Oto prosty podział kodu: #include Servo myservo; // utwórz obiekt servo do sterowania serwo Servo myservo1; int przychodzącyByte = 0, licznik danych = 0, licznik = 0, gotowy = 0; // dla przychodzących danych szeregowych char data[10]; const char weryfikacja[8] = "ma11hew"; polecenie char [3]; void setup() { myservo.attach(9); myservo1.attach(10); Serial.początek(38400); // otwiera port szeregowy, ustawia szybkość transmisji Serial.println("Hi Arduino Here!"); // dodane, aby pomóc zidentyfikować port szeregowy To po prostu ustawia port szeregowy i serwa. wew; for(i = 0; i<180;i++) { myservo.write(i); opóźnienie(15); } myservo.write(5); for(i = 0; i<180;i++) { myservo1.write(i); opóźnienie(15); } myservo1.write(5); } Prosty ruch zamiatania w celu sprawdzenia, czy serwa działają poprawnie. void loop() { gotowy = 0; licznik = 0; while (1==1) { if (Serial.read() != Verify[licznik]) { break; } if(licznik == 6) { opóźnienie(20); polecenie[0] = Serial.odczyt(); polecenie[1] = Serial.odczyt(); //if (Serial.read() == ((polecenie[1] * 12) % 8)) // { gotowy = 1; //} Serial.println("zapisane polecenie"); } licznik ++; opóźnienie(2); } to sprawdza bufor szeregowy pod kątem poprawnego ciągu autoryzacji, a następnie pobiera dwa bajty dla polecenia. skomentowana instrukcja if pozwala na wprowadzenie prowizorycznej sumy kontrolnej, ale utrudni ręczny interfejs. ready można ustawić na 0, więc polecenia nie będą analizowane, tak jak w przypadku uszkodzonych danych. //przeszukaj polecenia if (gotowy == 1) { if (command[0] == 'T') { command[0] = 0; Serial.print("kontrola przepustnicy na pinie 9 do: "); Serial.println(map(polecenie[1], 32, 126, 2, 180), DEC); myservo.write(map(polecenie[1], 32, 126, 2, 180)); } if (polecenie[0] == 'S') { polecenie[0] = 0; Serial.print("kontrola przepustnicy na pinie 10 do: "); Serial.println(map(polecenie[1], 32, 126, 2, 180), DEC); myservo1.write(map(polecenie[1], 32, 126, 2, 180)); } } } reszta kodu polega na przeszukaniu komendy dla poprawnych komend (T lub S.), jeśli którakolwiek z nich pasuje, pobiera następny bajt i wysyła go do serwa. więcej na mapie (polecenie[1], 32, 126, 2, 180) później… kod tutaj można rozszerzyć o wszystko, czego możesz potrzebować (np. światła, silniki, IR itp.) ten kod powinien działać poprawnie bez modyfikacje.
Krok 4: Zainstaluj oprogramowanie
Mam dwa sposoby na zainstalowanie tego… instalatora nsis: Pobierz poniżej samorozpakowujący się instalator i uruchom go. Podczas instalacji będziesz mieć możliwość zainstalowania źródeł. pakiet binarny instalatora instaluje podstawowe biblioteki dll c++, dzięki czemu można go uruchomić na komputerze bez zainstalowanego wizualnego c++. Po zakończeniu instalatora możesz go uruchomić z pulpitu lub menu Start. sposób zip (niezweryfikowany): Pobierz i uruchom, powinno działać. Może. (Archiwum zip ma taką samą strukturę folderów utworzoną przez instalator, bez źródeł. Nie mam maszyny bez studia wizualnego do testowania, więc może nie działać.)
Krok 5: Użyj programu interfejsu
Aby skorzystać z programu należy najpierw wybrać szybkość transmisji zdefiniowaną w szkicu arduino. Niezmodyfikowany szkic ma domyślnie 38400 bodów, ale można go zmienić, aby dopasować go do potrzeb, takich jak wolniejsze łącze radiowe. uwaga: szybkości transmisji wyższe niż 38400 nie były zbyt stabilne, myślę, że dzieje się tak dlatego, że uart zapełnia się przed przetworzeniem danych. Następnie wybierz port COM, którego chcesz użyć. program domyślnie jest ustawiony na COM4, pamiętaj, aby go zmienić, w przeciwnym razie program ulegnie awarii. Na koniec kliknij otwórz. Jeśli wszystko poszło dobrze, program otworzy wybrany port szeregowy z wybraną szybkością transmisji. Jeśli nie, program prawdopodobnie ulegnie awarii z nieobsługiwanym wyjątkiem. upewnij się, że port jest poprawny i spróbuj ponownie. Użyj pól tekstowych, aby przesłać bezpośrednie polecenia do arduino. "map(command[1], 32, 126, 2, 180)" skaluje wszystkie 94 możliwe polecenia, *spacja* do ~, odczytywane przez arduino w ASCII od 2 do 180 dla serwa. każdy bajt mniejszy niż ASCII 32 (spacja) lub większy od 126 (~) domyślnie 63 (?). Paski śledzenia zapewniają łatwiejszy interfejs dla bezpośrednich poleceń. każdy krok wysyła polecenie szeregowe do arduino przyrostowo.
Krok 6: Bądź kreatywny
Pomyśl o fajnych rzeczach do zrobienia z tym. Kilka pomysłów: 1. Zdalna przepustnica do samochodu. 2. Uchwyt kamery 3D 3. Podwodny łazik Baw się dobrze!!
Zalecana:
Usuń kontroler serwo: 5 kroków (ze zdjęciami)
![Usuń kontroler serwo: 5 kroków (ze zdjęciami) Usuń kontroler serwo: 5 kroków (ze zdjęciami)](https://i.howwhatproduce.com/images/001/image-1041-j.webp)
Usuń kontroler serwo: Silniki serwo to świetna zabawa, gdy chcesz łatwo połączyć motoreduktor z mikrokontrolerem. Czasami jednak potrzebujesz ładnego, małego motoreduktora i nie chcesz zawracać sobie głowy obwodami sterującymi, aby go napędzać. W takich chwilach jest
Kontroler gier DIY oparty na Arduino - Kontroler gier Arduino PS2 - Granie w Tekken z DIY Arduino Gamepad: 7 kroków
![Kontroler gier DIY oparty na Arduino - Kontroler gier Arduino PS2 - Granie w Tekken z DIY Arduino Gamepad: 7 kroków Kontroler gier DIY oparty na Arduino - Kontroler gier Arduino PS2 - Granie w Tekken z DIY Arduino Gamepad: 7 kroków](https://i.howwhatproduce.com/images/011/image-30363-j.webp)
Kontroler gier DIY oparty na Arduino | Kontroler gier Arduino PS2 | Granie w Tekken z DIY Arduino Gamepad: Witajcie, granie w gry jest zawsze zabawne, ale granie z własnym niestandardowym kontrolerem do gier jest przyjemniejsze. Dlatego stworzymy kontroler do gier za pomocą arduino pro micro w tej instrukcji
Radar ultradźwiękowy wykorzystujący Arduino Nano i ploter szeregowy: 10 kroków
![Radar ultradźwiękowy wykorzystujący Arduino Nano i ploter szeregowy: 10 kroków Radar ultradźwiękowy wykorzystujący Arduino Nano i ploter szeregowy: 10 kroków](https://i.howwhatproduce.com/images/011/image-32150-j.webp)
Radar ultradźwiękowy za pomocą Arduino Nano i plotera szeregowego: W tej instrukcji dowiemy się o podstawach biblioteki serwo, a także o konfigurowaniu czujnika ultradźwiękowego i używaniu go jako radaru. wynik tego projektu będzie widoczny na monitorze plotera szeregowego
Generator muzyki oparty na pogodzie (generator Midi oparty na ESP8266): 4 kroki (ze zdjęciami)
![Generator muzyki oparty na pogodzie (generator Midi oparty na ESP8266): 4 kroki (ze zdjęciami) Generator muzyki oparty na pogodzie (generator Midi oparty na ESP8266): 4 kroki (ze zdjęciami)](https://i.howwhatproduce.com/images/002/image-3114-36-j.webp)
Generator muzyki oparty na pogodzie (Generator Midi oparty na ESP8266): Cześć, dzisiaj wyjaśnię, jak zrobić własny mały generator muzyki oparty na pogodzie. Jest oparty na ESP8266, który jest trochę jak Arduino i reaguje na temperaturę, deszcz i intensywność światła.Nie oczekuj, że sprawi, że całe utwory lub akordy będą pro
Dotyk pojemnościowy z Eveve (kontroler oparty na Arduino): 6 kroków (ze zdjęciami)
![Dotyk pojemnościowy z Eveve (kontroler oparty na Arduino): 6 kroków (ze zdjęciami) Dotyk pojemnościowy z Eveve (kontroler oparty na Arduino): 6 kroków (ze zdjęciami)](https://i.howwhatproduce.com/images/001/image-1889-127-j.webp)
Pojemnościowy dotyk z Eveve (kontroler oparty na Arduino): Czy wiesz, jak działa ekran dotykowy Twojego smartfona? Smartfon ma szereg czujników dotykowych pod szklanym ekranem. Obecnie jest on oparty na technologii wykrywania dotyku pojemnościowego, a nawet delikatny dotyk jest łatwo wykrywalny. Dotyk pojemnościowy jest wyczuwany