Skocz do zawartości
Nawyk

Prototyp robota edukacyjnego

Pomocna odpowiedź

Chciałbym zaprezentować konstrukcję, która nie należy do najambitniejszych 😉 Wykorzystałem w niej jednak pewne rozwiązanie, o którym pisałem kiedyś wcześniej, a którego nie spotkałem jeszcze na tym forum (choć możliwe, że gdzieś się zakamuflowało).

Jest to prototyp robota edukacyjnego na zajęcia w szkole. Robot powstał w dość ekspresowym tempie - 4 godziny, włącznie z projektowaniem i wytrawianiem płytki.

Płytka została zaprojektowana w eagle, wykorzystałem atmegę 8, stabilizator 78T05, dławik i kondensatory filtrujące, 3 LEDy i garść rezystorów i goldpinów.

Tutaj warto powiedzieć o wspomnianym na początku rozwiązaniu - jest to sposób przerobienia serwa. Wprawne oko zauważyło zapewne brak mostka H w spisie elementów - przeróbka polegała na usunięciu mechanicznej blokady na jednej z zębatek serwa oraz na skróceniu potencjometru, obcięciu większości "główki", precyzyjnym ustawieniu go w środkowej pozycji przy pomocy multimetru a następnie zalaniu klejem na gorąco. Niestety nie dysponuję zdjęciem z zakończonej pracy, myślę jednak, że wszystko dość obrazowo opisałem; serwo po rozebraniu wygląda tak:

nietrudno więc sobie wyobrazić co należało zrobić 🙂

Ten sposób modyfikacji serwa pozwala na 1) zrezygnowanie z mostka H (uproszczenie schematu), niższe koszty 2) regulowanie prędkości oraz kierunku obrotu serwa przy pomocy tylko jednego pinu procesora w stosunkowo prosty sposób.

Czerwony przewód podpinamy do Vcc (w przypadku mojego serwa 4,8 - 6V), czarny do GND, a biały (w innych serwach żółty) bezpośrednio do nóżki procesora.

Kod, który steruje takim serwem w bascomie wygląda mniej-więcej tak (przewód sygnałowy podpięty oczywiście do PD6) :

$regfile = "m8def.dat" 
$crystal = 4000000
(...) 
Reset Portd.6
for i = 1 to 10
Pulseout Portd , 6 , 360
Waitms 20
next

Czas trwania impulsu - 360 - dobrany doświadczalnie.

To tyle mojego mędrkowania, poniżej garść zdjęć:

Sponsorem jakości zdjęć jest Samsung D900i :/

Planowane zmiany:

➡️ wykorzystanie wyprowadzonych 5 pinów po prawej stronie robota - 3 zwykłe transoptory odbiciowe (tcrt5000); wyprowadziłem 3 kanały adc oraz zasilanie

➡️ mocowanie kół na orczyku od serwa (zamiast termogluta)

➡️ dłuższe, prostsze i estetyczniej mocowane "czułki" - już mam przygotowaną długą, sprężystą blaszkę

➡️ poprawienie kilku "bubli" na płytce.

Schemat mogę zamieścić, jak tylko będę miał chwilę by go ostatecznie dopracować.

@Więcej informacji na mojej stronie internetowej - EDUbot v.1 - robot edukacyjny.

IMG_4a6db806e3bd88303.thumb.jpg.d07b0f944d5d15c1a12bbbdc94254558.jpg

  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

Wygląda przyzwoicie jak 4 godziny pracy, czy podzielisz się z "zielonymi" schematem i kodem?. Byłbym bardzo wdzięczny!( Pracuję nad BASCOMEM, problemy a to być może by było pomocne!). To tylko taka malutka sugestia.

Udostępnij ten post


Link to post
Share on other sites

Podejrzewam, ze kodu nie ma, skoro ma to być robot edukacyjny do szkoły - uczniowie mieliby go sami programować. Swoją drogą, nawyk, gdybyś dorzucił szybszy kwarc można by pokusić się o wgranie bootloadera z arduino i współpracę z arduino ide. Naprawdę prosty jest ten "język" (w sumie to tak na prawdę C z miliardem przeróznych bibliotek). Ogólnie, mogłeś zrobić go jako platformę modułową, płytka uC z wyprowadzeniami i milion róznych czujników i innych rzeczy.

Udostępnij ten post


Link to post
Share on other sites

Na dobrą sprawę to coś a'la mindstorm można by zrobić.

Udostępnij ten post


Link to post
Share on other sites
czy podzielisz się z "zielonymi" schematem i kodem?. Byłbym bardzo wdzięczny!( Pracuję nad BASCOMEM, problemy a to być może by było pomocne!)

➡️ schemat

➡️ kod (przykładowy, taki najprostszy; dodałem trochę komentarzy - dla przejrzystości wrzuciłem większość akcji do funkcji)

$regfile = "m8def.dat" 
$crystal = 4000000

'Robot edukacyjny
'PD5 - lewa dioda | PD4 - śr. dioda | PD3 - prawa dioda
'PD6 - prawe serwo | PD7 - lewe serwo
'PD0 - czujnik prawy | PB0 - czujnik lewy

'Deklaracja zmiennych: 
Dim I As Integer
Dim Pomocnicza As Integer

'Konfiguracja portów: 
Config Portd.3 = Output
Config Portd.4 = Output
Config Portd.5 = Output
Config Portd.6 = Output
Config Portd.7 = Output
Config Portd.0 = Input
Config Portb.0 = Input

