Skocz do zawartości
Eruwan

Serwo a arduino - skaner ultradźwiękowy

Pomocna odpowiedź

Witam

Jestem bardziej niż początkującym w tematach mikrokontrolerów i elektroniki, więc proszę o wyrozumiałość.

Od jakiegoś czasu planuje zrobić robota wykorzystującego czujnik ultradźwiękowy (między innymi) do mapowania terenu. Ale dopiero od paru dni zacząłem szperać i czytać jak to zrobić  krok po kroku.
Ha. Nawet znalazłem coś podobnego na forum  https://forbot.pl/forum/topic/11454-prosty-ultradzwiekowy-skaner-otoczenia-2d-360-stopni/

Rozbiłem się już na początkowych pytaniach, ale w tym temacie chciałbym zapytać konkretnie o jeden z nich:

1. Mianowicie jeżeli mam już arduino (z kursu arduino, który do teraz zbierał u mnie kurz) to co mi jest potrzebne prócz serwa pracy ciągłej do zbudowania obrotowej  wieżyczki na której będą zamontowane czujniki ultradźwiękowe? Rozumiem, że zależy od serwa, ale łączy się je przez shieldy, albo tworzy się jakieś układy, albo zasila niezależnie od arduino? Czy to przez pobór prądu?

2. Czy dostępne w różnych sklepach ( botland, kamami) shieldy do silników obsłużą też serwo?  Czy muszę mieć konkretnie shield ze sterownikiem serw?

3. Czy jeżeli servo będzie  miało duży pobór prądu to nie zakłóci w jakiś sposób pracy czujników?

 

Wiem, że pytania banalne, ale może Panowie potraficie mnie choć naprowadzić na trop. Sam w miarę czasu i możliwości w chwilach wolnych  od roboty staram się szperać po książkach i necie, ale temat niby prosty a jednak masę wiedzy należy sobie gdzieś ze szkoły przypomnieć, a większości przypadków od zera się uczyć.  

 

Edytowano przez Eruwan

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Nie jest Ci potrzebne serwo do pracy ciągłej, bo w nim nie kontrolujesz położenia a prędkość obrotową. Albo stosujesz zwykłe serwo i dwa czujniki (przód i tył), albo jakąś przekładnię zamieniającą 0..180 na 0..360.

Robiłem to na zwykłym serwie, zarówno z czujnikiem ultradźwiękowym, jak i TOF. Zakres oczywiście 180 stopni. Teraz kombinuję z silnikiem krokowym i krańcówką  ale na razie mam to na papierze.

Co do zakłóceń: wyłączasz serwo na czas pomiaru

 

Edytowano przez ethanak
  • Lubię! 1
  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

Dzięki.

Brzmi rozsądnie. Reasumując, biorę zwykłe serwo i daje dwa czujniki - nie będzie problemów z odbijającymi  się wszędzie falami?  Albo robię przekładnie 360.  Rozumiem że nawet z taką przekładnią to będzie ruch wahadłowy?

2 godziny temu, ethanak napisał:

 

Co do zakłóceń: wyłączasz serwo na czas pomiaru

 

Hmm...O tym nie pomyślałem.  Chyba za daleko wyszedłem z wyobraźnią.  Chciałem aby robot w czasie rzeczywistym jechał, obrazował teren i reagował na przeszkody. 

 

Ok. A co z podłączeniem serwa pod arduino?

Udostępnij ten post


Link to post
Share on other sites

Podpinasz bezpośrednio, możesz oczywiście podpiąć zasilanie do czegoś mocniejszego. Nie wiem jak chcesz rozwiązać zasilanie - ja zasilam albo całość z porządnego 5V, albo serwa (w prxypadku większej ilości) z oddzielnej przetwornicy 6V.

Czujniki muszą działać naprzemiennie.

W przypadku przekładni owszem, będzie to ruch wahadłowy.

Z tym czasem rzeczywistym to sobie dokładnie przemyśl... ile czasu trzeba, aby czujnik zwrócił dane o otoczeniu? Ile ma być odczytów na obrót czujnika? Jaki dystans przejedzie robot w tym czasie?

Mój eksperyment: czujnik na wprost, po otrzymaniu informacji o przeszkodzie robot się zatrzymywał, skanował otoczenie i wybierał następny fragment trasy. Tyle, że była to dość wolna gąsienicówka...

Z czujnikiem TOF wcale nie było weselej, przy 50 msec na odczyt (poniżej tej wartości dokładność pomiaru była za mała) i 9 odczytach odległości czas skanowania wynosił ok. sekundy. Pamiętaj, że serwo też potrzebuje vzasu aby się obrócić, a w czasie pomiaru musi być zatrzymane

 

 

  • Lubię! 1
  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites
1 godzinę temu, ethanak napisał:

 

Mój eksperyment: czujnik na wprost, po otrzymaniu informacji o przeszkodzie robot się zatrzymywał, skanował otoczenie i wybierał następny fragment trasy. Tyle, że była to dość wolna gąsienicówka...

Z czujnikiem TOF wcale nie było weselej, przy 50 msec na odczyt (poniżej tej wartości dokładność pomiaru była za mała) i 9 odczytach odległości czas skanowania wynosił ok. sekundy. Pamiętaj, że serwo też potrzebuje vzasu aby się obrócić, a w czasie pomiaru musi być zatrzymane

 

 

Też planuje zrobić robota na gąsienicach. 

Myślałem też o użyciu RPLIDARA (jakiegoś tańszego) ale to jak już opanuje czujki ultradźwiękowe. 

 

Widzę, że jest tu sporo do przemyślenia, a nie dotarłem nawet do tego jak to spiąć do raspbery i jak obrabiać

Udostępnij ten post


Link to post
Share on other sites

Przy RPi podpinasz serwo również bezpośrednio (servoblaster), ale lepiej jakimś shieldem, nie kombinujesz wtedy z gryzieniem się PWM, serw i dźwięku.

Oprogramowanie czujnika ultradźwiękowego wcale nie jest takie trywialne - precyzyjny pomiar czasu to nie jest specjalność RPi. Ja bym na Twoim miejscu nie bawił się w ultradźwięki tylko od razu podpiął czujkę TOF (np. taką - sprawdzałem na RPi, działa bardzo dobrze, VL53L1X leży na razie nierozpakowany).

  • Lubię! 1
  • Pomogłeś! 1

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ść
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...