Mikrokontrolery - Jak zacząć?
... czyli zbiór praktycznej wiedzy dot. mikrokontrolerów.
Strona główna
Spis treści
mST
Książki dla Ciebie
Praca dla Ciebie
Kalkulatory elektronika
CManiak
Forum
Moje konto
Nowe oferty
I'm back!
Pokazywanie postów oznaczonych etykietą Ciekawostki. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą Ciekawostki. Pokaż wszystkie posty
poniedziałek, 11 kwietnia 2011
Ciekawostki - Robot chwytający lecące piłki
Autor: Dondu
Bardzo ciekawa konstrukcja robota potrafiącego chwytać lecące równocześnie dwie piłki.
Ciekawe kiedy będzie żaglować :-) ?
Więcej: http://www.youtube.com/hizook
Oceń artykuł. Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły. Pozdrawiamy, Autorzy |
Oceń artykuł konkursowy |
|
środa, 30 marca 2011
Nieudokumentowane funkcje niektórych AVRów
1 kwietnia 2014r.
Autor: Dondu
Prowadząc z supportem Atmela korespondencję w zakresie problemów mikrokontrolera ATmega8 związanych z wewnętrznym zwarciem pinów Vcc i AVcc (występujęce w niektórych wersjach i partiach tego mikrokontrolera), dowiedziałem się bardzo ciekawej rzeczy.
Część mikrokontrolerów AVR w przypadku przetwornika ADC zawiera układ pozwalający na pomiary różnicowe oraz wzmacniacz sygnału. Przykładem takiego mikrokontrolera jest ATmega128:
Wybór trybu różnicowego i włączenia wzmacniacza odbywa się poprzez rejestr ADMUX w następujący sposób:
Zauważ, że zaznaczone kolorem zielonym ustawienia rejestru ADMUX rozpoczynają się od 01000 i kończą na 01111. Różnią się one od pozostałych ustawień wartością bitów MUX3 oraz MUX4.
Porównując to do ADMUX ATmega8:
oraz ATmega 88
zauważysz, że prawie w całości obszar ten jest zarezerwowany, ale bit MUX3 oczywiście osiągalny (możliwe jego ustawianie i zerowanie):
Informacje uzyskane z supportu Atmela były dość nieoczekiwane:
Dlaczego więc brak o nich informacji?
Support stwierdził, że są to błędy (niedopracowania) projektowe we wstępnych wersjach tych układów, powodujące nieprawidłowe działanie wzmacniacza, a konkretnie znaczne wykraczanie poza parametry. Błędy te pozostały na matrycach produkcyjnych do dziś! Na moje pytanie dlaczego lakonicznie stwierdzili, że było to także związane ze strategią marketingową Atmela.
Idąc tym tropem dokonałem testów posiadanych wersji ATmega8 i ATmega88.
Do pobrania
Poniżej do pobrania pliki HEX dla transmisji szeregowej przez RS-232:
Jak ustawić terminal Realterm, by odbierać dane znajdziesz w tym artykule: RS-232: Komunikacja ATmega8 z komputerem (Uwaga! Tam ustawiam baud na 57600, a tutaj wykorzystuję 9600 - reszta jest taka sama).
Pliki hex do pobrania (zajętość flash 3,4kB):
Schemat
Układ testowy podłączony według wersji 1.2.3 z tego artykułu: ADC - Dokładność vs podłączanie
Zasilanie 5V - istotne dla prawidłowych wyników!!!
Na wejściach ADC0-ADC3 podłączone potencjometry tworzące cztery dzielniki napięciowe, by móc badać różne napięcia i ich zależności, czyli podobnie jak to jest w tym artykule: ADC - Wstęp i uruchomienie tylko bez rezystora R5.
Wnioski
Jak zauważysz, w każdym z badanych mikrokontrolerów wzmocnienie 10x jest zawsze osiągalne i w mojej ocenie wystarczająco dokładne, by z powodzeniem je stosować. W przypadku wzmocnienia 200x jest znacznie gorzej i trudno opierać się na wynikach takich pomiarów.
Nic nie stoi jednak na przeszkodzie, by w projektach hobbystycznych ją wykorzystać :-)
Masz czas, przetestuj i daj znać o wynikach
Tradycyjnie już jak w poprzednim przypadku dot. pinów Vcc i AVcc, także i tym razem czekam na rezultaty Waszych pomiarów i wniosków, w formie komentarzy do niniejszego artykułu. Pamiętaj, by podać dokładne oznaczenia układu zarówno z górnej, jak i dolnej strony.
Autor: Dondu
Prowadząc z supportem Atmela korespondencję w zakresie problemów mikrokontrolera ATmega8 związanych z wewnętrznym zwarciem pinów Vcc i AVcc (występujęce w niektórych wersjach i partiach tego mikrokontrolera), dowiedziałem się bardzo ciekawej rzeczy.
Część mikrokontrolerów AVR w przypadku przetwornika ADC zawiera układ pozwalający na pomiary różnicowe oraz wzmacniacz sygnału. Przykładem takiego mikrokontrolera jest ATmega128:
Wybór trybu różnicowego i włączenia wzmacniacza odbywa się poprzez rejestr ADMUX w następujący sposób:
![]() |
ATmega128 |
Zauważ, że zaznaczone kolorem zielonym ustawienia rejestru ADMUX rozpoczynają się od 01000 i kończą na 01111. Różnią się one od pozostałych ustawień wartością bitów MUX3 oraz MUX4.
Porównując to do ADMUX ATmega8:
![]() |
ATmega8 |
oraz ATmega 88
![]() |
ATmega88 |
zauważysz, że prawie w całości obszar ten jest zarezerwowany, ale bit MUX3 oczywiście osiągalny (możliwe jego ustawianie i zerowanie):
Informacje uzyskane z supportu Atmela były dość nieoczekiwane:
Okazuje się, że w prawie każdej wersji mikrokontrolerów, w których w dokumentacji nie ma informacji o trybie różnicowym oraz o wzmacniaczu sygnału, faktycznie ten tryb i wzmacniacz występują.
Dlaczego więc brak o nich informacji?
Support stwierdził, że są to błędy (niedopracowania) projektowe we wstępnych wersjach tych układów, powodujące nieprawidłowe działanie wzmacniacza, a konkretnie znaczne wykraczanie poza parametry. Błędy te pozostały na matrycach produkcyjnych do dziś! Na moje pytanie dlaczego lakonicznie stwierdzili, że było to także związane ze strategią marketingową Atmela.
Idąc tym tropem dokonałem testów posiadanych wersji ATmega8 i ATmega88.
ATmega8-16PI, 0503I, od spodu: 4L1820, 355POI, 4-P0503; obudowa: DIP
To najstarsza ATmega w moich zbiorach. |
|||
---|---|---|---|
MUX3:0 | Kanał lub różnicowe | Wzmocnienie | Rezultat |
1000 | ADC0 | 10x | Poprawnie |
1001 | ADC1-ADC0 | 10x | Poprawnie |
1010 | ADC0 | 200x | Brak reakcji na wzmocnienie |
1011 | ADC1-ADC0 | 200x | j.w. |
1100 | ADC2 | 10x | Poprawnie |
1101 | ADC3-ADC2 | 10x | Poprawnie |
ATmega8A-PU, 1136, od spodu: H6L732-2, 354VAN, 6-P1136, e3; obudowa: DIP | |||
---|---|---|---|
MUX3:0 | Kanał lub różnicowe | Wzmocnienie | Rezultat |
1000 | ADC0 | 10x | Poprawnie |
1001 | ADC1-ADC0 | 10x | Poprawnie |
1010 | ADC0 | 200x | Pomiary kompletnie z kosmosu |
1011 | ADC1-ADC0 | 200x | j.w. |
1100 | ADC2 | 10x | Poprawnie |
1101 | ADC3-ADC2 | 10x | Poprawnie |
ATmega8A-AU, 1116, od spodu: H6L099.06, 354VAN, 3-P, 1116, e3 obudowa: TQFP | |||
---|---|---|---|
MUX3:0 | Kanał lub różnicowe | Wzmocnienie | Rezultat |
1000 | ADC0 | 10x | Poprawnie |
1001 | ADC1-ADC0 | 10x | Poprawnie |
1010 | ADC0 | 200x | Pomiary kompletnie z kosmosu. |
1011 | ADC1-ADC0 | 200x | j.w. |
1100 | ADC2 | 10x | Poprawnie |
1101 | ADC3-ADC2 | 10x | Poprawnie |
ATmega88-PU, 1028; od spodu: G5K112, 27HON, 3-S1028, a0; obudowa: DIP | |||
---|---|---|---|
MUX3:0 | Kanał lub różnicowe | Wzmocnienie | Rezultat |
1000 | ADC0 | 10x | Poprawnie |
1001 | ADC1-ADC0 | 10x | Poprawnie |
1010 | ADC0 | 200x | Całkiem nieźle poniżej 0,1V, ale wyżej to tragedia |
1011 | ADC1-ADC0 | 200x | j.w. |
1100 | ADC2 | 10x | Poprawnie |
1101 | ADC3-ADC2 | 10x | Poprawnie |
Do pobrania
Poniżej do pobrania pliki HEX dla transmisji szeregowej przez RS-232:
- F_CPU 1MHz
- baud 9600
- bez parzystości
- jeden bit stopu
Jak ustawić terminal Realterm, by odbierać dane znajdziesz w tym artykule: RS-232: Komunikacja ATmega8 z komputerem (Uwaga! Tam ustawiam baud na 57600, a tutaj wykorzystuję 9600 - reszta jest taka sama).
Pliki hex do pobrania (zajętość flash 3,4kB):
Schemat
Układ testowy podłączony według wersji 1.2.3 z tego artykułu: ADC - Dokładność vs podłączanie
Zasilanie 5V - istotne dla prawidłowych wyników!!!
Na wejściach ADC0-ADC3 podłączone potencjometry tworzące cztery dzielniki napięciowe, by móc badać różne napięcia i ich zależności, czyli podobnie jak to jest w tym artykule: ADC - Wstęp i uruchomienie tylko bez rezystora R5.
Wnioski
Jak zauważysz, w każdym z badanych mikrokontrolerów wzmocnienie 10x jest zawsze osiągalne i w mojej ocenie wystarczająco dokładne, by z powodzeniem je stosować. W przypadku wzmocnienia 200x jest znacznie gorzej i trudno opierać się na wynikach takich pomiarów.
Ponieważ jest to nieudokumentowana funkcjonalność niektórych mikrokontrolerów AVR, stąd też oczywiście nie powinno się jej wykorzystywać w projektach komercyjnych.
Nic nie stoi jednak na przeszkodzie, by w projektach hobbystycznych ją wykorzystać :-)
Masz czas, przetestuj i daj znać o wynikach
Tradycyjnie już jak w poprzednim przypadku dot. pinów Vcc i AVcc, także i tym razem czekam na rezultaty Waszych pomiarów i wniosków, w formie komentarzy do niniejszego artykułu. Pamiętaj, by podać dokładne oznaczenia układu zarówno z górnej, jak i dolnej strony.
![]() |
Rezultat pracy programów 1 kwietnia 2014r. |
Oceń artykuł. Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły. Pozdrawiamy, Autorzy |
Oceń artykuł konkursowy |
|
poniedziałek, 28 marca 2011
RoboMind: Programowanie wirtualnego robota
Autor: Dondu
Nie masz możliwości zbudowania własnego robota? Nic straconego - możesz programować wirtualną wersję.
Ogłaszamy zawody - zabawę na wykonanie zadania wirtualnym robotem, za pomocą napisanego przez uczestnika programu w bardzo przyjaznym i prostym języku, w dodatku po polsku (!), jeśli nie znasz angielskiego.
To świetna zabawa dla wszystkich niezależnie od wieku! :-)
Program w wersji darmowej można pobrać na stronie producenta: RoboMind - Download
Zadanie do wykonania
Zadanie polega na:
- przeniesieniu zielonego przedmiotu z punktu A do punktu B,
- zamalowaniu białym kolorem szarej trasy,
- zatrzymaniu robota po wykonaniu zadania.
Ograniczenia:
- robot może poruszać się tylko i wyłącznie po białej i szarej trasie (w programie zwanej czarną),
- robot sam musi podejmować decyzje.
Arena zawodów
Poniżej do pobrania plik z areną zawodów, która wygląda następująco:
Plik do pobrania: RoboMind-Arena.map
Plik należy otworzyć za pomocą menu:
i już możesz pisać program.
Uruchomienie programu i zmiana prędkości
W dolnej części ekrany znajdziesz przycisk uruchomienia programu oraz suwak do zmiany prędkości jego realizacji:
Przykładowe plansze i programy
Znajdziesz je w menu plików:
Opis języka i inne pomocne informacje
W programie w menu Pomoc znajdziesz linki do strony z dokumentacją programu.
Bezpośrednie linki zamieszczam także tutaj:
Pomocnik dot. poprawnej składni języka znajdziesz w menu Edycja:
Zawody
Aby wprowadzić element rywalizacji przygotowaliśmy podium, na którym staną zwycięzcy :-)
Aby wziąć udział w zawodach, należy napisać program zgodnie z wytycznymi (powyżej i poniżej) i przesłać go na adres email podany na końcu niniejszego artykułu.
Wyniki zawodów oraz programy zawodników
znajdziesz tutaj
Termin nadsyłania programów
Ostatecznym terminem jest niedziela 29 września 2013 r. godz. 16:00.
Adres podany jest poniżej.
Kryteria oceny
Oceniane są według kolejności:
- poprawne wykonanie zadania,
- samodzielność programu w podejmowaniu decyzji na podstawie obserwacji otoczenia przez robota,
- najkrótszy program,
- używanie procedur (funkcji),
- "poprawność programistyczna".
Innymi słowy, niedopuszczalne jest zastosowanie z góry określonego na podstawie widoku trasy algorytmu na przykład:
- jedź do przodu o 5 pól,
- obróć się w lewo,
- jedź do przodu 7 pól,
- obróć się w prawo
- jedź do przodu 3 pola,
- itd.
Robot ma sam podejmować decyzje! :-)
Pytania, pomoc, itp.
Jeżeli masz problem lub nie jesteś czegoś pewien, zadaj pytanie w wątku: Ucz się programować wirtualnego robota RoboMind
Adres do wysyłki materiałów
Opracowany program prosimy przesyłać na poniższy adres:
Opracowany program prosimy przesyłać na poniższy adres:
- Gdyby adres był nieczytelny to podpowiem, że składa się z liczby mnogiej słowa mikrokontroler, kropki i mojego nicku, a domena to: gmail.com.
- Po dotarciu maila na wyżej podane konto, automatycznie otrzymasz mailem informację o tym.
Oceń artykuł. Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły. Pozdrawiamy, Autorzy |
Oceń artykuł konkursowy |
|
sobota, 12 marca 2011
Ciekawostka: Circuit Scribe ... czyli jak zarobić kupę kasy :-)
Autor: Dondu
Pisak + magnesy + kartka papieru i ... układ elektroniczny działa :-)
Ciekawostka do wykorzystania dla wszystkich, którzy chcą zainteresować elektroniką młodsze pokolenie:
Tego typu pisaki znane są już od wielu lat, ale jak się produkt ulepszy:
i opracuje nowe pomysły jego wykorzystania poprzez Plug & Play:
to okazuje się, że jest strzałem w 10-tkę. :-)
Dodatkowo wykorzysta KICKSTARTER ... i 0,5 mln $ już jest (stan na 12 grudnia 2013r.):
A może dodajmy do tego mikrokontroler (tutaj Arduino):
Do dzieła Panie i Panowie - "pieniądze, leżą na ulicy" :-)
Oceń artykuł. Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły. Pozdrawiamy, Autorzy |
Oceń artykuł konkursowy |
|
Pierwsze lądowanie drona na lotniskowcu.
Autor: Dondu
12 lipca 2013r.
Przedwczoraj nastąpiło pierwsze historyczne lądowanie drona X-47B na lotniskowcu USS George H.W. Bush. Dla dowództwa floty amerykańskiej to cyt: " ... krok milowy w lotnictwie morskim ...", i takim faktycznie jest.
The government engineering and testing team in partnership with our Northrop Grumman team members have matured the technologies in this X-47B system to position us for today's event, which marks a milestone in naval aviation.
Ciekawe, czy i ile w takim dronie jest mikrokontrolerów? :-)
Szczegóły na:
Oceń artykuł. Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły. Pozdrawiamy, Autorzy |
Oceń artykuł konkursowy |
|
piątek, 11 marca 2011
Inteligentne lusterka motocyklowe
Wszyscy motocykliści no może z wyjątkiem Harleyowców :-) wiedzą jakim problemem są lusterka boczne, które jedni ustawiają do pozycji siedzącej inni do pozycji prawie leżącej.
Ci którzy jak autor poniższego filmu ustawiają je do jazdy przy wyprostowanej sylwetce zakładają, że przy szybkiej jeździe lusterko jest im niepotrzebne i ... jak autor o mało nie spotykają się z kostuchą w młodym wieku.
Ale tutaj mamy niespodziankę - młodego (19-lat) polskiego entuzjastę motocykli, który wyciągnął właściwe wnioski ze zdarzenia i wykorzystując swoje umiejętności, w tym programowania mikrokontrolerów i elektroniki stworzył prototyp inteligentnych lusterek.
I jeszcze na tym kupę kasy zarobi, czego mu serdecznie życzymy, bo wynalazek wpłynie (mamy nadzieję) na poprawę bezpieczeństwa na drogach.
Bardzo fajną ścieżkę finansowania i wdrożenia tego produktu obrał Bartosz - warto obejrzeć pierwszy materiał na stronie źródłowej TVN
Strona projektu: smart-mirrors.com
Trzymamy kciuki!
:-)
Oceń artykuł. Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły. Pozdrawiamy, Autorzy |
Oceń artykuł konkursowy |
|
Robot pastuch zagania krowy
Autor: Dondu
Kolejny zawód na wymarciu - tym razem pastuch :-)
Autonomiczny, odporny na warunki atmosferyczne, ... nigdy nie strajkujący pastuch elektroniczny. Testowany na grupie do 150 krów.
Ciekawe, czy potrafi omijać "miny" pozostawiane przez obiekty jego pracy? :-)
Wraz z pojawieniem się na polach pewnie narodzi się nowa dziedzina - Robonaping (analogia do kidnaping), bo pewnie sporo kosztować będzie.
Autonomiczny, odporny na warunki atmosferyczne, ... nigdy nie strajkujący pastuch elektroniczny. Testowany na grupie do 150 krów.
Ciekawe, czy potrafi omijać "miny" pozostawiane przez obiekty jego pracy? :-)
Wraz z pojawieniem się na polach pewnie narodzi się nowa dziedzina - Robonaping (analogia do kidnaping), bo pewnie sporo kosztować będzie.
Oceń artykuł. Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły. Pozdrawiamy, Autorzy |
Oceń artykuł konkursowy |
|
czwartek, 10 marca 2011
Komputery początku XXI wieku - prognoza z 1987r.
Autor: Dondu
Ciekawostka wygrzebana w sieci:
Jak w 1987 roku czytelnicy Horyzontów Techniki, widzieli komputery początku XXI wieku :-)
Część z tych opinii jest trafiona, część jeszcze się nie spełniła, a część realizują nasze mikrokontrolery :-)
Punkt 11 nie prędko się ziści, jak sądzicie?
Oceń artykuł. Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły. Pozdrawiamy, Autorzy |
Oceń artykuł konkursowy |
|
czwartek, 24 lutego 2011
CAN hacking - przejmowanie kontroli nad samochodem
Autor: Dondu
Wsiadasz do swojego auta, jedziesz i nagle ... brak hamulców, kierownica sama skręca, przyrządy wariują ... a w głowie pytanie:
Samoświadomość:
Czy wjechałem w Trójkąt Bermudzki?
Czy wjechałem w Trójkąt Bermudzki?
Nie! To CAN hacking, czyli ktoś dobrał się do elektroniki Twojego samochodu i przejął nad nim kontrolę za pomocą:
... który już za kilkanaście dolarów można kupić :-)
Podłączamy się ukradkiem pod złącze CAN w samochodzie ofiary,a później przez bluetooth robimy kawały kierowcy.
Kawały?! Nie, to realne zagrożenie życia!!!
Najgorsze jest to, że elektronika samochodów nie jest w ogóle zabezpieczana pod kątem tego typu przejmowania kontroli nad samochodem. Producenci zapewne już pracują nad tym, ale to jak zwykle o jeden krok za późno.
Możliwości są nieograniczone:
... a naturalnym odruchem jest chęć wyskoczenia przez okno z auta, nad którym nie ma się kontroli.
Skutki odpalenia poduszek (ten system to potrafi) w trakcie jazdy mogą być śmiertelne, podobnie jak podczas mijania samochodu ciężarowego celowe skręcenie kierownicy w celu doprowadzenia do zderzenia czołowego.
Projekt CHT (CAN Hacking Tool) ma na celu pokazanie i zmuszenie producentów samochodów, do zadbania o ten newralgiczny punkt ... tylko, czy to w ogóle jest możliwe?
Zapewne za niedługo pojawią się klucze i blokady do zamykania gniazd CAN ... koszmar :(
![]() |
Przykład sieci CAN w samochodzie. |
Oceń artykuł. Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły. Pozdrawiamy, Autorzy |
Oceń artykuł konkursowy |
|
poniedziałek, 31 stycznia 2011
PCB i wiek XIX ... czyli półprzemysłowy sposób wykonania.
Autor: Dondu
Jak wykonać półprzemysłowo płytkę PCB w warsztacie rodem z XIX wieku w ... Kolumbii?
Dokładnie pokazany proces łącznie z soldermaską i warstwą opisową. Ale w Unii Europejskiej takie podejście do ekologii by nie przeszło :-)
Szczegóły: Circuitos impresos elaborados con la técnica de serigrafía (j. hiszpański)
Oceń artykuł. Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły. Pozdrawiamy, Autorzy |
Oceń artykuł konkursowy |
|
Subskrybuj:
Posty (Atom)
Działy
Działy dodatkowe
Inne
O blogu

--> za darmo!!! <--
1. USBasp
2. microBOARD M8
--> i wygraj nagrodę. <--
Co nowego na blogu?
Śledź naszego Facebook-a
Co nowego na blogu?
Śledź nas na Google+
/* 20140911 Wyłączona prawa kolumna */
Nie czekaj do ostatniego dnia!
Jakość opisu projektu także jest istotna (pkt 9.2 regulaminu).
Sponsorzy:

-
00
dni
-
00
godzin
- :
-
00
minut
- :
-
00
sekund
Jakość opisu projektu także jest istotna (pkt 9.2 regulaminu).
Sponsorzy:


