Skocz do zawartości

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
Link to post
Share on other sites

Podoba Ci się ten projekt? Zostaw pozytywny komentarz i daj znać autorowi, że zbudował coś fajnego!

Masz uwagi? Napisz kulturalnie co warto zmienić. Doceń pracę autora nad konstrukcją oraz opisem.

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.

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.

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ł 🙂

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ż.

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.

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.

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.

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
Link to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.