Skocz do zawartości

[Dla początkujących] Przepis na robota - w pełni programowalny Line Follower


Nawyk

Pomocna odpowiedź

Hejka to znów ja, wymiana transoptorów pomogła.

Robot potrafi poruszać się, na razie po prostym eliptycznym torze, w obie strony.

Demon prędkości to to nie jest ale jak na pierwszą konstrukcję jestem z niego nawet zadowolony.

Filmik na YT z działania:

PS. Chciałbym podziękować dwóm użytkownikom tego forum:

  • Grabo - za ofiarowanie mi serw napędzających robota
  • Nawyk - za stworzenie przejrzystego poradnika

Dzięki chłopaki.

Link do komentarza
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

Wczytaj_stany_przetwornikow:
Start Adc
W = Getadc(5)
W = Getadc(5)
Stop Adc
Czujnik_lewy = W
Start Adc
W = Getadc(4)
W = Getadc(4)
Stop Adc
Czujnik_srodkowy = W
Start Adc
W = Getadc(3)
W = Getadc(3)
Stop Adc
Czujnik_prawy = W
Return

Dlaczego powtórzone są: W = Getadc?

Nie powinno być czasem tak:

Wczytaj_stany_przetwornikow:
Start Adc
W = Getadc(5)
Stop Adc
Czujnik_lewy = W
Start Adc
W = Getadc(4)
Stop Adc
Czujnik_srodkowy = W
Start Adc
W = Getadc(3)
Stop Adc
Czujnik_prawy = W
Return
Link do komentarza
Share on other sites

Bobby, niezupełnie.

Cytat z polskiego helpa:

Uwaga! Z powodu zmian w kodzie bibliotecznym w wersji 1.11.7.2, funkcję GETADC() najlepiej wywołać dwukrotnie:

W = Getadc(channel)

W = Getadc(channel)

gdyż za pierwszym razem funkcja może zwrócić wartość przetworzoną w kanale o numerze mniejszym o jeden (Przetestował Andrzej Sablik).

© Zbigniew Gibek, 2002-2005 © MCS Electronics, 1999-2005

Różnie z tym bywa Sabre nigdy nie miał takich problemów, ja przy M32 miałem fałszywe odczyty. Dodanie podwójnych getadc() jest bezpieczniejsze, jednak znacznie wydłuża działanie programu - należy pamiętać, że całe ADC nie jest zbyt szybkie, a Bascom jeszcze to pogarsza ( np.: gdy wybierzemy wartość "Auto" w preskalerze).

Link do komentarza
Share on other sites

Szczerze mówiąc, ja też nie miałem problemów z ADC. Ale wolałem żeby wszystko działało na 200%. Robot nie jest z resztą specjalnie szybki, więc nie ma strachu o "zgubione" krytyczne informacje.

Link do komentarza
Share on other sites

Z elektrody:

... aczkolwiek dwukrotne powtórzenie Getadc(x) kiedyś maskowało błąd Bascoma, który jak dobrze pamiętam polegał na odczytywaniu za pierwszym razem napięcia z końcówki o numerze o jeden niższym niż wskazana w Getadc.
🙄
Link do komentarza
Share on other sites

Tak jak napisał Treker, wielokrotnie u siebie to sprawdzałem i u mnie zawsze było ok, ja nigdy nie używałem podwójnego Getadc(x) i zawsze miałem poprawne dane. Może to w dużej mierze zależy od użytego mikrokontrolera albo ustawionego preskalera przy ADC, ja miałem zawsze na auto i w zasadzie wszędzie używam tych samych układów atmega168/328

Link do komentarza
Share on other sites

Ułożenie czujników - ich odległość od siebie, kształt ułożenia (linia prosta, półkole, itd) ma spore znaczenie. Dla każdego z ułożeń należy doświadczalnie dobrać jak najbardziej optymalny program sterowania.

Link do komentarza
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!

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.