Skocz do zawartości

Kurs budowy robotów - #5 - omijanie przeszkód


Pomocna odpowiedź

U mnie podobna sytuacja jak u kolegi lepy, robot wariuje przy włączonych silnikach, losowo otrzymuje sygnał o wykryciu przeszkody, buzzer skrzeczy, robot odwraca się, co ciekawe na pinach A1/A0 nie działa poprawnie a na A4/A5 jest ok. Przy transmisji UART nie ma takiego problemu, dopiero przy włączonych silnikach, nawet bez zworki a przy wgranym programie z silnikami buzzer nie wydaje losowo dźwięku, robi to dopiero po naciśnięciu czujnika, czyli tak jak powinno być. Problem zaczyna się wtedy kiedy zakładam zworka i włączam zasilanie, pełna losowość. Kod, który wgrywam to pierwszy kod z silnikami z tego odcinka kursu.

qbeczek, czy na pewno masz wgrany kod z odpowiednim ustawieniem wejść (INPUT_PULLUP)? U kolegi leepa79 brak tych linii powodował właśnie opisywane problemy. Sprawdź, czy przypadkiem niczego nie usunąłeś/edytowałeś. Dla pewności warto też zmierzyć napięcia na bateriach, jeśli bawiłeś się wcześniej dużo robotem, to może po prostu baterie są już rozładowane i przy nagłych zmianach na silnikach całość się resetuje.

Postaram się przygotować dziś jeszcze jeden program testowy dla tych czujników, aby w przypadku dalszych problemów było łatwiej diagnozować przyczyny błędów.

Program niczym się nie różni od tego z kursu, dziwi mnie to, że na piach A1/A0 robot wariuje a na A4/A5 nie. Ostatnio zauważyłem, że na A4/A5 też się zdarza mu zawrócić, ale zauważyłem dygotanie czujnika, w tej sytuacji mogę go trochę winić, ale! Dlaczego przy stojącym robocie, koła uniesione w powietrzu, na a1/a0 przy włączonych silnikach bez żadnych ruchów czujników zaczyna łapać losowe przedmioty. Baterie dla pewności wymieniłem o dalej to samo.

qbeczek, nie zdążyłem dziś dokończyć testowego programu, wstawię go tutaj jutro. To są zwykłe przełączniki, nie ma cudów, aby działały tylko na wybranych portach - znajdziemy winowajcę 😉

qbeczek, w załączniku przesyłam kod testowy - jest to pierwsza wersja, więc nie opisuję, co dokładnie robi. Wystarczy podłączyć robota do komputera, następnie wgrać program z załącznika i uruchomić monitor portu szeregowego. Wszystkie dalsze informacje będą wyświetlane właśnie tam. Wystarczy postępować z instrukcjami, a na końcu (wyświetlony napis K O N I E C) skopiować zawartość całego okna, zapisać ją w pliku txt i przesłać w formie załącznika do posta 😉

TestCzujnikow.zip

ZombiZiomek, a powiesz co było źle? Może rozwiązanie Twojego problemu przyda się również komuś innemu w przyszłości.

ZombiZiomek, Podłącz do A1/A0 i wgraj ten kod testowy z postu powyżej 😉 odpal 'Monitor portu szeregowego' i wg wskazówek. Po tym pewnie wszystko się wyjaśni. U mnie jest ok, ale z ciekawości odpaliłem kod 😉

test_czuj.txt

qbeczek, u Ciebie również wszystko wygląda poprawnie. Zarówno testy bez ruchu robota, jak i podczas kręcenia silnikami pokazują stabilne odczyty z czujników (szczególnie ostatnie "1" podczas testów). W żadnym z tych przypadków czujniki nie sygnalizowały wykrycia przeszkody, gdy jej nie było.

Witam wszystkich.

Mam podobny problem jak ten opisany powyżej.

Krańcówki same odpalają na pinach A0/A1, jakby były ciągle zwarte (buzzer piszczy mniej więcej co 3 sekundy i wtedy następuje cofanie). Po zmianie na A4/A5 wszystko jest ok i robot jeździ poprawnie. Kod jest ten sam w obu przypadkach.

Załączam test.

test robot.txt

Treker, jaki jest sens (w programie testowym) pomiarów przy pomocy ADC przy pinie ustawionym jako INPUT i rozwartym wyłączniku krańcowym? Przecież tam są przypadkowe wartości, co ma to nam powiedzieć?

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ę »
×
×
  • Utwórz nowe...