Skocz do zawartości

Czujnik odleglosci attiny13 - schemat i program


lukaszinfer

Pomocna odpowiedź

Witam,

Ostatnio do głowy wpadł mi pomysł zrobienia czujnika odległości do mojeg robota.

Mam juz dosyć wydawania kasy na czujniki SHARPA.

Moja konstrukcja opiera się na 2 diodach podczerwonych, odbiorniku podczerwieni i attiny13.

1. Jak to ma działac ???

Dwie diody sa umieszczone po przeciwnych stronach czujnika tz.: jedna po lewo a druga po prawo.

Każda dioda będzie nadawać inną komende dzięki czemu attiny bedzie wiedziec po której stronie znajduje się przeszkoda.

Następnie sygnał w postaci GND wędruje przez 2 tranzystorki które mogą być podpięte do każdego SCALAKA.

2. Dlaczego pisze nowy temat ???

Po pierwsze nie wiem czy to ma szanse zadziałac, co o tym sądzicie ???

Po drugie nie wiem jak wygląda program na jednego scalaka który wysyła komende na dwie diody ....

P.S. Zamieszczam schemat

Niestety w przyszłosci dodam potencjometry aby mozna bylo regulowac czułość diod a tym samym czułość czujnika.

Pozdrawiam i czekam na komentarze

Za wszelkie błedy przepraszam i jesli zle cos umiescilem prosze nie kasowac mojego tematu 😉

Sprawdzcie ten schemacik.... Na diodach IR beda jeszcze potencjometry aby regulować czułość, diody zabezpieczajace i kondensatory schemat narazie tak wyglada bo na szybko go robilem 😉

Zasugerujcie jeszcze cos do programu jak wysylac komendy na dwie diody IR przez attiny13 np.: lewa komenda 22 a prawa komenda 33 ??

Link do komentarza
Share on other sites

Chociaż nigdy nie korzystałem z sharpów, to co do takiego czujnika Mihau ma rację. Taki czujnik jest bardziej od tego żeby sygnalizować czy jest przeszkoda czy jej nie ma i można ewentualnie dostroić sobie odległość na jakiej działa. Wiem bo mam zainstalowany podobny w "Prototypie".

Link do komentarza
Share on other sites

Nie wysyłasz komend rc5 czy cośtam, tylko mrugasz najpierw lewą diodą, sprawdzasz czy się odbiło, mrugasz drugą sprawdzasz i tak w kółko. Mam pytanie - czemu tak fikuśnie popiąłeś diody? Przecież wystarczyłby tranzystor i 2 rezystory, a na przykład do tsopa nie podpiąłeś kompletnie nic, co usprawniłoby jego działanie (pullup, kondensator)?

  • Lubię! 1
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

Doskonale was rozumiem i wiem ze SHARPY sa lepsze, ale chciałem spróbować czegoś nowego i tańszego. Wiem, że ta konstrukcja nie da mi tego samego co SHARP no ale chciałem spróbować. Zaraz powiecie, że jestem uparty no ale zrozumcie 😉

KD93 a mogłbyś zapodać program do twojego czujnika ???

[ Dodano: 18 Mar 10 06:31 ]

BoBBy

A czy mogłbys podac jakis przyklad tekiego programu???

A w opisie tłumaczyłem się czemu schemat taki jest. Nie dałem dużo rzeczy bo na szybko to robiłem 😉 ale pamiętam o nich 😃 a diody ??? Tak radzili wiec tak podlaczylem 😃

Link do komentarza
Share on other sites

Kiedyś się czymś takim bawiłem, diody IR zasilałem bezpośrednio z atmegi przez rezystor. Efekt tego jest taki, w zależności od dokładności wygenerowanego sygnału osiągasz pewien zasięg, niestety nie masz pomiaru tego zasięgu. Tak więc tylko wykrywasz przeszkody. Zasięg jaki udało mi się osiągnąć to około 8cm max.

Link do komentarza
Share on other sites

hmm, otrzymałbyś regulacje ale tylko max zasięgu. W sumie to nic więcej się nie uda z tego wycisnąć. No chyba że się mylę i nie znam. W każdym bądź razie mój układ składał się no wiadomo z procka szmelcu do niego, prócz tego 2 diody, 2 rezystory i tsop. Wersja bardzo minimalistyczna.

  • Lubię! 1
Link do komentarza
Share on other sites

Już gdzieś opisywałem ten program, on działa mniej więcej tak:

-ustawia dwie zmienne typu bit, jedna na każdą diodę

-włącza jedną diodę

-sprawdza, czy TSOP odebrał, jeżeli tak to ustawia zmienną w 1, jeżeli nie to w 0

-wyłącza tę diodę po krótkim czasie (np.50ms - trzeba dobrać doświadczalnie) i to samo robi z drugą.

Po tej operacji otrzymujesz wynik: jeżeli są dwa zera to nie ma przeszkody, jeżeli jest jedna jedynka to przeszkoda jest po jednej stronie, jeżeli są dwie to przeszkoda jest z przodu. Potem robisz sobie jakiś warunek (np. If...Then) jaką operację ma wykonać robot dla danego wyniku.

Ważne jest to załączanie diody na krótki czas, bo zdaje się że po 70ms jeżeli na TSOP występuje jedynka logiczna to się blokuje, ale nie sprawdzałem tego dokładnie. Mnie taki algorytm działa prawidłowo.

  • Lubię! 1
Link do komentarza
Share on other sites

Co do programu powinienem dać sobie rade 😉 w razie problemów będe pisać 😃

Wszystkim dziękuje za pomoc narazie nie zamykam bo może coś się jeszcze rozwinie 😉

Wszyscy po piwie 😋

[ Dodano: 18 Mar 10 09:29 ]

