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:02]
jsi08
pl:miw:2009:miw09_nxtsensors1 [2019/06/27 15:50] (aktualna)
Linia 127: Linia 127:
  
 ====== Zaistniałe problemy, pomysły na rozwiązanie ====== ====== Zaistniałe problemy, pomysły na rozwiązanie ======
 +Problemy, które pojawiły się w trakcie realizacji projektu podzieliłem na kilka części. Przy niektórych problemach zamieszczam uwagi i pomysły na ich rozwiązanie.\\
 +=== 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? ​
 +  * 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 ===
 +(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 ===
 +Do tej części nie udało mi się niemal w ogóle dotrzeć. Warte odnotowania jest jedynie to, że w standardzie języka NXC znajdują się interfejsy odpowiedzialne za komunikację bluetooth, które być może można by wykorzystać do podłączenia Brick'​a do PC. Wciąż jednak problemem pozostanie zaimplementowanie własnych czujników w środowisku graficznym na PC. Jak można zrobić własny bloczek?
 +=== inne ===
 +  * Kabel NXT - wbrew pozorom końcówki opracowane przez lego nie są zgodne ani ze standardem telefonicznym (RJ11) ani z Ethernetem (RJ45). W obu przypadkach wtyczki minimalnie się różnią. Rozwiązaniem pozostaje nabycie w np. [[http://​twojrobot.nazwa.pl/​sklep1/​product_info.php?​cPath=22_33&​products_id=112&​osCsid=e56f5b0db34b7373a7c3c3dbbe965012| tym sklepie]] lub skorzystanie z [[http://​www.philohome.com/​nxtplug/​nxtplug.htm|tutoriala]] pokazującego jak samodzielnie wykonać taką wtyczkę.\\
 +  * Zasilanie - W tym wypadku problemu właściwie nie ma - można zasilać układ bezpośrednio z Brick'​a NXT gdyż biała żyłka z wtyczki NXT udostępnia napięcie 9V. Dodatkowo gdyby wymienić mikrokontroler na Atmega8L o obniżonym napięciu zasilania (od 2.7V do 5.5V) można by w ogóle usunąć z układu stabilizator napięcia i zamiast tego skorzystać z napięcia 4.3V dostarczanego przez żyłkę zieloną. \\
 +Źródło informacji:​\\
 +[[http://​en.wikipedia.org/​wiki/​Lego_Mindstorms_NXT|wikipedia - patrz sekcja ' Connector'​]],​\\
 +[[http://​www.hth.com/​filelibrary/​PDFFILES/​ATmega8.pdf|Dokumentacja Atmegi 8]].
  
 ====== Programator ====== ====== Programator ======
Linia 496: 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.1248706949.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