# Dokumentacja OSOYOO ## Silniki ### Działanie silników Silniki mają dwa wejścia, + i -. Działają podobnie jak potencjometr, w sensie, jeśli podepniesz na odwrót do będą obracać się w drugą stronę Prędkość jest zależna od napięcia prądu. Osoyoo rozdziela to na dwa piny, na których będziemy przesyłać w sygnały + i -, a także na pin przez który regulujemy napięcie. ### Piny silników Każdy z silników ma 3 piny Dwa cyfrowe, odpowiedzialne za kierunek obrotu Jedno analogowe, odpowiedzialne za nadanie prędkości Piny: 1 -> Przód 2 -> Tył P -> Predkość | Piny | Przednie Lewe | Przednie Prawe | Tylnie Lewe | Tylnie Prawe | |:----:|:-------------:|:--------------:|:-----------:|:------------:| | 1 | 26 | 22 | 7 | 5 | | 2 | 28 | 24 | 8 | 6 | | P | 10 | 9 | 12 | 11 | ### Obsługa silników Każdemu silnikowi trzeba nadać: 1. Kierunek obrotu 2. Prędkość obrotu Przykładowe wywołanie obrotu (Koło Lewe Przednie, by się obróciło do przodu) ```c++ void LPDoPrzodu(){ digitalWrite(26, HIGH); digitalWrite(28, LOW); analogWrite(10, 100); } ``` Trzeba pamiętać by jeden kierunek był włączony w jednym momencie, inaczej silnik się nie poruszy. Warto wywołać zmienną "speed", by łatwo zmieniać prędkość silnika, można wykorzystać do obrotu. ## Czujniki ### Serwo i Echolokacja Można spojrzeć do poprzednich dokumentacji do obsługi. Tutaj Echolokacja jest podłączona do serwosilnika, wykorzystywane jest to do wyczucia przeszkód przed robotem i na prawo i lewo. Piny: Serwo <- 13 Echo <- 31 Trig <- 30 ### Czujniki koloru Sensor składa się z pięciu (5) czujników na które składją się (od lewej): A4, A3, A2, A1, A0 Czujniki wyczuwają odbijanie się światła od podłoża. Oddają sygnały bitowe, 1 kiedy się odbija (biały) , 0 kiedy się nie odbija (czarny). Przykładowe odczytanie terenu: ```c++ String senstr=""; int s0 = digitalRead(A4); int s1 = digitalRead(A3); int s2 = digitalRead(A2); int s3 = digitalRead(A1); int s4 = digitalRead(A0); int sensorvalue=32; //32 jest po to by w przypadku gdzie nigdzie nie wyczuje odbicia nadal miec obraz 00000, zamiast 0 sensorvalue +=s0*16+s1*8+s2*4+s3*2+s4; senstr= String(sensorvalue,BIN); senstr=senstr.substring(1,6); //odcina nam pierwszą cyfrę liczby binarnej, w kazdym przypadku byloby to 1 ``` Dzięki niemu możemy odczytać obrazy typu "11100", lub "00011" które pokazują po której stronie odbija swiatlo i które czujniki to wyczuły. ## Informacje dodatkowe ### Praca Robota Trzeba pamiętać że robot działa prawidłowo dopiero w momencie odłączenia go od komputera i włączenia zasilenia bateriami. UWAGA! ROBOT MA DUŻO SIŁY, UWAŻAĆ ŻEBY NIE POLECIAŁ W ŚCIANE. ### Własne biblioteki Dokumentacja: https://docs.arduino.cc/learn/contributions/arduino-creating-library-guide ### Lekcje ze strony Osoyoo Lekcja 1 (Działanie kół): https://osoyoo.com/2021/09/17/mecanum-wheel-robotic-kit-v2-0-for-arduino-mega2560-lesson-1/ Lekcja 2 (Unikanie przeszkód za pomocą echolokacji): https://osoyoo.com/2021/09/17/mecanum-wheel-robotic-kit-v2-0-for-arduino-mega2560-lesson-2/ Lekcja 3 (Podążanie za koloerm białym/czarnym): https://osoyoo.com/2021/09/17/mecanum-wheel-robotic-kit-v2-0-for-arduino-mega2560-lesson-3/