Skocz do zawartości
Danieo

BPLF - Bardzo Prosty Line Follower z jednym sensorem

Pomocna odpowiedź

Napisano (edytowany)

Wstęp

Niedawno miałem okazję prowadzić zajęcia feryjne dla dzieci. Tematem, który wybrałem była robotyka. Jako, że jest to gałąź techniki, która w naszych czasach bardzo prężnie się rozwija i można powiedzieć, że rewolucjonizuje nasz świat chciałem w młodych umysłach zaszczepić do niej pasję i być może przyczynić się do rozwoju kolejnego pokolenia inżynierów. 😄 Poza tym roboty są po prostu fajne, a dzieci lubią fajne rzeczy. Potrzebna więc była konstrukcja z którą dzieciaki będą mogły wejść w jakąś interakcję, była prosta, szybka i możliwa do zbudowania z tego co miałem pod ręką 😄. Wybór padł na line followera.

Założenia projektu

  • Zbudowanie Line Followera z części jakie miałem pod ręką w swoim warsztacie (ograniczony a właściwie zerowy budżet)
  • Maksymalne uproszczenie programu i zasady działania robota, by być w stanie objaśnić go młodszym
  • Możliwość szybkiego złożenia robota

Konstrukcja

Układ elektroniczny jest banalny (nie znajdziemy tu żadnych enkoderów czy innych rzeczy znanych z konstrukcji startujących w zawodach). Głównym elementem robota jest Arduino Leonardo (aczkolwiek pod gabaryty robota lepiej sprawdziłoby się Nano, którego niestety nie miałem) do którego przyłączono dwie sekcje układu robota: napęd oraz sensor. Pod napęd wykorzystałem dwa silniczki DC Dagu z przekładnią(Mogą być np. takie). Ich sterowaniem zajął się układ L293D. W line followerach jako czujnik najczęściej wykorzystuje się transoptory odbiciowe czy własny moduł złożony z LEDów IR i fototranzystora. Ja jednak z powodu chęci maksymalnego uproszczenia całości (oraz "wizualizacji działania czujnika") wykorzystałem zwykłe białe LEDy oraz fotorezystor. Schemat zamieszczam poniżej. Dodam, że pierwotnie robot miał być zasilany przez ogniwo Li-Po z odpowiednim układem (zabezpieczenia + boost do 5V), jednak nie naładowałem żadnego ogniwa a do pokazu było coraz bliżej, więc zasiliłem Arduino z power banka.

1727327573_LineFollower_bb.thumb.jpg.c17800ad1ce6ef15f8d3267671399757.jpg

Mechanika robota jest jeszcze prostsza niż elektronika. Podwozie zostało wydrukowane na drukarce 3D i dostosowane pod Line Followera (wziąłem je z innego projektu). Koła już miałem osadzone na wale przekładni (silniczki, przekładnia jak i koła pochodzą z demontażu mojej starej konstrukcji). Zostały one wycięte z sklejki 5mm przy pomocy otwornicy a następnie nakleiłem na nie trochę gumy dla lepszej przyczepności.

Program jest również bardzo prosty. Robot ma za zadanie ciągle skręcać w lewo, jeśli jednak natrafi na linię ma odbić w drugą stronę (W sumie to nie powinien być line follower a line avoider 😄).

int enableChannel1 = 9;
int channel1A = 0;
int channel1B = 1;

int enableChannel2 = 10;
int channel2A = 2;
int channel2B = 3;

int motorPower = 255;

int sensor;

void setup()
{
    //Serial.begin(9600);
    //Serial.println("Init");

    pinMode(enableChannel1, OUTPUT);
    pinMode(channel1A, OUTPUT);
    pinMode(channel1B, OUTPUT);
    pinMode(enableChannel2, OUTPUT);
    pinMode(channel2A, OUTPUT);
    pinMode(channel2B, OUTPUT);
}

void loop()
{
	sensor = analogRead(A0);
    //Serial.println(sensor);

    if(sensor < 200) //Wartość tą należy znaleźć samemu i dopasować ją pod swój fotorezystor i warunki oświetleniowe
    {
        forwardRight();
    }
    else
    {
        forwardLeft();
    }
}

