Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:miw:2009:miw09_nxtsensors1 [2009/07/27 17:31]
jsi08 Problemy i pomysły v2
pl:miw:2009:miw09_nxtsensors1 [2019/06/27 15:50] (aktualna)
Linia 130: Linia 130:
 === Zasięg i dokładność sonaru === === Zasięg i dokładność sonaru ===
   * Dokładność - czujnik ostatecznie pracuje z dokładnością ok. 5cm. Tzn dla odległości 10 do 15cm wyświetla 15cm, dla odl. 20 do 25cm wyświetla 25cm itd. Problemem przy jego programowaniu okazał się brak liniowości mimo oczywistej stałej prędkości dźwięku w powietrzu. Co kilkanaście/​kilkadziesiąt centymetrów musiałem własnoręcznie kalibrować czujnik. A dokładniej eksperymentalnie ustalać jaka ilość taktów zegara (korzystałem z wewnętrznego zegara 1MHz) oznacza jaką odległość. Tym samym skonstruowałem umownie dużą (40 elementów)tablicę spodziewanych ilości taktów dla danych odległości. Z tego właśnie powodu użyta została podziałka 5cm. Być może zachowanie to wynikało z zastosowania płytki stykowej do prototypowania,​ a dokładniej jej zawodności przy częstotliwościach rzędu 40kHz? ​   * Dokładność - czujnik ostatecznie pracuje z dokładnością ok. 5cm. Tzn dla odległości 10 do 15cm wyświetla 15cm, dla odl. 20 do 25cm wyświetla 25cm itd. Problemem przy jego programowaniu okazał się brak liniowości mimo oczywistej stałej prędkości dźwięku w powietrzu. Co kilkanaście/​kilkadziesiąt centymetrów musiałem własnoręcznie kalibrować czujnik. A dokładniej eksperymentalnie ustalać jaka ilość taktów zegara (korzystałem z wewnętrznego zegara 1MHz) oznacza jaką odległość. Tym samym skonstruowałem umownie dużą (40 elementów)tablicę spodziewanych ilości taktów dla danych odległości. Z tego właśnie powodu użyta została podziałka 5cm. Być może zachowanie to wynikało z zastosowania płytki stykowej do prototypowania,​ a dokładniej jej zawodności przy częstotliwościach rzędu 40kHz? ​
-  * Odległość - Nawet po modernizacji układu (układ max232) badanie odległości powyżej 2m nie miało sensu - sygnał zanikał a przeszkoda musiała być położona idealnie prostopadle do czujników. Rozważając ponownie układ SRF08 omawiany wyżej można by skorzystać z rozwiązań przez niego proponowanych?​ Ostatecznie jego twórca zapewnia zasięg do 6m. Osiągnął to prawdopodobnie poprzez skorzystanie z cyfrowego potencjometru sterowanego przez mikrokontroler (niestety nie udało mi się go znaleźć w sklepach elektronicznych) który ustawiał '​tolerancyjność'​ komparatora w zależności od odległości. Oraz z dodatkowego wzmacniacza operacyjnego wzmacniającego sygnał odebrany przez odbiornik ultradźwięków. +  * Odległość - Nawet po modernizacji układu (układ max232) badanie odległości powyżej 2m nie miało sensu - sygnał zanikał a przeszkoda musiała być położona idealnie prostopadle do czujników. Rozważając ponownie układ SRF08 omawiany wyżej można by skorzystać z rozwiązań przez niego proponowanych?​ Ostatecznie jego twórca zapewnia zasięg do 6m. Osiągnął to prawdopodobnie poprzez skorzystanie z cyfrowego potencjometru sterowanego przez mikrokontroler (niestety nie udało mi się go znaleźć w sklepach elektronicznych) który ustawiał '​tolerancyjność'​ komparatora w zależności od odległości. Oraz z dodatkowego wzmacniacza operacyjnego wzmacniającego sygnał odebrany przez odbiornik ultradźwięków. ​Wreszcie można by nałożyć na nadajnik/​odbiornik ultradźwięków "​tuby"​ ukierunkowujące mechanicznie sygnały nadawane/​odbierane przez nie? 
 + 
 === Komunikacja I2C === === Komunikacja I2C ===
 +(Linki do omawianych tu tematów znajdują się na dole strony).\\
 +Dla mikrokontrolera Atmega udało mi się znaleźć gotową bibliotekę (Procyon AVRlib - linki na dole strony) na licencji GPL mającą m.in. zaimplementowaną wysokopoziomową obsługę protokołu I2C. Ze strony NXT korzystałem z języka NXC i IDE BricxCC (Bric Command Center). Jednak - nawet mimo, że korzystałem z [[http://​www.avrfreaks.net/​index.php?​name=PNphpBB2&​file=viewtopic&​t=80990|przykładu]],​ który teoretycznie powinien działać. Na przytoczonym forum nie udało się znaleźć odpowiedzi. Znalazłem jeszcze kilka wątków na różnych forach, z których wynikało że NXT z **firmware'​em starszym niż 1.05** ma bugi związane z komunikacją przez I2C. W testowanym zestawie NXT znajdował się firmware 1.01. Nie podjąłem się jednak jego wymiany.\\ ​
 +
 +Ewentualnie można by próbować podszyć się pod dostarczany w zestawie czujnik ultradźwięków?​ Jednak wbrew pozorom nie jest to proste. Lego nie udostępnia kodu źródłowego mikrokontrolera użytego w ich czujniku. Nie wiadomo więc co i kiedy wysyła do bricka. Można jedynie dowiedzieć się jak - dostępny jest dokument opisujący format akceptowalnych komunikatów I2C obsługiwanych przez NXT.
 +
  
 === Komunikacja z PC === === Komunikacja z PC ===
Linia 510: Linia 515:
 14)[[http://​www.prototypy.com/​|Firma 1 gdzie można zamówić wykonanie profesjonalnej płytki PCB]].\\ 14)[[http://​www.prototypy.com/​|Firma 1 gdzie można zamówić wykonanie profesjonalnej płytki PCB]].\\
 15)[[http://​www.drukowane.pl/​|Firma 2 gdzie można zamówić wykonanie profesjonalnej płytki PCB]].\\ 15)[[http://​www.drukowane.pl/​|Firma 2 gdzie można zamówić wykonanie profesjonalnej płytki PCB]].\\
 +16)[[http://​www.tme.eu/​pl/​|Sklep 1]].\\
 +17)[[http://​www.cyfronika.com.pl/​|Sklep 2]].\\
 +18)[[http://​www.hth.com/​filelibrary/​PDFFILES/​ATmega8.pdf|Dokumentacja Atmega8]].\\
 +19)[[http://​www.freeinfosociety.com/​electronics/​schemview.php?​id=2096|Schemat komercyjnie sprzedawanego czujnika odległości]].\\
 +20)[[http://​en.wikipedia.org/​wiki/​Lego_Mindstorms_NXT|NXT na wiki (patrz sekcja '​Connector'​)]].\\
pl/miw/2009/miw09_nxtsensors1.1248708701.txt.gz · ostatnio zmienione: 2019/06/27 15:57 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0