Skocz do zawartości

Minisumo Haker2- worklog


Pomocna odpowiedź

Nie, żebym był natrętny ale dalej masz nie połączone ścieżki.Ale jak masz już płytkę to spróbuj jakimś drutem.

Jak nie masz pomysłu to spróbuj opcji follow-me (Route) pojeździć trochę myszką po ekranie i Eagle pokaże ci możliwe prowadzenia, ale czasami trzeba trochę po poprawiać.

Link do komentarza
Share on other sites

Płytkę wytrawiłem i pocynowałem, ale oczywiście pojawił się inny problem - czujniki. Czy ktoś mógłby mi wytłumaczyć jak najlepiej i najłatwiej wygenerować 36khz ? używam timera z pinu pd.5

Skleciłem taki program na podstawie artykułu KD93 ale działa slabo ( na pewno coś robię źle tylko nie wiem co ):

$regfile = "m16def.dat"
$crystal = 16000000

Config Portb = Output
Config Porta = Input
Config Portd.5 = Output
Config Portd.7 = Output
Config Portd.4 = Output
Config Portd.6 = Output



Ocr1a = 21

Ocr1a = 21

Tccr1a = &B10111111

Tccr1b = 1

Portd.4 = 1
Portd.7 = 1


Do

If Pina.1 = 0 Then
Portb = &B00000

Elseif Pina.1 = 1 Then
Portb = &B11111
End If

Loop
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

Po prostu robi tak :

Gdy przejadę ręką z góry na dół czujnik reaguje poprzez jaśniejsze zapalenie się diod led.

Za to gdy przybliżam rękę stopniowo ( poziomo) diody zaczynają 'dragć' po czym gasną.

Link do komentarza
Share on other sites

To jest SFH czy TSOP? Jakie masz diody (pasmo i średnica)?

Dodaj sobie paczkowanie dla diodek, zobacz w dokumentacji odbiornika jaka powinna być długość impulsów. Pokombinuj w okolicach tej długości, wychodzą całkiem ciekawe wyniki.

Link do komentarza
Share on other sites

Odbiotniki to TSOP'Y ( sfh nie mogę nigdzie dopaść) , diody LD271, o paczkowaniu nie wiem nic więc idę szukać 😉

[ Dodano: 15-04-2012, 09:10 ]

Znalazłem w dokumentacji, gdy wpisałem wavelength ale nie wiem czy to to.

Link do komentarza
Share on other sites

Są takie rysunki z paczkami, str. 3, tam jest "Optical Test Signal", pooglądaj sobie tez inne wykresy, tam mogą być jakieś zależności. Zrób jeszcze zdjęcie jak masz zabezpieczone diody. Jesteś pewny, że światło nie odbija się od podłoża? Spróbuj skierować czujnik w przestrzeń, daleko od wszelkich przeszkód.

Link do komentarza
Share on other sites

Tsop jest obudowany z każdej strony kartonem ( tylko soczewka wystaje poza karton )

I jeśli dobrze myślę to gdy dodam paczkowanie to diody będą pulsowały niezależni czy jest przeszkoda czy jej nie ma, ponieważ tsop będzie odbierał paczki ( jeśli źle myślęto proszę o wytłumaczenie lub jakiśprzykładowy program )

Z datasheeta wyczytałem że ta paczka (lub przerwa między paczkami ) powinna mieć ok 600us, tak?

Link do komentarza
Share on other sites

Tak, 600us tam było.

Tsop jest obudowany z każdej strony kartonem ( tylko soczewka wystaje poza karton )

No to kijowo, soczewka nie może wystawać, bo światło jest upierdliwe, zawsze się gdzieś poodbija i wpadnie do odbiornika 😉 Zostaw TSOP'a w spokoju, zajmij się izolowaniem diodek IR, najlepiej przy pomocy rurek aluminiowych i plasteliny. U mnie wygląda to tak:

Malutkie zdjęcie, bo wycinane z wycinanego etc, ale widać o co chodzi.

[ Dodano: 15-04-2012, 09:42 ]

A, zapomniałem. Z tym paczkowaniem to jest tak, że TSOP jest bardzo "mądry", sam sobie reguluje czułość, po dłuższym czasie odbierania blokuje się (możliwe, że dlatego gasła ci dioda po tym migotaniu). Dlatego wysyła się z diody krótkie impulsy i przerwy, żeby odbiornik je odebrał, ale nie zablokował się. Do tego do minisumo paczkowanie jest niemal konieczne, pamiętaj że czujniki na TSOP'ach są w dalszym ciągu stosowane w wielu robotach i emitując światło ciągiem dajesz przeciwnikowi informację, gdzie się znajdujesz, innymi słowy twój robot "świeci jak latarnia". Jeśli paczkujesz to twoje impulsy nie pokryją się z impulsami przeciwnika i roboty nie będa się zakłócać.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

No dobra diody zaizoluję( niestety dopiero jak wrócę z kościoła :-> )

Chodzi mi o te 600us to musi być długość paczki czy odstep między nimi ? I jak to zealizować w programie? Włączać diodę na 600 us i włączać odbiornik w tym samym momencie ( na 600us) by czekał na sygnał ?

Link do komentarza
Share on other sites

Ja to robię tak:

-włączasz diodę

-czekasz 600us

-sprawdzasz stan na TSOP

-wyłaczasz diodę

-czekasz 600us

W pętli oczywiście. Ja to robię jeszcze nieco inaczej z racji moich 6 diodek, ale zawsze działa to na takiej zasadzie.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

                      $regfile = "m16def.dat"
$crystal = 16000000

Config Portb = Output
Config Porta = Input
Config Portd.5 = Output
Config Portd.7 = Output
Config Portd.4 = Output
Config Portd.6 = Output



Ocr1a = 21

Ocr1a = 21

Tccr1a = &B10111111

Tccr1b = 1


Do
Portd.4 = 1
Portd.7 = 1
Waitus 600

If Pina.1 = 0 Then
Portb = &B00000

Elseif Pina.1 = 1 Then
Portb = &B1111111

Portd.4 = 0
Portd.7 = 0
Waitus 600


End If

Loop

Coś w tym stylu ?

[ Dodano: 15-04-2012, 10:14 ]

                      $regfile = "m16def.dat"
$crystal = 16000000

Config Portb = Output
Config Porta = Input
Config Portd.5 = Output
Config Portd.7 = Output
Config Portd.4 = Output
Config Portd.6 = Output
Pina.1 = 1
Portd.4 = 0

Ocr1a = 21

Ocr1a = 21

Tccr1a = &B10111111

Tccr1b = 1


Do
Portd.4 = 1
Waitus 600

If Pina.1 = 0 Then
Portb = &B00000

Elseif Pina.1 = 1 Then
Portb = &B1111111

Portd.4 = 0
Waitus 600


End If

Loop

Ten program działa jako tako. gdy przed czujnikiem znajduje się przedmiot diody zaczynają mrugać a gdy nie ma nie palą się.

Link do komentarza
Share on other sites

Teraz to już się pogubiłem 😋

Róbmy po kolei, bo walczymy tu już z izolacją a okazuje się, że już rejestry są źle ustawione. Chcesz mieć OC1A jako generator 36kHz, a OC1B jako zwykły pin I/O. Spójrz w DS'a:

http://www.atmel.com/Images/doc2466.pdf

Strona 110. Dla każdego pinu są po 2 bity do ustawienia, w tabelkach jest napisane jak ustawić te dwa bity żeby osiągnąć zamierzony efekt. Patrz na tabelki dla non-PWM. Wspomóż się polską wersja DS'a, akurat masz szczęście bo jest pod megę16. Spróbuj to sam poustawiać, bo wtedy najlepiej się nauczysz. Jak skończysz to Ci ewentualnie poprawię.

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.