Spisu treści:

Ramię robota z modułami Zio, część 2: 11 kroków
Ramię robota z modułami Zio, część 2: 11 kroków

Wideo: Ramię robota z modułami Zio, część 2: 11 kroków

Wideo: Ramię robota z modułami Zio, część 2: 11 kroków
Wideo: A Wy na jakim etapie związku jesteście? 😂 #shorts 2024, Listopad
Anonim
Ramię robota z modułami Zio, część 2
Ramię robota z modułami Zio, część 2

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

Schematy
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

Schemat kontrolera PS2
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

Podłącz serwomechanizm ramienia robota do kontrolera serwo Zio 16
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

Podłącz 16 Servo do DC/DC Booster i ustaw go na 6,0V
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

Podłącz Zuino M Uno do kontrolera serwo Zio 16
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

Podłączanie Uno do odbiornika PS2
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

Uruchom swój kod
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: