Skocz do zawartości

Elvis

Użytkownicy
  • Zawartość

    2435
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    170

Wszystko napisane przez Elvis

  1. Jeśli port jest ustawiony jako wejście, to odczytujemy stan linii. Stan ten może być wymuszony, np. przełącznikiem lub innym układem. Jeśli zostawimy go w powietrzu to może być losowy - działa trochę jak antena. Celem autora, jak się domyślam, kursu było uczulenie, wszystkich na to, że niepodłączone wejścia nie muszą dawać odczytu 0. Jako ciekawostkę polecam napisać program, który będzie zapalał diodę, gdy odczyta 1 z niepodłączonego pinu, gasił gdy 0. Wtedy wystarczy dotknąć palcem procesor, aby zapalić diodę - ładunek z palca wystarczy aby zmienić stan linii. To bardzo typowy błąd - zostawić niepodłączone wejścia procesora i zakładać, że odczyty dadzą zero.
  2. źródło: http://pl.wikipedia.org/wiki/Silnik_pr%C4%85du_sta%C5%82ego
  3. Ok, racja, że można, a nawet najlepiej użyć serw. Te enkodery mnie zmyliły, po prostu bardzo ciężko jest enkoderem inkrementalnym wyliczyć położenie (problem pozycjonowania). Z drugiej strony enkodery absolutne są bardzo drogie. Natomiast w przypadku serwo (ograniczony kąt obrotu) o wiele łatwiej zastosować potencjometr.
  4. Jasne, że są różne. Tylko kto będzie przerabiał drogie, cyfrowe serwo. Jak chcesz zobaczyć budowę typowego serwo, tutaj jest fajny filmik: http://serwo.wtx.pl/index.php?dzial=dokumentacja
  5. Jaki enkoder? Może ja mam dziwne serwo, ale zamiast enkodera był zwykły potencjometr. Raczej nie utrzyma nic w miejscu.
  6. Ja nie byłbym taki pewien zalet silnika krokowego w robocie. Ma jak najbardziej sens, ale raczej tam gdzie chcemy precyzyjnie sterować ruchem, np. w manipulatorze. Do napędu to chyba nie najlepszy, a na pewno trudny pomysł. Z tym , to widać, że nie robiłeś nic na silnikach krokowych. Przy mikrokrokach rzeczywiście się, zlewa, ale przy pełno/półkrokowym sterowaniu szarpanie jest i to znaczne. Do tego pojawiają się ciekawe efekty, jak np. rezonanse.
  7. Tylko nie "im grubsza tym lepsza"!!! Jest dokładnie odwrotnie! Kupisz książkę, która ma 1000 stron, z tego połowa to anegdoty z życia autora. Niestety autorzy dostają więcej kasy, jeśli książka jest gruba, a przez to droga. Więc piszą straszne bzdury, byleby strony czymś zapełnić. Ja polecam "Język ANSI C" autorów Kernighan Brian W., Ritchie Dennis M. http://www.wnt.pl/product.php?action=0&prod_id=860&hot=1 Jest to książka o samym języku C, więc nie o gcc, nie o AVR, itd. Warto wiedzieć, że autorzy książki są przy okazji autorami języka C
  8. Dyskusje o wyższości jednego języka nad drugim to temat bez końca. Ja preferuję C z jednego powodu: w tym języku można pisać na właściwie wszystkie procesory. I to nie tylko mikrokontrolery, ale i programy na PC. Bascom jest na początek łatwiejszy, ale w C można pisać na ARM, AVR, PIC, '51, MSP430, i86. Ostatni argument za C jest taki, że kompilator Bascom prawdopodobnie napisany jest w C (lub C++, jak większość obecnie tworzonego oprogramowania).
  9. Co do języków programowania, to na ARM-y na pewno da się pisać w C++. Na ARM9 można uruchomić linux-a, a wtedy już pełna gama programów, nawet serwer www+php. Jednak raczej nie o to w mikrokontrolerach chodzi. Pierwsze pytanie jest trudniejsze. Teoretycznie wszystko co można zrobić na ARM-ie można też zrobić na AVR. ARM9 ma MMU i to jest istotna różnica. ARM7 i cortex raczej nie mają "czegoś", co by je istotnie różniło od AVR. Główna różnica to 32-bitowa architektura, większa pamięć i szybkość. Pamięć można podłączyć (zewnętrzną) i do AVR, programowo można działać na dłuższych danych niż 8-bitów. Więc jedyne w czym AVR niewątpliwie przegrywa to szybkość wykonywania programów. Gdyby porównywać mikrokontrolery do mikroprocesorów, to pytanie byłoby jak: co można zrobić na najnowszym Core Duo, a nie da się na 386. Jeśli zaczynasz przygodę z elektroniką, to AVR w zupełności wystarczą. Są łatwiejsze do nauki i tańsze. ARM to temat raczej dla bardziej zaawansowanych.
  10. Jak chodzi o książkę i płytkę, to rozdawali takie na szkoleniach ostatnio Książki jeszcze nie miałem czasu przeczytać, ale wydaje się bardzo ciekawa. Jest od podstaw, aż do uruchamiania FreeRTOS-a. Natomiast co do płytki, to nie wiem, czy to dobry wybór. Jest tania, ale na tym kończą się zalety. Za 150zł dostajesz 2 diody, joystick, łącze usb i procesor. To raczej niewiele, żeby nauczyć się jak procesor działa. Zostaje dołączyć coś własnego. I tutaj pojawia się problem - kto wymyślił taki kształt płytki(motylek) ??? Ja bym radził albo droższą płytkę ewaluacyjną (z większą liczbą układów na niej), albo tani układ, np. http://www.propox.com/products/t_174.html i samemu płytkę zrobić. Wszystko zależy na jakim jesteś poziomie z elektroniki. Ale płytka motylek to nieporozumienie.
  11. W największym skrócie, różnice między ARM7 i ARM9 są bardzo duże. ARM7 mają prędkości do ok. 70MHz, ARM9 - 150MHz. Poza tym ARM9 są bardziej mikroprocesorami niż mikrokontrolerami. Mają wbudowany układ MMU, pozwalają na uruchomienie na nich systemu operacyjnego (np. linux, windows ce). ARM7 są mniejsze, tańsze i pobierają mniej prądu. Służą raczej do budowy prostych urządzeń/sterowników. ARM7 można porównywać do AVR, natomiast ARM9 bardziej przypomina procesor np. Intel Pentium, niż mikrokontroler. Natomiast Cortex-M3, którego przykładem są układy STM32 to nowa wersja rdzenia armów. Pod wieloma względami jest to uproszczony ARM7, jednocześnie działający szybciej i z bardziej rozbudowanymi peryferiami. ARM9 to raczej nie jest procesor dla początkującego elektronika, radzę więc wybierać ARM7 lub Cortex-y. Parametry obu są dość podobne, jednak obecnie widać tendencję do tworzenia nowych mikrokontrolerów z rdzeniem cortex, więc prawdopodobnie w przyszłości będzie on popularniejszy niż ARM7.
  12. Rejestr nazywa się TCCR1B. Więc różnica to małe b, duże B, co dla kompilatora jest ważne. Ale chyba wszyscy wiedzą o co chodzi i problem nie dotyczy wielkości literki.
  13. Jeśli chcesz rozbudowywać robota, a nie wiesz jeszcze o co, to użyj większego procesora. Przykładowo Atmega16 w obudowie DIP40. Koszt niewiele wyższy, a będziesz miał zapas pinów.
  14. Ja używam VS2005, ale w express jest chyba tak samo. Tworzysz nowy projekt -> aplikację windows i pierwsze okienko masz od razu gotowe. Na początek powinno wystarczyć. Jak będziesz potrzebował kolejne, dodajesz formularz. Jak chodzi o programowanie portów, to komponent SerialPort powinien być dostępny w palecie. Dodajesz go do formularza standardowo i można rozpocząć działanie. [ Dodano: 11 Lis 09 11:00 ] W necie są tutoriale, wystarczy wpisać w google "c# serialport tutorial". Przykładowo to wygląda ciekawie: http://msmvps.com/blogs/coad/archive/2005/03/23/39466.aspx
  15. Okienka robi się najłatwiej w Visual Studio, tworzysz formularz i edytujesz myszką (jak w delphi, VB, itp). Co do portu szeregowego, to jest komponent SerialPort. Wystarczy umieścić na formularzu, skonfigurować i gotowe.
  16. Wygląda prawidłowo, może problem jest w innym miejscu programu?
  17. Jeśli wiesz jak, to nie ma różnicy w czym napiszesz program. Nie polecam tylko Javy, poza tym pełny wybór, C, C++, C#, Delphi, Visual Basic. Jak chodzi o Delphi to wybór o tyle słaby, że jest to już nieco archaiczne środowisko. Dawniej używałem C++ Buildera, ale są problemy z kompatybilnością (wersja 6 vs. Vista), więc pewnie z delphi też mogą być problemy. Jak chcesz łatwo zrobić aplikację okienkową to polecam C#.
  18. Możesz darować sobie dławik przy AVCC. Atmega8 ma błąd - AVCC jest wewnętrznie zwarte z VCC, więc dławik nic nie da.
  19. Masz błąd w instrukcjach: if(kod & 0x01) LCD_WriteText("1"); else LCD_WriteText("0"); Zamiast 0x01, 0x02, 0x03, 0x04, 0x05... powinno być 0x01, 0x02, 0x04, 0x08, 0x10, 0x20 itd.. Ogólnie sprawdzenie i-tego bitu (i liczone od 0) to test: if (kod & (1< Więc zamiast 16 razy pisać to samo można dać pętlę [ Dodano: 08 Lis 09 08:52 ] Do wyświetlania liczby proponuję kod: unsigned int mask; int i; .... mask = 0x8000; for (i=0;i<16;i++) { if (kod & mask) LCD_WriteText("1"); else LCD_WriteText("0"); mask >>=1; }
  20. Może warto zacząć od gotowego układu np. z avt? Na szybko znalazłem: http://sklep.avt.pl/p/pl/483064/analogowo-cyfrowy+analizator+widma+-+zestaw+do+samodzielnego+montazu.html Elektroniczna część jest bardzo prosta. Główny problem to program - trzeba policzyć transformatę Fouriera. Więc jest co robić Ale ogólnie układy akustyczne nie są łatwe, dlatego na początku dostałeś tyle złośliwych postów. Jeśli jesteś zupełnie początkującym to będzie ciężko, o wiele łatwiej zacząć od światłoluba. Jeśli chcesz spróbować sił i poznać problem, a na razie nie inwestować w elektronikę to proponuję zrobić analizator na PC. Czyli programik w C, który wczyta plik z dźwiękiem (np. w formacie .wav), policzy transformatę, wypisze rozkład częstotliwości składowych. Jak programik będzie działać, to reszta pójdzie z górki.
  21. Jeśli chcesz zrobić robota dźwiękowego, to proponuję najpierw zrobić analizator widma dźwięku. Później już będzie łatwo, możesz np. zrobić robota który tańczy, czy jeździ, gdy wykryje konkretny dźwięk.
  22. Do odczytu powinieneś używać PINB nie PORTB. Czyli w kodzie switch (PORTB) zmień na switch (PINB) [ Dodano: 02 Lis 09 06:33 ] Inna sprawa, że case 0: chyba jest niepoprawne (chyba że ma zwracać 1 jeśli nic nie naciśnięte). [ Dodano: 02 Lis 09 06:38 ] Nie wiem, jak zdefiniowane jest makro loop_until_bit_is_set(), ale chyba odczytuje ze złego rejestru. Nie chodzi o PORTB, ale UCSRA (nie wiem czy tak samo dla m128, sprawdzałem dla m8). Na początek wyrzuć wywołania loop_until_bit_is_set(), dodaj opóźnienia, powinno działać. Później dodaj oczekiwanie na koniec transmisji.
  23. C, kompilowany pod CrossStudio. Więcej informacji w artykule dostępnym tutaj: https://www.forbot.pl/forum/topics20/jak-rozpoczac-przygode-z-arm-ami-wersja-szybka-choc-droga-vt2258.htm
  24. Jeśli tak, to przepraszam, ale na tym forum jest tyle pytań od osób którym nie chce się samemu nic przeczytać. Na temat procesora najepiej przeczytać datasheet, tam jest wszystko: http://www.atmel.com/dyn/resources/prod_documents/doc2486.pdf Natomiast jeśli nie masz doświadczenia z procesorami to proponuję któryś z kursów C lub bascoma. Co do tej diody to chodziło mi o sterowanie diodą z procka, nie o przerzutnik bistabilny, bez urazy. [ Dodano: 28 Paź 09 12:20 ] Moja propozycja to zacznij od kursu C: http://www.kursc.forbot.pl/
×
×
  • Utwórz nowe...