|
|
pl:miw:2009:miw09_nxtsensors1 [2009/07/27 13:18] jsi08 |
pl:miw:2009:miw09_nxtsensors1 [2019/06/27 15:50] |
====== Opis ====== | |
Paweł Konas, pawelkonas@gmail.com | |
| |
NXT_sensors | |
Build extra sensors from the Extreme NXT Book (available for us!) | |
warning: requires some hardware and experience! | |
| |
====== Spotkania ====== | |
===== 20090219 ==== | |
* [[http://mindstorms.lego.com/Overview/NXTreme.aspx|NXtreme]] | |
===== 20090305 ==== | |
W planie dostarczenie prototypu czujnika. | |
===== 20090416 ==== | |
Próba skonstruowania czujnika od początku w oparciu o mikrokontroler AVR ATmega8. Zalety: zwarta konstrukcja, tańszy, możliwość przeprogramowania. | |
Zastanowić się jak podłączyć czujnik od strony PC (widoczność w sofcie NXT). | |
| |
====== Projekt - STAN AKTUALNY ====== | |
W skrócie zamieszczam aktualny stan projektu.\\ | |
Zlutowany prototypowy czujnik odległości działający w zakresie 0 - 200cm z dokładnością około 5cm (dla odległości 10 do 15cm wyświetla 15cm itd.). Dodatkowo dołączona gotowa biblioteka do komunikacji za pomocą protokołu I2C i przygotowane połączenia dla tejże (podpięte piny). \\ | |
Oprócz tego dołączony programator pod LPT.\\ | |
| |
====== Projekt - TODO ====== | |
1) Poprawić jakość czujnika - łatwiejsze jeśli ma się __oscyloskop__. Większy zasięg/dokładność?, \\ | |
2) Zaimplementować komunikację przez I2C,\\ | |
3) Zaprojektować i zaimplementować komunikację z aplikacjami na PC (np. zrobić osobny bloczek w programie Mindstorms NXT odpowiadający za ten czujnik?).\\ | |
| |
| |
====== Projekt - wersja pierwotna ====== | |
Na początek proponuję laserowy czujnik odległości zaczerpnięty ze strony: \\ | |
http://www.philohome.com/sensors/lasersensor.htm \\ | |
| |
Jednak mogą wystąpić - jak zwykle to bywa :) - pewne problemy.\\ | |
1) W Polsce ciężko będzie dostać zastosowany czujnik odległości Hamamatsu S6986, \\ | |
2) Jeszcze nie wiem gdzie kupić soczewki i odpowiednią taśmę odblaskową albo odpowiednik, \\ | |
3) 1 i 2 muszę w praktyce przetestować i dostroić z hardware'm wyjętym ze wsk. laserowych dostępnych na polskim rynku, | |
4) Jak się okazało krótka żywotność. | |
\\ \\ | |
Z powyższą propozycją wiążą się jednak pewne kwestie i dodatkowe komplikacje, które chciałbym omówić na konsultacjach. Drugi proponowany czujnik odległości - tym razem ultradźwiękowy - można znaleźć tutaj:\\ | |
http://www.interq.or.jp/japan/se-inoue/e_srm.htm \\ | |
Plusy: | |
* Szczegółowo przetestowany, | |
* Niezły zasięg, wg autora 35cm do 10m (dla porównania oryginalny czujnik z NXT ma wg dokumentacji zasięg do 2,33m), | |
* Części powszechnie dostępne, | |
* Zasilanie 9V czyli takie jakie może dostarczyć centralna jednostka NXT. | |
\\ | |
Ostatecznie z wersji tej zrezygnowałem - z trzech zasadniczych powodów: \\ | |
1) Duży rozmiar - wbrew pozorom bardzo istotny powód patrząc na rozmiar choćby jednostki centralnej NXT, \\ | |
2) Początkowo nie uwzględniałem kolejnych elementów koniecznych m.in. do komunikacji przy pomocy I2C, \\ | |
3) Mała 'elastyczność' (w porównaniu do programowalnych mikrokontrolerów).\\ | |
| |
| |
====== Projekt - wersja końcowa ====== | |
Po skonstruowaniu czujnika opisanego powyżej i problemach z jego debuggingiem zdecydowałem się na projekt od zera. Tym razem - i ostatecznie - sonar skonstruowałem w oparciu o tani (około 6zł w momencie pisania tego tekstu) i powszechnie dostępny mikrokontroler Atmega8. | |
Dzięki m.in. posiadaniu komparatora analogowego, wewnętrznego zegara (1MHz) oraz programowalności samego układu udało się otrzymać konstrukcję zwartą i elastyczną.\\ | |
| |
Poniżej zamieszczam schemat układu (stworzony przy pomocy programu [[http://www.cadsoft.de/|Eagle]]):\\ | |
{{:pl:miw:2009:schemat_czujnika.png|}} | |
| |
Poniżej zdjęcie wykonanego czujnika:\\ | |
{{:pl:miw:2009:nxtsensor1_zdjecie_czujnika.png|}} | |
| |
Dodatkowo zamieszczam pliki projektu wykonanego w programie (wersja ograniczona jest darmowa) Eagle - tj. powyższy plik schematu a także przygotowany do wydruku/zamówienia w firmie projekt płytki.\\ | |
Spakowane pliki projektu w Eagle:\\ | |
{{:pl:miw:2009:nxtsensor_eagle_projekt.rar|}} | |
| |
| |
====== Uwagi do skonstruowanego czujnika ====== | |
Poniżej opiszę szczegółowo proces tworzenia schematu czujnika i uwagi jego dotyczące. \\ | |
Przede wszystkim czujnik wykonany został w oparciu o tutorial programowania mikrokontrolerów AVR zamieszczony na stronie:\\ | |
[[http://www.patron.ehost.pl/patron/artykuly/vinavr/AVR_tutorial.htm|Tutorial pana Teodora Otulaka]] \\ | |
Oraz projekt zmodyfikowanego przykładu czujnika odległości ze strony: \\ | |
[[http://www.dioda.com.pl/forum/topics20/ultradzwiekowy-czujnik-odleglosci-do-robota-vt937.htm?sid=277b87a4e64e45209a3f6c48ec0d9065|Modyfikacja przykładu z powyższego źródła]] \\ | |
| |
W efekcie udało mi się skonstruować czujnik, który miał zasięg około 50cm. Przy większych odległościach niestety sygnały zanikały. W tym momencie inspiracją stał się ogólnodostępny schemat czujników odległości dostępnych komercyjnie na rynku pod nazwą SRF08 (tudzież SRF02, SRF06 etc.). Zastosowano w nich dodatkowy układ scalony max232, którego głównym zadaniem była konwersja napięć ze standardu TTL na RS232. Tym samym nadajnik ultradźwięków zasilony został napięciem około 9V (zamiast początkowych 5V bezpośrednio z atmegi).\\ | |
Wspomniany komercyjny schemat sonarów można znaleźć np. pod tym adresem: [[http://www.freeinfosociety.com/electronics/schemview.php?id=2096|SRF06]]\\ | |
Kupić zaś można choćby tutaj: [[http://www.nodna.com/xtc/product_info.php?language=en&info=p617_Devantech-SRF08-Ultraschall-Sensor.html|SRF08-sklep]].\\ | |
| |
| |
====== Sprawozdanie ====== | |
====== Prezentacja ====== | |
====== Materiały ====== | |