'Ustawienia początkowe stanów na portach: 
Reset Portd.3
Reset Portd.4
Reset Portd.5
Reset Portd.6
Reset Portd.7

'Główny program: 
Do

If Pind.0 = 0 And Pinb.0 = 0 Then 'Jeśli żaden czujnik nie wciśnięty: 
  Gosub Jedz_do_przodu
Elseif Pind.0 = 1 And Pinb.0 = 0 Then 'Jeśli wciśnięty czujnik prawy: 
  Gosub Cofnij
  Gosub Obrot_w_prawo
Elseif Pind.0 = 0 And Pinb.0 = 1 Then 'Jeśli wciśnięty czujnik lewy: 
  Gosub Cofnij
  Gosub Obrot_w_lewo
Else 'Jeśli wciśnięte oba czujniki: 
  Gosub Cofnij
  Gosub Obrot_w_prawo
  Gosub Obrot_w_prawo
End If

Loop
End

'Poszczególne funkcje: 
Jedz_do_przodu: 
Set Portd.4                                                 'Zapala diodę środkową
For I = 1 To 15
Pulseout Portd , 6 , 360
Pulseout Portd , 7 , 360
Waitms 20
Next
Reset Portd.4                                               'Gasi diodę środkową
Return

Cofnij: 
For I = 1 To 15
Pulseout Portd , 6 , 200
Pulseout Portd , 7 , 200
Waitms 20
Next
Return

Obrot_w_prawo: 
Set Portd.3                                                 'Zapala diodę prawą
For I = 1 To 15
Pulseout Portd , 6 , 200
Pulseout Portd , 7 , 360
Waitms 20
Next
Reset Portd.3                                               'Gasi diodę prawą
Return

Obrot_w_lewo: 
Set Portd.5                                                  'Zapala diodę lewą
For I = 1 To 15
Pulseout Portd , 6 , 360
Pulseout Portd , 7 , 200
Waitms 20
Next
Reset Portd.5                                               'Gasi diodę lewą
Return

Mam nadzieję, że pomoże.

Swoją drogą, nawyk, gdybyś dorzucił szybszy kwarc można by pokusić się o wgranie bootloadera z arduino i współpracę z arduino ide.

Szczerze mówiąc pierwszy raz "usłyszałem" o arduino ide po Twoim poście 🙂 Poszperałem i przedstawia się interesująco. Czy jednak C nie będzie zbyt trudny dla gimnazjalistów?

Ogólnie, mogłeś zrobić go jako platformę modułową, płytka uC z wyprowadzeniami i milion róznych czujników i innych rzeczy.

Zalążkiem modularności są wyprowadzone trzy kanały adc, więcej w sumie nie potrzeba 🙂 Chrabąszcz i linefollower są jak znalazł 🙂

Udostępnij ten post


Link to post
Share on other sites
Szczerze mówiąc pierwszy raz "usłyszałem" o arduino ide po Twoim poście Poszperałem i przedstawia się interesująco. Czy jednak C nie będzie zbyt trudny dla gimnazjalistów?

Czy tak, czy nie to zależy od uczniów - są tacy, co nie będą sie mogli od komputera i robota odlepić i tacy, którzy to kompletnie oleją. Na dobrą sprawę, to, jeśli to nie byłoby bez sensu z punktu widzenia technicznego, można wgrać ten bootloader i mniej ambitni biorą BASCO, a bardziej C i już.

Udostępnij ten post


Link to post
Share on other sites

To nibyC wcale nie jest trudne, wszystkie funkcje mają bardzo wymowne nazwy, i swoją drogą, sam chodzę do gimnazjum, hehe.

Udostępnij ten post


Link to post
Share on other sites

To ja może trochę dokładniej nakreślę sytuację...szkoła znajduje się na wsi, gdzie większość dzieci ma kontakt z komputerem jedynie w sali informatycznej.. Choć wiem, że dwóch z grupy łyknęło C, to jednak muszę się dopasować poziomem raczej do tych mniej zaawansowanych, coby ich nie zniechęcić 🙂 Chyba że faktycznie ich podzielę... No ale nie o tym miał być ten temat. W każdym razie polecam spróbować przeróbki serwa. "Natchnieniem" było serwo wykorzystane w niejakim BoeBot, któremu miałem okazję bliżej się przyglądać na laborkach w roku akademickim.

Udostępnij ten post


Link to post
Share on other sites

A cóż to za akumulator jeszcze spytam 🙂

Naprawdę bardzo fajne kółka.

Udostępnij ten post


Link to post
Share on other sites

Zasilanie robota to 4 paluchy w koszyku z "klapką" i zintegrowanym przełącznikiem. Koła pochodzą z modelarskiego, są to koła do tzw. Wicherka. Koszt - 6zł/2szt.

Udostępnij ten post


Link to post
Share on other sites

A to jest pianka, czy guma? Chodzi mi o opony.

Udostępnij ten post


Link to post
Share on other sites

Pianka. I z przyczepnością nie ma szału, aczkolwiek robot jest dość ciężki (serwa, 4 baterie + kółko podporowe) więc się nie ślizga.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Duże dzięki, nawyk! jeśli chodzi o mnie to bardzo dużo. Stawiam Ci piwo.

Udostępnij ten post


Link to post
Share on other sites

Jeśli chodzi o materiał na opony to polecam piankę neoprenową(taką z pod podkładki pod myszkę 😉)

Udostępnij ten post


Link to post
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »

×