void forwardRight()
{
    //Right
    analogWrite(enableChannel2, motorPower);
    digitalWrite(channel2A, HIGH);
    digitalWrite(channel2B, LOW);

    //Left
    analogWrite(enableChannel1, motorPower);
    digitalWrite(channel1A, LOW);
    digitalWrite(channel1B, LOW);
}

void forwardLeft()
{
    //Right
    analogWrite(enableChannel2, motorPower);
    digitalWrite(channel2A, LOW);
    digitalWrite(channel2B, LOW);

    //Left
    analogWrite(enableChannel1, motorPower);
    digitalWrite(channel1A, HIGH);
    digitalWrite(channel1B, LOW);
}

Kwestie do poprawy gdy czas pozwoli

  • Udoskonalić program i dodać możliwość kalibracji czujnika bez modyfikowania programu
  • Dodać zintegrowane zasilanie (akumulator Li-Po z układem zabezpieczającym i boostem do 5V)
  • Jakoś przymocować to Arduino aby tak nie latało luzem

Na koniec załączam parę zdjęć konstrukcji. Powiem szczerze był to pierwszy LF jakiego zbudowałem, bo do tej pory jakoś z tym zwlekałem (uznawałem, że mam ciekawsze projekty 😄). Jednak ten nieskomplikowany projekcik pokazał, że to fajna zabawa i gdy czas pozwoli zbuduję line followera z prawdziwego zdarzenia.

IMG_20190125_165051.thumb.jpg.da39b6cdb9c77bc789c595f58138e193.jpgIMG_20190125_165013.thumb.jpg.676da0f2be489bd7cf4942b9e1f605e2.jpg

50469997_2251965444856399_677303629476003840_o.thumb.jpg.8f4cf2188133a368131b3be7013882b2.jpg50487769_2251964494856494_5106228958278451200_o.thumb.jpg.22e6134c9aa24ed9f1556bf3f01927c8.jpg

IMG_20190125_165510.thumb.jpg.03a2c8e540d8778037a3d8e6e5804321.jpgIMG_20190125_165026.thumb.jpg.8ce8c23a7b5f4dee0b1734dbdc5bd196.jpg

Edytowano przez Treker
Poprawiłem formatowanie.
  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

@Danieo, witam na forum 😉 Widzę, że to Twoje pierwsze kroki na Forbocie, oto najważniejsze informacje na start:

  • Chcesz przywitać się z innymi członkami naszej społeczności? Skorzystaj z tematu powitania użytkowników.
  • Opis najciekawszych funkcji, które ułatwiają korzystanie z forum znajdziesz w temacie instrukcja korzystania z forum - co warto wiedzieć?
  • Poszczególne posty możesz oceniać (pozytywnie i negatywnie) za pomocą reakcji - ikona serca w prawym dolnym rogu każdej wiadomości.

Właśnie zaakceptowałem Twój opis, możesz go teraz zgłosić do akcji rabatowej umieszczając link w temacie zbiorczym. Dziękuję za przedstawienie ciekawego projektu, zachęcam do prezentowania kolejnych DIY oraz aktywności na naszym forum 🙂

Udostępnij ten post


Link to post
Share on other sites

Świetny pomysł i realizacja - taka wczesna ROBOedukacja jest szansą dla młodych pokoleń!

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

@Danieo jakieś plany na kolejne roboty? Może teraz minisumo? 😉

Udostępnij ten post


Link to post
Share on other sites

@Treker Tak, mam już parę planów, jednak są one dosyć czaso i budżetochłonne oraz do ich wykonania muszę reaktywować swoją drukarkę 3D 😄 No i na razie chcę dokończyć parę innych rozpoczętych projektów. Ale jak pojawi się coś ciekawego na pewno się pochwalę.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

@Danieo super, w takim razie powodzenia przy kolejnych projektach 😉

Udostępnij ten post


Link to post
Share on other sites

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!

Gość
Napisz odpowiedź...

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