O i jeszcze małą prozba 😋

Wczesniej cos mowiliście o podłączeniu TSOP'a do procka...

Prosiłbym o jakiś sprawdzony schemat jak to podłączyć.

Boje sie ze zle podzespoly daje 😉

Link do komentarza
Share on other sites

Heh, mam teraz nawet odpalona testówkę do RC5, z tsopa gnd do gnd, zasilanie do zasilania, a sygnał z tsopa, bezpośrednio do procka pod INT0. O to jest właśnie wersja minimalistyczna, fakt nota katalogowa zaleca tam dodatkowe bajerki, bez tego też działa.

Kiedyś jak robiłem swój wykrywacz obiektów (bo jak już wspominałem czujnik odległości z tego żaden) wyglądało to tak.

- wysyłam sygnał z diody lewej i ustawiam D = 1

- jeżeli tsop odbierze sygnał zapisuje w DL = 1

- wysylam sygnał z diody prawej D = 2

- jeżeli tsop odbierze sygnał zapisuje w DP = 1

- jeżeli DL i DP równe są 1, wiadomo obiekt z przodu

- i tak dalej

Oczywiście wszystko zrealizowane na przerwaniach, do tego zabezpieczenie w postaci D = 0, stosowane w sytuacji gdy nie sprawdzamy czy mamy przeszkodę, takie zabezpieczenie anty-pilotowe 😃

A teraz jak wygenerować 36kHz w dziecinnie prosty sposób, sprawdzony do tego. Musisz troszkę poeksperymentować z wartościami 12 13 i 14 dla waitus, bo idealnie powinno być 13,5 według standardu pilotowego itd itd.

      Porta.0 = 1
     Waitus 13
     Porta.0 = 0
     Waitus 13 

oczywiście trzeba to troszkę zapętlić 😃, żeby wygenerować kilka "błysków" 🙂

Link do komentarza
Share on other sites

Takie informacje kolego znajdziesz w datasheecie - najlepsze i na pewno działające. Luko, przecież dając odpowiednio mocne diody, montując je w metalowych rurkach robiących za radiator, 'strzelając' prądem nieznacznie większym niż ten podany jako ciągły max, używając kilku diod na kanał można uzyskać baaardzo dobry zasięg. Zależy to też od samego czujnika (tsop, sfh...). Na http://er-online.co.uk/minisumo/forum/ czytałem w jednym temacie, ze koleś do białej ściany osiągnął zasięg 1-2m. Na RA we Wrocławiu przy moim stoliku siedział koleś z minisumo właśnie na takich czujnikach, zasięg niecałego metra, bez żyłowania diod. Ja na czujniku jak w robocie 'shine' (mocno 'przeamperowane' diody, na kilkanaście uS, 3 diody na kanał, odbiornik - zwykły fototranzystor) osiągnąłem zasięg 40cm do prostokąta 20x20cm, do ściany - 70cm. Niestety, jest to stosunkowo niebiezpieczne rozwiązanie (niebiezpieczne dla diod - przy błędnym programie - zbyt długi czas świecenia diod ir) nasze czujniki (a zasadniczo część nadawcza) potrafi dosłownie wystrzelić - zgubić soczewki.

EDIT:

Widzę, że w międzyczasie powstał nowy post:

A teraz jak wygenerować 36kHz w dziecinnie prosty sposób, sprawdzony do tego. Musisz troszkę poeksperymentować z wartościami 12 13 i 14 dla waitus, bo idealnie powinno być 13,5 według standardu pilotowego itd itd.
      Porta.0 = 1 
      Waitus 13 
      Porta.0 = 0 
      Waitus 13 

oczywiście trzeba to troszkę zapętlić , żeby wygenerować kilka "błysków"

Przy takim programie nie ma co się dziwić, że nie bardzo chciało Ci to działać - zerkałeś może przez oscyloskop/analizator stanów log. na przebieg na wyjściu proca? Mogę sę założyć, że lekką ręką będziesz miał częstotliwośc 35-40kHz - te polecenia (wait) są bardzo niedokładne - nalezy do zrobić na wewnętrznym timerze. Osobiście polecałbym odbiorniki na 40kHz, kwarc 16MHz może (szybki, fajnie i ładnie się dzieli do 40kHz) i koniecznie wygenerowanie tego za pomocą timera!

Link do komentarza
Share on other sites

BoBBy, no właśnie dlatego to była metoda dziecinnie prosta. Nie każdy od razu ogarnia temat timerów i nie każdy ma oscyloskop 😃. Ogólnie te wartości, działały, fakt do tych 8 cm, przez jakość sygnału, dokładniej przez odbieganie od 36kHz, ale to jest zupełnie inna bajka. Czasami może też tak być, że masz tylko 3 timery i wszystkie 3 zajęte ... w każdym bądź razie to było moje rozwiązanie na początku przygody z AVR`ami 🙂

Link do komentarza
Share on other sites

Apropos oscyloskopu/analizatora, znowu oftop z mojej strony - jeżeli potrzebujemy to drugie, to bez problemu można złożyć coś takiego jak scanalogic - m16, komunikacja przez uart. Ewentualnie jakiś analizator na lpt również dałby radę, ale nie wiem jakie częstotliwości są w stanie dobrze mierzyć (scanalogic max 4MHz przy kwarcu proca 16)

Link do komentarza
Share on other sites

Kupiłem dzisiaj tiny13 i mam zamiar robić czujnik na TSOP'ie, podzielę się wrażeniami. Z tym że teraz mam łatwiej, bo mam miernik z pomiarem częstotliwości to ustawienie 36kHz to będzie minuta.

PS. Jeżeli nie zależy komuś na małych wymiarach, to tiny13 jest o ponad złotówkę droższy od tiny2313 🤣

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!

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

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.