Skocz do zawartości

Elvis

Użytkownicy
  • Zawartość

    2594
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    189

Wszystko napisane przez Elvis

  1. Artykuł będzie bazował na płytce ewaluacyjnej. Chodzi mi o to, żeby nie było problemów sprzętowych - złe lutowania, zwarcia, itd. Opisywany będzie nieco starszy procesor rodziny LPC2xxx. Na szczęście, jeśli tylko programujemy w C, najnowsze Cortex-y programuje się w 90% identycznie. Mają nawet zachowane nazwy rejestrów (co prawda testowałem na LPC1768, ale mam nadzieję, że dotyczy to również maluchów). Procesory rodziny LPC mają standardowo zainstalowany bootloader, programy można wgrywać przez UART. Płytka którą, będę opisywać ma zamontowany max232, więc poza zakupem płytki, nie trzeba już ponosić kosztów.
  2. Dziękuję bardzo za wyróżnienie. Postaram się nie obniżać poziomu i w kolejnych miesiącach przygotować następne artykuły. Przygotowuję również kurs programowania ARM-ów - wszelkie uwagi, sugestie, życzenia mile widziane
  3. Racja, HCI nie jest obsługiwane. Myślałem, że tryb master wystarczy. Mój błąd.
  4. Jak najbardziej istnieje możliwość przełączenia w tryb master. Ja wykorzystałem tylko domyślne możliwości modułu, jednak za pomocą AT-komend można skonfigurować moduł w zależności od potrzeb. Więcej informacji w datascheecie BTM-222: http://www.kamami.pl/dl/btm222_datasheet.pdf Ale jak słusznie zauważył mog123 HCI nie jest obsługiwane. Czyli zostaje komunikacja po SPP.
  5. Test modułu KAmodBTM222 W teście sprawdzimy jak można wykorzystać moduł bluetooth do komunikacji z robotem. Artykuł składa się z dwóch części. W pierwszej uruchamiany jest moduł wraz z płytką prototypową, w drugiej podłączamy moduł do robota. Moduł KAmodBTM222 Opisywany moduł składa się właściwie z dwóch modułów - płyty głównej oraz modułu BTM222. Moduł BTM-222 był już wykorzystywany w robotach opisywanych na diodzie. Zawiera on kompletne rozwiązanie pozwalające na dwukierunkową komunikację przez bluetooth. Moduły BTM-222 są dostępne w wielu sklepach, w tym internetowych. Poniżej zamieszczam zdjęcia modułu - co ciekawe moduł inaczej wygląda na stronie TME, inaczej na Kamami. http://kamami.pl http://tme.pl Moduł KAmodBTM222 jest niejako płytką ewaluacyjną z zamontowanym modułem BTM-222. Jak widać na zdjęciu moduł bardziej przypomina ten z oferty TME. W każdym razie sam moduł BTM-222 ma kilka istotnych wad: 1) zasilanie i sterowanie 3.3V 2) nietypowe wyprowadzenie złączy 3) brak anteny Jeśli zdecydujemy się na wykorzystanie modułu (tańszego) BTM-222 musimy sami rozwiązać kilka problemów: 1) dodać stabilizator 3.3V oraz konwersję napięć 5V-3.3V 2) wykonać odpowiednią płytkę oraz przylutować moduł (ok. 40 padów SMT) 3) kupić lub zrobić antenę Jeśli kupimy gotowy moduł KAmodBTM222 wszystkie te problemy mamy już rozwiązane. Moduł wyposażony jest we własny stabilizator 3.3V oraz konwertery napięć. Za pomocą zworki wybieramy, czy cały moduł pracuje z napięciem 5V, czy 3.3V. Sygnały wyprowadzone są na złącza goldpin, więc bardzo łatwo połączymy moduł z naszym układem. Dodatkowo moduł wyposażony jest w 3 diody led sygnalizujące podłączenie zasilania, połączenie przez bluetooth oraz przesyłanie danych. Podłączamy moduł Aby uruchomić moduł, najpierw musimy wybrać, z jakimi poziomami napięć będziemy pracować. Jeśli nasz procesor pracuje na napięciu 3.3V, ustawiamy zworkę JP2 w położenie 3V. Natomiast dla procesorów 5V, do których należy większość AVR ustawiamy JP2 w położenie 5V. Dzięki temu, napięcie zasilania 5V zostanie obniżone do 3.3V przez stabilizator znajdujący się na płytce KAmodBTM222. Układy buforujące zapewnią dostosowanie poziomów napięć sterujących. Ustawiamy JP2 w pozycję 5V i podłączamy zasilanie (na razie bez linii danych). Moduł w ciągu kilku sekund startuje, zapala się zielona dioda sygnalizująca zasilanie. Teraz będziemy potrzebowali komputera PC z obsługą bluetooth (większość laptopów na szczęście obsługuje bluetooth). Wyszukujemy urządzenia bluetooth i wybieramy „KAmodBT demo”. Następnie wybieramy tryb autoryzacji oraz wpisujemy PIN (klucz dostępu). Domyślny pin to „1234”. Podajemy go i klikamy „Dalej”. System instaluje nowe urządzenie i po chwili wyświetla podsumowanie: Warto zapamiętać, który port COM został podłączony. U mnie były to porty COM37 i COM38, ale okazało się, że poprawnie działa COM37. Teraz czas sprawdzić, czy urządzenie działa Uruchamiamy terminal, ja wykorzystuję putty - darmowy program o dużych możliwościach, do pobrania tutaj. Domyślne parametry połączenia, to prędkość 19200, 8 bitów danych, 1 bit stopu, brak kontroli parzystości i przepływu danych. Klikamy „Open”, pojawia się okno terminala. Niestety wydaje się ono martwe - nie reaguje na naciskanie klawiszy. Jedyna zmiana, to dioda na płytce modułu KAmodBTM222 - zamiast migać, zaczyna świecić ciągle. Oznacza to, że nawiązaliśmy połączenie. Przesyłanie danych Czas teraz przetestować przesyłanie danych. Ja wykorzystam płytkę z procesorem ATMega8, która wcześniej służyła do testowania innych modułów radiowych. Poniżej schemat płytki. Stabilizator LM1117 został zastąpiony L7805 - płytka pracuje na 5V, co jest bardziej typowe dla procesorów AVR. Aby uzyskać komunikację między procesorem, a modułem wystarczy połączyć piny RXD oraz TXD procesora z pinami RXI oraz TDO na płytce KAmodBTM222. Łączymy je na krzyż (cross-ujemy), czyli TXD podłączamy do RXI, a RXD do TDO: Procesor KAmodBTM222 TXD <---> RXI RXD <---> TDO Czas napisać program sterujący modułem. Z pomocą przychodzi nam producent modułu. Dostarcza on program przykładowy. W naszym programie wykorzystamy gotowy kod dostarczony przez producenta. Pliki KAmodBTM222.h oraz KAmodBTM222.c dostarczają obsługę modułu UART oraz sterowanie modułem bluetooth. Wystarczy zmienić wartość stałej F_CPU zdefiniowanej w pliku KAmodBTM222.c tak, aby odpowiadała prędkości taktowania naszego procesora. Pierwszy program Pierwszy program jest bardzo prosty. Wysyła komunikat testowy „Hello world” oraz zapala/gasi diody LED po otrzymaniu cyfry od 0 do 3 (0 - gasi diody, 1,2,3 - zapala odpowiednią diodę). Kod programu znajduje się w załączniku. Wgrywamy program do procesora, po czym łączymy się z modułem ponownie. Teraz w oknie terminala widoczne są komunikaty testowe. Co więcej naciskając klawisze 0-3 możemy sterować diodami na module. Mała rzecz, a cieszy Adres modułu Zanim przejdziemy do dalszej części, sprawdzamy jeszcze adres naszego modułu. W tym celu otwieramy okno właściwości naszego modułu(Panel Sterowania->Urządzenia Bluetooth->KAmodBT demo->Właściwości) Zapisujemy adres urządzenia. Przykładowy to 00:12:6f:09:43:ed Połączenie telefon - moduł bluetooth Teraz czas wykorzystać prawdziwe zalety komunikacji po bluetooth. Do komunikacji z PC możemy wykorzystać różne moduły, część była już opisywana na diodzie. Niewątpliwą zaleta bluetooth jest jednak możliwość wykorzystania telefonu do sterowania robotem. Najpierw należy połączyć telefon z modułem. Sposób łączenia zależy od modelu i producenta, jednak nazwa urządzenia i pin są zawsze takie jak w przypadku podłączenia przez PC. Program na telefon Jak napisać program na telefon? Najprościej w Javie. Pobieramy darmowe środowisko NetBeans http://netbeans.org/ Następnie pobieramy plugin „Java ME”. ME oznacza Mobile Edition - czyli Javę na urządzenia mobilne, głównie telefony. W załączniku znajdziemy gotowy kod źródłowy. Przykładowy program jest bardzo prosty - wyświetla jedną linijkę z komunikatami oraz przyciski do sterowania - 4,2,6,8,5. Jak łatwo zgadnąć pełne sterowania wykorzystamy do kontrolowania robota. Na razie przyciski 4, 2, 6 służą nam do zapalania kolejnych diod LED, przycisk 5 gasi diody. Program powinien działać na większości telefonów, ja testowałem na Nokii E66 i E51. Poniżej filmik pokazujący działanie. Program w Javie jest bardzo prosty, każdy kto zna Javę powinien umieć poprawić program (wygląd jest mocno spartański). Warto wspomnieć o ustawianiu adresu urządzenia. W programie „na sztywno” zapisany jest adres modułu BTM-222. Odpowiada za to kod: private final String deviceAddr = "btspp://00126F0943ED:1"; Zamiast 00126F0943ED należy wprowadzić adres posiadanego modułu (pomijając znaki dwukropka). Adres zapisaliśmy wcześniej, jeśli nie, musimy podłączyć moduł z PC i odczytać adres ponownie. Podłączamy moduł do robota Najwyższy czas wykorzystać moduł oraz zdobytą wiedzę do komunikacji z robotem. Jeśli nasz robot ma wyprowadzony UART, podłączenie modułu jest bardzo łatwe. Tak jak poprzednio podłączamy zasilanie oraz linie TXO, RXI. W przykładowym robocie znajduje się procesor ATMega16, więc poprzedni program działa bez większych zmian. Uruchamiając warto na początek sprawdzić poprawność transmisji, łącząc się poprzez bluetooth z komputerem PC. Dopiero, gdy mamy pewność, że wszystko działa poprawnie, przejść na sterowanie z telefonu. Program robota jest bardzo prosty, służy tylko demonstracji komunikacji przez bluetooth. Po odebraniu komendy (znaku) „2” robot jedzie do przodu, „8” do tyłu, „5” zatrzymuje robota. „4” i „6” zapewniają skręcanie. Program w Javie pozostaje bez zmian - wyświetla stan połączenia oraz po naciskaniu klawiszy telefonu wysyła ich kody. Całość wygląda następująco: Taśma na którą przykleiłem moduł nie wygląda zbyt pięknie, ale jak już pisałem to tylko testowy robot. Filmik z działającym robotem: Podsumowanie Możliwości wykorzystania modułu są ogromne. Można za jego pomocą zdalnie kontrolować (debugować) program robota, kontrolować stany czujników, sterować działaniem programu. Nawet prosty przykład - zdalnego sterowania, daje dużo satysfakcji. Wykorzystanie telefonu zapewnia mobilność, której brakuje, jeśli do sterowania wykorzystujemy komputer. Moduł KAmodBTM222 jest bardzo udanym rozwiązaniem, ułatwia zastosowanie modułu BTM222 w każdym robocie. Dzięki niemu podłączenie komunikacji przez Bluetooth do nowo projektowanego, jak i już działającego robota jest bardzo proste. Niewątpliwą zaletą modułu jest jego uniwersalność, może pracować zarówno z napięciami 3,3V, jak i 5V. Instalacja BTM-222 na oddzielnej płytce sprawia, że moduł możemy wykorzystywać wielokrotnie - udoskonalając kolejne wersje robotów. Zalety: Łatwość podłączenia i obsługi Praca z napięciami 3,3V oraz 5V Wbudowana antena Samodzielny moduł, możliwy do wykorzystania w kolejnych konstrukcjach Jeden moduł wystarcza do komunikacji (drugi jest już w laptopie lub telefonie) Przykładowe programy dostarczane przez producenta modułu Wady: Problemy przy ciągłej transmisji danych, konieczne odstępy między pakietami Cena (wyższa niż samego modułu BTM-222) Przydatne linki http://kamami.pl/index.php?ukey=product&productID=137699 - strona producenta modułu KAmodBTM222 http://kamami.pl/index.php?ukey=product&productID=42905 - strona z modułem BTM-222 http://netbeans.org/ - darmowe środowisko do programowania w Javie http://www.elektroda.pl/rtvforum/topic921878.html - wątek o programowaniu w Javie na telefony http://www.midlety.net/site/index.html - kurs Javy na telefony http://java.sun.com/javame/index.jsp - strona Sun-a, pełna dokumentacja języka Java ME Dziękuję firmie Kamami za dostarczenie modułu do testów. BTRobot.zip BT222Java.zip BT222.zip
  6. Artykuł miał niestety ustalony deadline - czas na który Propox udostępnił moduł. Jest jednak szansa na ciąg dalszy. Jak chodzi o kamerkę i PID to dokładnie o coś takiego mi chodziło - AVR sterujący silnikami i wykorzystujący czujniki odbiciowe, a do tego kamerka+linux na potrzeby "przewidywania" tego, co jest przed robotem. Opis jest nieco pobieżny głównie dlatego, że szczegóły są nieco zawiłe i mało ciekawe. Przykładowo instalacja i konfiguracja tftp, przydzielanie adresów IP itd. Dopiero teraz dowiedziałem się, że Propox posiada już gotowe, skonfigurowane środowisko Linuxa. Jest to duży plus, sporo czasu można tak zaoszczędzić. Jak chodzi o ciąg dalszy to planuję uruchomić LCD, karty SD oraz może kodek dźwięku. Postaram się też podłączyć gotowego robota z AVR poprzez i2c lub uart.
  7. Ubuntu zainstalowałem oczywiście na PC. Na MMnet1001 działa OpenWRT. Poprawiłem zdanie w artykule, mam nadzieję, że teraz będzie czytelniej. Co do tych line-followerów, to oczywiście nie chodziło mi o poleganie tylko na obrazie z kamery. Raczej o zastosowaniu algorytmu z "przewidywaniem". Czyli zwykły line-follower z powiedzmy 5-8 czujnikami odbiciowymi + kamera, żeby z wyprzedzeniem "widzieć" zakręty. Nie mówię, że to będzie działać na 100%, ale wydaje mi się ciekawą koncepcją, a może tematem pracy dyplomowej.
  8. W niniejszym artykule chciałbym przedstawić możliwość wykorzystania systemu linux do budowy robota. Systemu Linux nie trzeba chyba nikomu przedstawiać. Liczne dystrybucje dostępne na komputery PC są łatwo dostępne i co ważne, darmowe. Obecnie coraz częściej linuxa można „spotkać” w urządzeniach nie przypominających komputera stacjonarnego. Warto wymienić chociażby telefony komórkowe, routery, czy nawigację (GPS). Od pewnego czasu można również kupić płytki ewaluacyjne wyposażone w procesor ARM9 oraz możliwość instalacji systemu linux. W artykule opisany zostanie moduł mmnet1001, dostarczony do testów przez jego producenta - firmę Propox. Na początek warto wymienić podstawowe parametry modułu: • procesor AT91SAM9260 o częstotliwości pracy 210MHz • 64MB pamięci RAM • 1GB pamięci FLASH • interfejs ethernet (RJ45) • obsługa USB, również w trybie host Parametry robią niemałe wrażenie. Bardziej przypominają parametry komputera, niż mikrokontroler. Warto od razu wspomnieć, że w ofercie firmy Propox dostępny jest bardzo podobny moduł mmnet1002 Parametry modułu są takie jak mmnet1001, jednak na płytce dodatkowo zainstalowano: • 2 gniazda USB • złącze RS232 • gniazdo kart micro-SD • złącze mini-USB • stabilizator 3,3V Moduł MMnet1002 jest gotowy do działania od razu po wyjęciu z pudełka. W ofercie firmy Propox znajdziemy również płytę ewaluacyjną EVBmm, do której możemy podłączyć moduł mmnet1001. Można również wykorzystać układy przygotowane samemu. Aby uzyskać działający system musimy podłączyć co najmniej: 1) zasilanie 3,3V 2) konwerter RS232 Wykonujemy to według dostarczonej przez producenta instrukcji. Na potrzeby testów, na PC zainstalowałem dystrybucję Ubuntu , wykorzystałem dostarczony w nim program obsługi RS232. Moduł MMnet1001 dostarczany jest z preinstalowanym linuxem w dystrybucji OpenWRT. Ustawiamy parametry transmisji (115200bps) i podłączamy zasilanie, w oknie terminala pojawiają się komunikaty uruchamianego systemu (obrazki są z putty pod Windows, więc jak widać też działa): Po kilku chwilach system jest gotowy do pracy. Osoby znające obsługę systemu linux poczują się jak u siebie - terminal działa jak każdy inny w systemie linux. Podstawowe programy są dostarczone wraz z systemem, działają jak na PC. Wraz z modułem otrzymujemy płytę CD z dość dużą liczbą gotowych do instalacji pakietów. Producent modułu przygotował dla nas głównie pakiety związane z siecią - mamy tutaj serwer www, php, tftp i wiele innych. Instalacja pakietów jest bardzo prosta. System wyposażony jest w manager pakietów opkg. Przykład użycia opisany jest dokładniej w instrukcji modułu. Moduł jako serwer www: Początkowo problemem może wydawać się przeniesienie danych z CD na moduł. Okazuje się to jednak bardzo łatwe. Wystarczy skopiować pliki na pendrive, a następnie podłączyć pendrive do naszego modułu. Musimy oczywiście najpierw podłączyć gniazdo USB płyty EVBmm do modułu mmnet1001. W przypadku mmnet1002, USB jest już na płycie. Obsługa pendrive, a nawet zewnętrznego dysku twardego (podłączanego przez USB) jest bardzo łatwa. Montujemy napęd i możemy z niego korzystać jak na zwykłym PC. Nie musimy sami pisać żadnego kodu (szczegóły w instrukcji). Nasz moduł ma całkiem sporą pamięć flash (1GB). Dzięki temu możemy zainstalować niejeden pakiet i nadal mieć sporo wolnej pamięci. Jednak jeśli tyle pamięci okaże się niewystarczające, zawsze można wykorzystać pendrive, a nawet dysk twardy (tego nie polecam, pobiera strasznie dużo prądu). Gdy mamy już zainstalowane pakiety, warto podłączyć moduł do internetu (albo chociaż do sieci lokalnej). Podłączamy kabel z wtyczką RJ45 i prawie gotowe. Prawie, bo trzeba jeszcze skonfigurować adres IP. Najłatwiej jest skonfigurować sieć lokalną, aby działał w niej serwer DHCP i przydzielał adresy w sieci 192.168.1.x. Moduł sam pobierze wtedy ustawienia naszej sieci. Można również na stałe ustawić adres modułu. Wymaga to edycji pliku /etc/config/network. Sesja telnet (przez sieć lokalną), działa Midnight Commander: Nie testowałem współpracy z kartami SD, jednak nie powinno być z tym problemu. Skoro pamięć USB działa bez problemu, SD powinno działać nawet lepiej. Jeśli ktoś chciałby wyposażyć moduł w obsługę sieci bezprzewodowej, wystarczy podłączyć odpowiednią kartę WiFi przez USB. Instrukcja obsługi opisuje jak to zrobić. Moduł pozwala na łatwe zbudowanie własnego routera, a nawet serwera www. Jednak naszym celem jest weryfikacja jej przydatności do sterowania robotem. Najpierw musimy skompilować własny program. Producent modułu dostarcza SDK (czyli przede wszystkim kompilator). Co ciekawe odpowiednie pliki są na płycie CD, natomiast wersja dostępnie na stronie nie zawiera kompilatora. Do kompilacji konieczne jest użycie systemu linux. O ile dotychczas mogliśmy pracować na systemie windows, teraz konieczna jest instalacja Linux-a na PC. Ja wybrałem Ubuntu, po zainstalowaniu systemu i doinstalowaniu wszystkich wymaganych modułów, kompilacja przykładowego programu odbyła się bez problemu. Większym problemem jest wgrywanie programu na moduł. Co prawda można wykorzystać pendrive, jednak jest to bardzo niewygodne. Producent opisuje w instrukcji wykorzystanie tftp do kopiowania plików na moduł. Jest to nieco wygodniejsze niż użycie pendrive-a, jednak nadal pisanie i testowanie programu jest znacznie wolniejsze niż na PC. Warto przy okazji zobaczyć, jak pod linux-em sterujemy sprzętem. Jest to zupełnie inny sposób niż jesteśmy przyzwyczajeni na mikrokontrolerach (np. AVR). Dostęp do peryferiów odbywa się przez system plików! Aby zapalić lub zgasić diodę, zapisujemy do odpowiedniego pliku 0 lub 1. Nie musimy nawet pisać programu, można to zrobić z poziomu terminala. Taka jest filozofia działania linux-a. Układy peryferyjne są widoczne jako pliki. Ma to wady i zalety. Obsługa RS232 jest bajecznie prosta - wystarczy zapisać/odczytać dane z odpowiedniego pliku. Podobnie i2c działa bezproblemowo. Znacznie gorzej wygląda sytuacja, jeśli chcemy sterować za pomocą linii I/O. Co prawda jest to nadal bardzo proste (zapis do plików), jednak niezbyt szybkie. Postanowiłem sprawdzić, jak szybko moduł jest w stanie sterować linią I/O. Program, w pętli wystawiał 1 i 0 na wybraną linię I/O. Oscyloskop pokazał straszną prawdę - procesor pracujący z częstotliowścią 210MHz generuje sygnał o częstotliwości... 14kHz! To 1000 razy słabiej niż mały AVR. Wniosek jest następujący - nie należy wykorzystywać linii I/O bezpośrednio. Jak więc sterować peryferiami? Możliwości są dwie: 1) możemy wykorzystać dodatkowy mikrokontroler, który będziemy sterować przez uart lub i2c 2) można napisać własny moduł jądra sterujący peryferiami Pierwszy sposób jest chyba łatwiejszy, jednak w efekcie dostajemy układ z 2 procesorami, jeden sterujący peryferiami oraz drugi zajmujący się „logiką”. Drugi sposób jest przeznaczony dla zaawansowanych użytkowników linuxa, ponieważ pisanie modułów kernela nie jest łatwe. Jeśli jesteśmy przy kernelu, warto wspomnieć, że dostępne są gotowe moduły obsługujące np. pamięć eeprom (przez i2c), czy wyświetlacz LCD. Linux dostarczony z modułem bazuje na dystrybucji OpenWRT. Projekt powstał, aby umożliwić wykorzystanie routerów do uruchamiania własnego systemu linux. Na płycie CD znajdziemy dystrybucję OpenWRT przygotowaną do współpracy z naszym modułem. Mamy oczywiście możliwość konfiguracji oraz przekompilowania kernela. Jedyny problem to wersja OpenWRT. Obecnie dostępna jest nowsza wersja, jednak nie obsługuje ona bezpośrednio naszej płyty. Jeśli nie chcemy pisać własnych modułów jądra, a chcemy zbudować robota najprościej jest wykorzystać dodatkowy procesor (np. AVR) do sterowania peryferiami. Moduł mmnet1001 pracuje tylko z napięciami 3.3V, więc trzeba o tym pamiętać wybierając odpowiedni procesor lub uwzględniając konwersję napięcia. Co daje użycie mmnet1001? Przede wszystkim ogromną pamięć. Moduł może realizować bardzo skomplikowany algorytm sterowania, a jednocześnie zapisywać wszystkie parametry pracy układu. Jest jeszcze jedna ciekawa możliwość wykorzystania linuxa w robocie. Mi się niestety nie udało, ale gdyby poświęcić na to więcej czasu, do modułu można podłączyć po USB kamerę. Otrzymalibyśmy wtedy robota, który nie tylko może przesyłać obraz (to otrzymamy za pomocą zwykłej kamery po IP), ale może też wykonywać pewną „analizę” obrazu. Można w ten sposób zbudować bardzo ciekawego światłoluba - który będzie szukał np. koloru czerwonego (albo blond ), dodatkowo obraz można wysyłać przez internet (wśród pakietów dostępny jest nawet gotowy program uvc_streamer). Miłośnikom line-followerów też mogłaby się przydać możliwość „widzenia” trasy przed robotem, a nie dopiero po najechaniu na linię. Zalety modułu: moduł ma bardzo duże możliwości internetowe, pozwala na łatwe uruchomienie własnego serwera www, routera ogromna pamięć pozwala na zbudowanie np. zdalnego rejestratora, z możliwością odczytu, czy konfiguracji przez www obsługa USB w trybie host, wbudowana obsługa systemów plików, TCP/IP duża pamięć i moc obliczeniowa pozwala na budowę robota o bardzo rozbudowanym algorytmie działania podłączanie układów zewnętrznych (np. kart WiFi, kamer) daje dużo możliwości zastosowań Wady modułu: wymaga zaawansowanej znajomości systemu linux poznanie go i wykorzystanie zajmuje dużo czasu do działania wymagane jest podłączenie zewnętrznego zasilania i gniazd (moduł mmnet1002 nie ma tej wady) Moduł jest niemal idealnym rozwiązaniem dla osób szukających tematu do pracy dyplomowej. Dziękujemy firmie Propox za dostarczenie modułu do testów.
  9. Do tego służy logiczne AND. W C jest to operator & w basicu pewnie AND. Wykonujesz x & maska i w wyniku dostajesz "wycięty" fragment liczby x. Czyli: 1100110011 & 0000011111 = 0000010011 1100110011 & 1111100000 = 1100100000
  10. Obsługa USB przez procesor to jedno, ale oprogramowanie tego tu inny problem. Dużym plusem linuxa jest to, że obsługa jest wbudowana. A samemu wszystko napisać to wcale niełatwe zadanie.
  11. Zamiast wzmacniacza operacyjnego pracującego jako komparator można po prostu dać komparator. Np. LM339 + podciąg.
  12. Przenieś procedurę odczytu do przerwania. W głównym programie odczytuj tylko położenie i wyświetlaj/przesyłaj. Wtedy będzie działało lepiej.
  13. Jeśli wystąpiło przepełnienie, to nie należy ani dodawać ani odejmować 128. Skąd wiadomo, że przepełnienie było takie? Przecież równie dobrze mogliśmy zgubić 256... Oczywiście zmniejsza to błąd, ale i tak dokładne nie jest. Najlepsze rozwiązanie to tak często czytać, żeby przepełnienie nie występował. O ile dobrze pamiętam przy częstotliwości odczytów 4kHz przepełnienie się nie pojawia. Wtedy pomiar jest dokładny - do czasu aż odsuniemy czujnik od podłoża.
  14. Na stabilizator jest za mały spadek napięcia. Chyba że sam zrobisz stabilizator z rezystora i diody zenera.
  15. Nawet LDO mają większy spadek napięcia. Jeśli bateria ma naprawdę 3,6V to wystarczy dioda schotkiego i będzie 3,3V. Natomiast większość akumulatorów przy pełnym naładowaniu ma więcej niż 3,6 - trzeba to sprawdzić. Wtedy możesz wykorzystać przetwornicę DC-DC, np. na układzie MC34063A.
  16. Brakuje też diod zabezpieczających przy silniku.
  17. To chyba zależy co kto lubi Ale na pewno po inf najłatwiej o pracę. Chociaż po elektrotechnice też nie jest najgorzej.
  18. O ile zrozumiałem Le_Cheque ma już liceum/technikum za sobą. Stąd najdłuższe wakacje w życiu. Co do kierunków, to pewnie każda uczelnia ma inaczej. Na Politechnice Łódzkiej właściwie cały pierwszy rok jest wspólny - więc niezależnie co wybierzesz - elektronikę, elektrotechnikę, AiR, czy informatykę, jest do zaliczenia to samo. Z tego co widzę, najwięcej problemów jest z analizą, studenci IV roku to normalka na zaliczeniu I semestru... pozostałe przedmioty też są trudne, ale chyba nie aż tak.
  19. Polecam pouczyć się analizy matematycznej. Może nie jest to pasjonujący przedmiot, ale baaardzo dużo osób ma problem z zaliczeniem.
  20. Cennik dostawy jest tutaj: http://www.seguro.pl/sklep/?artykul=4 Wychodzi, że od 10zł.
  21. Jeśli chcesz tanie, to polecam RFM12, ew. RFM12B (wersja B tylko na 3.3V). RFM12 dostępne np. tutaj: http://www.seguro.pl/sklep/?zobacz=4744 RFM12 w TME: http://www.tme.eu/pl/ Jak szukasz czegoś prostego w obsłudze, to może warto dopłacić i kupić moduły mobot-a: http://www.mobot.pl/index.php?site=products&type=853 Są droższe niż RFM12, ale moduł ma własny procesor, program i jest bajecznie prosty w obsłudze. Wystarczy podłączyć do uart-a i działa. Jest jeszcze wersja podłączana do PC (po USB). Natomiast jeśli szukasz profesjonalnego układu, to polecam oparty na CC1100. Moduły są dostępne w ofercie Propox: http://www.propox.com/products/t_202.html?lang=pl
  22. Zaciekawiło mnie to "power op-amp". Znalazłem nawet przykładowy - L165 (jest w ofercie TME). Moim zdaniem szkoda na niego kasy. Lepiej kupić MOSFET-a. Efekt będzie taki sam. Pamiętaj o dobrym radiatorze i najlepiej paście - niezależnie czy mos, czy wzmacniacz, tyle samo mocy musi wytracić. Inną opcją jest zastosować przetwornicę impulsową DC-DC. Wtedy nie będzie takich strat mocy.
  23. Pomysł raczej kiepski. Po pierwsze niepotrzebnie skomplikowany. Do takiego sterowania wystarczą góra dwa tranzystory. Wzmacniacz jest niepotrzebny. Problem to straty mocy. Jeśli chcesz z 9V zrobić powiedzmy 5V, to różnica, czyli 4V musi wydzielić ciepło na elemencie regulacyjnym (tranzystorze). Jeśli przemnożysz to przez prąd to otrzymasz całkiem solidną grzałkę. Zaleta takiego rozwiązania to jego prostota. Wada, to bardzo kiepski wynik energetyczny - w najgorszym przypadku połowa mocy idzie na ciepło. Natomiast co do DAC, to nie jest potrzebny - wystarczy PWM + filtr RC. Ale najlepiej filtr RC wyrzucić i sterować samym PWM-em.
  24. Żeby uzyskać 5V na wyjściu wzmacniacza musiałbyś zasilać go z napięcia >5V. Jeśli zasilisz z 5V to max na wyjściu ok. 3,6V. Więc dokładność będzie mniejsza. W przypadku bardzo małych prądów przeważnie pomiar jest mało dokładny. Jeśli potrzebujesz większą dokładność i dla dużych i małych prądów najlepiej użyć 2 wzmacniaczy (albo np. jednego LM358) i w jednym dać znacznie większe wzmocnienie. Wtedy w programie najpierw odczytujesz dane z tego wzmacniacza o dużym wzmocnieniu - jeśli jest nasycony, to czytasz z drugiego.
  25. Coś marnie mi szło wyliczanie mocy, ale poprawiłem post Jeśli problemem jest miejsce, to możesz użyć rezystorów SMD. Np. w ofercie TME są rezystory 0,1Ohm / 2W. Taki rezystor pozwoli na pomiar do 4,5A! A jeśli dasz dwa równolegle, to nawet 9A. Problemem może być za to pomiar małych prądów - błąd pomiaru może być większy niż zam pomiar. Np. prąd 100mA spowoduje spadek napięcia raptem 10mV - może być ciężko zmierzyć.
×
×
  • Utwórz nowe...