Różnice

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

Odnośnik do tego porównania

pl:miw:2009:miw09_nxtsensors1 [2009/07/27 14:31]
jsi08
pl:miw:2009:miw09_nxtsensors1 [2019/06/27 15:50]
Linia 1: Linia 1:
-====== 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|}} 
- 
-==== Wykaz użytych elementów ==== 
-  * konektor 2x5pin (gniazdo żeńskie), 
-  * 2 wyświetlacze 7-segmentowe ze wspólną katodą, 
-  * 5 kondensatorów elektrolitycznych __1uF__, 
-  * 1 kond. ceramiczny __100nF__, 
-  * 1 kond. ceramiczny __330nF__, 
-  * 2 rezystory __82k__, 
-  * 1 rezystor __5k6__, 
-  * 8 rezystorów __1k__, 
-  * nadajnik i odbiornik ultradźwięków (średnica 16mm), 
-  * stabilizator napięcia 7805, 
-  * konwerter napięć max232n, 
-  * mikrokontroler Atmega8-16PI. 
- 
- 
- 
- 
-====== 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]].\\ 
- 
- 
-====== Programator ====== 
-W ramach projektu dołączam także programator pod LPT (używałem go wraz z darmową aplikacją PonyProg do której link znajduje się na dole strony). Jego schemat jest następujący:​\\ 
-{{:​pl:​miw:​2009:​nxtsensor_avrisp-siprog.gif|}} 
-Dołączoną taśmę do Atmegi8-16PI podłączyć należy następująco (zakładając,​ że żyłka różowa ma nr 10, a żyłka po drugiej stronie taśmy ma nr 1). 
-== Numer żyłki - odpowiadający pin Atmegi == 
-  * żyłka ​ 2 - pin VDD (pin 7) 
-  * żyłka ​ 4 - pin GND (pin 8) 
-  * żyłka ​ 6 - pin MISO (pin 18) 
-  * żyłka ​ 8 - pin SCK (pin 19) 
-  * żyłka ​ 9 - pin MOSI (pin 17) 
-  * żyłka 10 - pin RST (pin 1) 
- 
- 
-====== Prezentacja ====== 
-====== TODO - Materiały, linki ====== 
-Poniżej zamieszczam materiały i linki, które znalazłem, a które mogą się przydać osobom pragnącym kontynuować projekt.\\ \\ 
-1)[[http://​hubbard.engr.scu.edu/​embedded/​avr/​avrlib/​docs/​html/​index.html|Dokumentacja biblioteki Procyon AVRlib pod mikrokontrolery Atmegi obejmująca między innymi komunikację przez I2C]].\\ 
-2)[[http://​avr-news.freehostia.com/​projekty/​procyon-avrlib-biblioteka-funkcji-dla-mikrokontrolerow-avr/​|Strona skąd można pobrać bibliotekę Procyon AVRlib gdyż link na stronie oficjalnej nie działa]].\\ 
-3)[[http://​avr.15.forumer.com/​a/​using-twii2c-with-avrlib_post1039.html|Przykład użycia powyższej biblioteki (Procyon AVRlib)]].\\ 
-4)[[http://​bricxcc.sourceforge.net/​|IDE do pisania programów w NXC (not exactly C) dla Bricka NXT]].\\ 
-5)[[http://​www.atmel.com/​dyn/​Products/​tools_card.asp?​tool_id=2725|IDE do pisania programów w C pod mikrokontrolery Atmega]].\\ 
-6)[[http://​www.lancos.com/​prog.html|PonyProg - darmowy programator dla Atmegi]].\\ 
-7)[[http://​www.tau.ac.il/​~stoledo/​lego/​msp430-ir-remote/​|Przykładowy projekt własnego czujnika komunikującego się z NXT przez I2C]].\\ 
-8)[[http://​forums.nxtasy.org/​index.php?​showtopic=2051|Wątek na oficjalnym forum NXT dotyczący prób komunikacji NXT z mikrokontrolerami przy użyciu I2C]].\\ 
-9)[[http://​mindstorms.lego.com/​eng/​Egypt_dest/​Default.aspx|Strona lego mindstorms]].\\ 
-10)[[http://​mindstorms.lego.com/​Overview/​NXTreme.aspx|Dokumentacja techniczna NXT]].\\ 
-11)[[https://​gerard.etc.upt.ro/​~Robotics/​Lego%20NXT%20Hardware%20Developer%20Kit/​Appendix%207-LEGO%20MINDSTORMS%20NXT%20Ultrasonic%20Sensor%20I2C%20communication%20protocol.pdf|Dokumentacja I2C zaimplementowanego w NXT]].\\ 
-12)[[http://​www.avrfreaks.net/​index.php?​name=PNphpBB2&​file=viewtopic&​t=80990|Wątek na forum dot. prób komunikacji Atmegi z NXT przez I2C wraz z __załączonym kodem__ który teoretycznie powinien działać, ale nie działa...]].\\ 
-13)[[http://​www.alldatasheet.com/​|Strona z wyszukiwarką "​datasheet'​ów"​ układów scalonych]].\\ 
-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]].\\ 
pl/miw/2009/miw09_nxtsensors1.txt · ostatnio zmienione: 2019/06/27 15:50 (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