Skocz do zawartości

Elvis

Użytkownicy
  • Zawartość

    2664
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    198

Wszystko napisane przez Elvis

  1. Poprzednia lekcja Lekcja 4 - Porty I/O (ciąg dalszy) Następna lekcja Sterowanie diodami - usprawnianie programu Poprzednia wersja programu działała całkiem ładnie, jednak w pętli głównej 8 razy (tyle ile jest diod) powtarzał się ten sam kod. Nie jest to dobra metoda programowania. Po pierwsze program jest długi (wyobraźmy sobie sterowanie 100 diodami). Po drugie, niewygodnie jest program modyfikować - zmiana na zapalanie diod parami wymaga przeglądania całej pętli głównej. Jeśli wielokrotnie wykonujemy taki sam (lub prawie taki sam) program, zamiast kopiowania kodu, możemy zastosowa
  2. Poprzednia lekcja Lekcja 3 - Porty I/O Następna lekcja Procesor LPC2114 jest układem w pełni 32-bitowym. Dzięki temu porty I/O również mogą być 32-bitowe. W przypadku rodziny AVR porty oznaczane były kolejnymi literami A,B,C, itd. (PORTA, PORTB, PORC, itd.). Każdy port miał maksymalnie 8 linii (bo procesor był 8-bitowy). W przypadku LPC2114 porty są oznaczane numerami. Mamy więc port 0 oraz 1. Każdy może mieć maksymalnie 32 linie (w rzeczywistości mają nieco mniej). W dokumentacji, linie oznaczane są na dwa sposoby: 1) P0[5] - oznacza linię 5 portu 0, P1[16] - linię 16 portu 1 itd. 2)
  3. To prawda, że wszyscy handlowcy przekonują obecnie do kupowania Cortex-Mx. Są to nowe procesory, więc obiecują niesamowite cuda. Powód wybrania starszego procesora jest bardzo prosty - cena. Za ~89 zł dostajemy procesor z całkiem sporą pamięcią programu (128KB), szybki (60MHz), ale co najważniejsze dostajemy gotową, uruchomioną płytkę ewaluacyjną z układami peryferyjnymi. Podobna płytka pod procesor Cortex-M3 jest znacznie droższa. Jak chodzi o procesor, to nie zachęcam nikogo do używania LPC2114 we własnych projektach (głównie ze względu na dwa napięcia zasilające). Lepiej użyć chociażby
  4. Poprzednia lekcja Lekcja 2 - Kompilator Następna lekcja Do kompilacji programów będziemy wykorzystywać zestaw programów dostępny pod nazwą WinARM. Bezpośredni link do wersji 20060606 wykorzystywanej w kursie znajduje się tutaj: http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/WinARM-20060606.zip (95MB). WinARM podobnie jak WinAVR bazuje na darmowym (licencja GNU) kompilatorze GCC. Kursy dotyczące gcc przydadzą się również w przypadku WinARM, więc osoby zainteresowane pogłębianiem wiedzy o działaniu kompilatora zachęcam do poszukiwania informacji o gcc dostępnych w internecie.
  5. CrossStudio używa gcc, więc możesz spróbować takiej składni: asm volatile ( "STMDB SP!, {R0} \n" "MRS R0, CPSR \n" "BIC R0, R0, #0xC0 \n" "MSR CPSR, R0 \n" "LDMIA SP!, {R0}" );
  6. Lekcja 1 - Wstęp Następna lekcja Niniejszy kurs ma na celu ułatwienie rozpoczęcia przygody z procesorami ARM. Przeznaczony jest raczej dla osób, które już mają pewne doświadczenie w programowaniu i znają podstawy języka C. Podczas kursu będę raczej koncentrować się na aspektach charakterystycznych dla programowania ARM, niż na ogólnym opisie języka C. Osoby zaczynające przygodę z językiem C namawiam do nauki programowania na PC. Jest to o wiele łatwiejsza i szybsza metoda nauki. Programy kompilują i uruchamiają się natychmiast (odpada konieczność programowania procesora), istnieje możliwość
  7. Dzisiaj zamówiłem takie procesorki w kamami. Jak przyjdą zrobię płytkę i napiszę jak chodzą
  8. Wkleiłem link do obudowy HVQFN33 bo była najtańsza. Nigdy takich nie lutowałem - może ktoś ma z tym doświadczenie? Da się polutować "domowym" sposobem?
  9. Zobacz na stronie kamami. Np. http://kamami.pl/index.php?ukey=product&productID=136168
  10. Więc żeby bardziej zachęcić do czytania kursu - kurs będzie zgodnie z planem na LPC2114. Ale na koniec, podam przykład z LPC1114. Nie wiedziałem, że NXP zmienił obudowy na tak wygodne... W obudowach PLCC44 raster wynosi 1.27mm.
  11. 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
  12. 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
  13. Racja, HCI nie jest obsługiwane. Myślałem, że tryb master wystarczy. Mój błąd.
  14. 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.
  15. 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 zamieszcz
  16. 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ż
  17. 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.
  18. 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, dostarczon
  19. Elvis

    podział liczby binarnej

    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
  20. 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.
  21. Elvis

    CNY70 + LM324 trochę inaczej.

    Zamiast wzmacniacza operacyjnego pracującego jako komparator można po prostu dać komparator. Np. LM339 + podciąg.
  22. 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.
  23. 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.
  24. Elvis

    Dobór stabilizatora.

    Na stabilizator jest za mały spadek napięcia. Chyba że sam zrobisz stabilizator z rezystora i diody zenera.
  25. Elvis

    Dobór stabilizatora.

    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.
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.