Spisu treści:
- Krok 1: Przegląd projektu
- Krok 2: Schematy
- Krok 3: Schemat kontrolera PS2
- Krok 4: Konfiguracja połączenia modułów Zio
- Krok 5: Podłącz serwomechanizm ramienia robota do kontrolera serwo Zio 16
- Krok 6: Podłącz 16 Servo do DC/DC Booster i ustaw go na 6,0V
- Krok 7: Podłącz Zuino M Uno do kontrolera serwo Zio 16
- Krok 8: Podłączanie Uno do odbiornika PS2
- Krok 9: Kod dla ramienia robota
- Krok 10: Uruchom swój kod
- Krok 11: Wyjaśnienie kodu
Wideo: Ramię robota z modułami Zio, część 2: 11 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
W dzisiejszym samouczku wykorzystamy wszystkie 4 serwomechanizmy i bezprzewodowy kontroler PS2 do sterowania ramieniem robota.
Ten wpis na blogu jest częścią serii Zio Robotics.
Wstęp
W naszym poprzednim blogu zamieściliśmy część 1 samouczka na temat sterowania ramieniem robota za pomocą modułów Zio. Część 1 koncentrowała się głównie na automatycznym kontrolowaniu pazura ramienia robota w celu otwierania i zamykania.
W dzisiejszym samouczku nieco go poprawimy, dodając bezprzewodowy kontroler PS2 do sterowania ramieniem robota. W tym projekcie wykorzystamy 4 serwa.
Krok 1: Przegląd projektu
Poziom trudności:
Zio Padawan
Pomocne zasoby:
Powinieneś mieć podstawową wiedzę na temat instalowania płyt programistycznych Zio. W tym samouczku zakładamy, że Twoja płyta rozwojowa jest już skonfigurowana i gotowa do skonfigurowania. Jeśli nie skonfigurowałeś jeszcze swojej tablicy, zapoznaj się z naszym samouczkiem Przewodnik startowy Zio Qwiic poniżej, aby rozpocząć:
Przewodnik startowy Zio Zuino M UNO Qwiic
Krok 2: Schematy
Oto schematy okablowania projektu części 2 ramienia robota, a także schemat kontrolera PS2, który jest potrzebny do zrozumienia części kodującej.
Krok 3: Schemat kontrolera PS2
Krok 4: Konfiguracja połączenia modułów Zio
Poniżej znajduje się połączenie naszych modułów Zio, które należy skonfigurować z ramieniem robota. Połączenie wszystkich modułów razem jest dość łatwe i nie zajmie więcej niż 10 minut na konfigurację.
Krok 5: Podłącz serwomechanizm ramienia robota do kontrolera serwo Zio 16
Krok 6: Podłącz 16 Servo do DC/DC Booster i ustaw go na 6,0V
Używamy wzmacniacza DC/DC, aby zwiększyć i dostosować napięcie zasilania akumulatora do 6.0.
Użyj potencjometru na DC Booster, aby dostosować napięcie, aż uzyskasz 6.0. Naciśnij przycisk In/Out, aż wyświetlacz pokaże 6.0. Musisz najpierw zasilić (akumulatorem 3,7 V) wzmacniacz DC/DC, aby wyregulować napięcie.
Krok 7: Podłącz Zuino M Uno do kontrolera serwo Zio 16
Qwiic łączy Zuino M Uno z kontrolerem Zio Servo za pomocą kabla qwiic.
Krok 8: Podłączanie Uno do odbiornika PS2
Oto schemat pinów połączeń. Do tej części potrzebujesz 5 przewodów połączeniowych męskich do żeńskich.
Krok 9: Kod dla ramienia robota
Użyjemy biblioteki PS2 Arduino, aby zakodować nasz kontroler bezprzewodowy PS2 do pracy z naszym ramieniem robota. Możesz znaleźć i pobrać kod źródłowy tego projektu Robotic Arm Part 2 na naszej stronie Github.
Pobierz i zainstaluj następujące biblioteki i zapisz je w lokalnym folderze bibliotek Arduino IDE:
- Biblioteka sterowników serwonapędów Adafruit PWM
- Biblioteka PS2 Arduino
Aby zainstalować biblioteki, otwórz Arduino IDE, przejdź do zakładki Szkic, wybierz Dołącz bibliotekę -> Dodaj bibliotekę. Zip. Wybierz powyższe biblioteki, które mają zostać uwzględnione w Twoim IDE.
Arduino ma przydatny przewodnik dotyczący instalowania bibliotek w środowisku Arduino IDE. Sprawdź je tutaj!
Krok 10: Uruchom swój kod
Otwórz środowisko Arduino IDE. W obszarze Pliki> Przykłady> PS2_Arduino_Library, wybierz PS2X_Servo
Uwaga: Zanim będziesz mógł sterować ramieniem robota za pomocą kontrolera PS2, wykonaj następujące czynności: Włącz kontroler PS2. Sprawdź, czy świeci się dioda Mode. Jeśli tak się nie stanie, naciśnij przycisk trybu na kontrolerze. Po wykonaniu powyższych czynności musisz nacisnąć przycisk resetowania na Zuino M Uno, aby odczytał ustawienia kontrolera. Musisz nacisnąć L1 i joystick, aby przesunąć ramię robota.
- Lewy joystick kontroluje zginanie ramienia w górę lub w dół
- Prawy joystick kontroluje pazur, aby otworzyć lub zamknąć i obracać pazur w lewo lub w prawo.
Krok 11: Wyjaśnienie kodu
Korzystanie z biblioteki Arduino PS2X jest proste, wymaga jedynie inicjalizacji, konfiguracji, a następnie polecenia odczytu.
Aby ustawić połączenie kontrolera PS2 z Uno, poniżej znajdują się piny, które musisz zdefiniować w swoim kodzie:
/************************************************** *************** * zestaw pinów podłączonych do kontrolera PS2: * - kolumna 1e: oryginał * - kolumna 2e: Stef? * zastąp numery PIN tymi, których używasz******************************************* **********************/#define PS2_DAT 13 //14 #define PS2_CMD 11 //15#define PS2_SEL 10 //16#define PS2_CLK 12 // 17
Zamieniliśmy piny na te, których używamy do połączenia z naszym Uno, jak pokazano na powyższym schemacie pinów.
/************************************************** **************** wybór trybów sterownika PS2: * - ciśnienia = analogowy odczyt przycisków * - dudnienie = dudnienie silnika * odkomentuj 1 wiersz dla każdego wyboru trybu** ************************************************** ************/ //#definiuj ciśnienia prawda#definiuj ciśnienia fałszywe //#definiuj rumble true#define rumble false
Tutaj zdefiniowaliśmy tryb PS2 dla ciśnień i dudnienia jako fałszywy. Skomentowaliśmy te, których nie używamy.
Będziemy używać tylko polecenia joysticka kontrolera i L1 do kontrolowania ruchu naszego ramienia robota.
void loop() {/* Musisz przeczytać Gamepad, aby uzyskać nowe wartości i ustawić wartości wibracji ps2x.read_gamepad (mały silnik włączony/wyłączony, większa moc silnika od 0-255), jeśli nie włączysz dudnienia, użyj ps2x.read_gamepad (); bez wartości Powinieneś wywoływać to co najmniej raz na sekundę*/ if(error == 1) //pomiń pętlę, jeśli nie znaleziono kontrolera return; else { // Kontroler DualShock ps2x.read_gamepad(false, wibracje); //odczytaj kontroler i ustaw duży silnik, aby obracał się z prędkością 'wibracji' if(ps2x. Button(PSB_START))//będzie TRUE tak długo, jak przycisk jest wciśnięty Serial.println("Start jest wstrzymywany"); if(ps2x. Button(PSB_SELECT)) Serial.println("Wybór jest wstrzymany"); wibrować = ps2x. Analog(PSAB_CROSS); //to ustawi prędkość wibracji dużego silnika w zależności od tego, jak mocno naciskasz niebieski przycisk (X) if(ps2x. Button(PSB_L1) || ps2x. Button(PSB_R1)) { //drukuj wartości drążków, jeśli któryś z nich jest TRUE RY_Value =ps2x. Analogowy(PSS_RY); RX_Value=ps2x. Analog(PSS_RX); LY_Value=ps2x. Analogowy(PSS_LY); LX_Value=ps2x. Analog(PSS_LX);Serial.print("Wartości pamięci:"); Serial.print(RX_Value); Serial.print(" "); Serial.print(RY_Value); Serial.print(" "); Serial.print(LY_Value); Serial.print(" "); Serial.println(LX_Value);
Poniższy kod to miejsce, w którym kodujemy nasze serwa kontrolujące nasze ramię robota, które umieszczamy w wywołaniu funkcji pod ps2x.button(PSB_L1)|| ps2x.button(PSB_R1).
Musisz nacisnąć przycisk L1 lub R1 razem z joystickiem, aby sterować ramieniem robota.
Serwa sterujące lewego joysticka 2 i 3 dla części ramienia - kontroluj odpowiednio zginanie w górę i w dół ramienia, podczas gdy serwa sterujące prawym joystickiem 0 i 1 pazura ramienia robota, aby otworzyć lub zamknąć oraz obrócić w lewo lub w prawo.
SERVO 0, 1 - SERVO pazur 2, 3 - ramię
Możesz dokonać zmian w wartościach w tej sekcji, aby kontrolować kąt nachylenia ramienia robota:
pulselen0=map(RY_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen1=map(RX_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen2=map(LY_Value, 0, 127, SERVOMIN2, SERVOMAX2); pulselen3=map(LX_Value, 0, 255, SERVOMIN3, SERVOMAX3);
Zalecana:
Ramię robota z modułami Zio, część 3: 4 kroki
Ramię robota z modułami Zio Część 3: Ten wpis na blogu jest częścią serii Zio Robotics. Wprowadzenie W naszym poprzednim blogu zamieściliśmy samouczki z części 1 i 2 dotyczące sterowania ramieniem robota za pomocą modułów Zio. Część 1 koncentrowała się głównie na automatycznym kontrolowaniu pazura ramienia robota
Kontroluj ramię robota za pomocą modułów Zio, część 1: 8 kroków
Sterowanie ramieniem robota za pomocą modułów Zio Część 1: Ten wpis na blogu jest częścią serii Zio Robotics.WprowadzenieW tym samouczku zbudujemy projekt, w którym użyjemy modułów Zio do sterowania ramieniem robota. Ten projekt nauczy Cię, jak otwierać i zamykać pazur ramienia robota. To n
Ramię robota ROS MoveIt, część 2: Kontroler robota: 6 kroków
Ramię robota ROS MoveIt Część 2: Kontroler robota: https://github.com/AIWintermuteAI/ros-moveit-arm.gitW poprzedniej części artykułu stworzyliśmy pliki URDF i XACRO dla naszego ramienia robota i uruchomiliśmy RVIZ, aby kontrolować nasze ramię robota w symulowanym środowisku.Tym razem zrobimy to z p
JAK ZŁOŻYĆ IMPONUJĄCE DREWNIANE RAMIĘ ROBOTA (CZĘŚĆ 3: RAMIĘ ROBOTA) -- W OPARCIU O MIKRO: WĘDZIK: 8 kroków
JAK ZŁOŻYĆ IMPONUJĄCE DREWNIANE RAMIĘ ROBOTA (CZĘŚĆ 3: RAMIĘ ROBOTA) -- W OPARCIU O MIKRO: BITN: Kolejny proces instalacji opiera się na zakończeniu trybu omijania przeszkód. Proces instalacji w poprzedniej sekcji jest taki sam, jak proces instalacji w trybie śledzenia linii. Następnie spójrzmy na ostateczną formę A
Jak złożyć imponujące drewniane ramię robota (Część 1: Robot do śledzenia linii) - na podstawie Micro: Bit: 9 kroków
Jak złożyć imponujące drewniane ramię robota (Część 1: Robot do śledzenia linii) -- W oparciu o Micro: Bit: Ten drewniany facet ma trzy formy, jest bardzo inny i imponujący. Więc wejdźmy w to jeden po drugim