Mr.CRAB -- reinkarnacja

Czyli o robotach prawie wszystko
ODPOWIEDZ
Awatar użytkownika
SunRiver
Użytkownik
Posty: 1089
Rejestracja: 08 paź 2017, 11:27
Lokalizacja: Festung Oppeln
Kontakt:

Mr.CRAB -- reinkarnacja

Post autor: SunRiver »

Jak to czasem bywa niektóre urządzenia sa po serii mniej lub bardziej udanych eksperymentów demontowane.
Tak też spotkało to i Mr.CRAB'a poleżał biedny w pudełku .. gdyż podczas eksperymentów z K210 uległ wypadkowi i poważnej
awarii ...

Obecnie zostały uszkodzenia naprawione , jak też zostały wymienione "stawy" (serva) w kolanach :)
I wszczęte zostały prace przywracające go do życia tym razem jednak bazą mózgową będzie Raspberry pi zero W

--- potrzebne drobiazgi ...

--> 12 serv TG50
--> jakiś szkielet do osadzenia serv
--> PCA9685 sterownik 16 ser na I2C
--> rPi ZERO W (potrzebujemy dostepu do wifi ew Bluetootha w celu sterowania ustrojstwem
--> trochę przewodów
--> jakiś 2 kanałowy powerbank lub inne źródło zasilania

Opcjonalnie

---> kamerka usb lub dedykowana do pisuara

----------------------------------------------------------------------------------------------------------------------

Jaki krab jest niema co mowic znacie go ...

Obrazek

Monstrum jest dość pokraczne jak na stawonoga przystało nawet w wersji elektroniczno-mechanicznej
słowem pokraka straszna. Ale w skrócie choć plastikowy może dać sporo frajdy i zabawy przy programowaniu
przejdźmy jednak do mechaniki naszego ustrojstwa ...

Obrazek
(zdecydowanie jest to wielkie bydle, zwłaszcza przy tak małym blacie jak domowy mikro warsztacik)

Jak na tego typu roboty przystało składa się on z pancerza, a właściwie chasis w którym będzie ukryte jego serce czyli
rPi Zero , oraz 4 nóg z których każda jest obsługiwana przez 3 serwomechanizmy co daje dość sporą swobodę ruchu.
Serva te jako że jest ich 12 będą wymagały ok 2A prądu na 5V z czym Pi sobie nie poradzi , ale nasza płytka PCA
umożliwia zasilanie dodatkowe dla serv .

Numeracja serw jest następująca:

Obrazek

i dokładnie tak wpinamy je do płytki sterownika PCA9685

Obrazek

w ten sposób zostają nam wolne kanały 0 , 13, 14, 15 które będziemy mogli uzyć np do kontrolowania kamerki ale to potem...
dobrze serva podłączone , kontroler podpięty do I2C w rPi ...

Obrazek
(przykładowe podłączenie PCA9685 do rPi -- wyszukane na google)

tu warto wspomnieć że układ PCA ma logikę pracującą w zakresie napieć 3V3 - 5V co nam pasuje bo zasilimy ja 3v3 z rPi przez co
nie będzie nam potrzebny konwerter poziomów. Zasilanie logiki to pin VCCna płytce zaś pin V+ to zasilanie dla servomechanizmów, które można podać na pin , oraz na złącze śrubowe.

Teraz możemy sprawdzić czy nasz PCA jest widoczny w systemie ...
(zakładam ze macie już skonfigurowane i2c na rPi)

Zatem wpisujemy w konsoli : sudo i2cdetect -y 1

Obrazek

No i jest widac pod 2ma adresami ... 40 i 70 ale to nie jest teraz istotne dlaczego.
pythona pewnie tez macie na rPi wiec tylko ściagamy bibliotekę adafruit do pca i możemy przetestować serva
a czynimy to :

$> git clone https://github.com/adafruit/Adafruit_Python_PCA9685.git

następnie przechodzimy do folderu libsa
$> cd Adafruit_Python_PCA9685

i instalujemy
$> sudo python setup.py install

teraz już możemy przejść do folderu examples
$> cd examples

i otwieramy w edytorze plik simpletest.py

Obrazek

w kodzie interesuje nas

  1. while True:
  2.     # Move servo on channel O between extremes.
  3.     pwm.set_pwm(0, 0, servo_min)
  4.     time.sleep(1)
  5.     pwm.set_pwm(0, 0, servo_max)
  6.     time.sleep(1)
  7.  
:

jak widzicie wysterowany jest kanał 0 wiec musimy sobie zmienić na :
  1. while True:
  2.     # Move servo on channel O between extremes.
  3.     pwm.set_pwm(1, 0, servo_min)
  4.     time.sleep(1)
  5.     pwm.set_pwm(1, 0, servo_max)
  6.     time.sleep(1)
  7.  
tym sposobem wysterujemy servo na kanale 1 naszego kontrolera.
zapisujemy plik CTRL+O , Enter i wychodzimy CTRL+X

odpalamy ....

$> python simpletest.py

Obrazek

jeśli podłączyliśmy zasilanie do serw (pin V+ lub złącze śrubowe) (UWAGA masy muszą być wspólne)
nasze serwo nr 1 wykonuje pełny ruch w obie strony ...

https://www.dropbox.com/s/lzdgyhv2tyhm0 ... 8.mp4?dl=0

tak możemy sprawdzić wszystkie serva jednak uprzedzam do zabawy
możemy użyć podłaczenia pinu V+ z pinem +5V na złączu raspberry pi jednakże nie warto przesadzać z ilością ruszających się serv
2 to zdecydowanie duży wysiłek , stąd warto zasilić je osobno przy 12 serwach co najmniej 2A.

Teraz możecie się pobawić na bazie simpletesta w pythonie gdyż właśnie w nim powstanie reszta programu umożliwiająca chodzenie
naszemu Mr.Crabowi.

Na tą chwile to wszystko...
ODPOWIEDZ

Wróć do „Konstrukcje Robotów”