piątek, 30 listopada 2012

Płytki wtykowe do płytki stykowej - ATmega8/8A/48/88/168/328

W życiu każdego konstruktora, który zajmuje się mikrokontrolerami, nadchodzi taki moment, w którym mówi:
Tak było również ze mną.Wcześniej używałem płytki stykowej, w którą bezpośrednio wtykałem scalaki. Miało to jednak pewne wady - za każdym razem, gdy chciałem przetestować program na np. ATmega musiałem podłączyć milion pierdółek i kabelków, niezbędnych do tego, żeby ATmega w ogóle wystartowała.
Powstały więc dwie płytki-adapterki, które baaardzo ułatwiają życie. Pierwsza z ATmega8 i druga z ATtiny13, obie zawierają elementy niezbędne do uruchomienia i zaprogramowania procesora oraz pozwalające się wetknąć do płytki stykowej.

 

Schemat

Oto schemat płytki przeznaczonej dla ATmega8/8A oraz ATmega48/88/168/328:
  

Jak widać na schemacie płytka zawiera wszystkie elementy, które są potrzebne do uruchomienia i zaprogramowania procesora. Jest też, filtracja zasilania, dodatkowa filtracja dla przetwornika analogowo-cyfrowego, kwarc, gniazdo programatora, sygnalizację poprawnego zasilania, przycisk reset oraz wyprowadzenie wolnych pinów. Niestety kwarc nie ma kondensatorów - nie starczyło miejsca na płytce. W związku z tym przy programowaniu należy pamiętać o ustawieniu fusebita odpowiedzialnego za dołączenie wewnętrznych kondensatorów.

 

Płytka

Płytka jest dosyć mocno upakowana, zawiera dużo elementów na małej przestrzeni. Dla oszczędności miejsca, czasu i wierteł część elementów jest w obudowach SMD. Są to wszystkie rezystory i kondensatory. 
Trzeba przyznać, że ta płytka jest trudna do wykonania w domowych warunkach przede wszystkim ze względu na cienkie ścieżki prowadzące do gniazda programatora. Jednak, kiedy już ją wytrawimy i zlutujemy do kupy naprawdę przyspiesza projektowanie prototypów na płytce stykowej.

 

Adapterek w akcji

Poniżej zamieszczam kilka zdjęć z płytką adapterka na żywo:


W kolejnej części płytka ATtiny13/13A/25.
Pobierz schemat i płytkę (Eagle): KLIK
Dwa zdania w kwestii licencji na te pliki (jak to głupio brzmi!). Źródła są darmowe dla zastosować hobbystycznych lub osobistych (produkcja pojedynczych sztuk), jedynie chciałbym żeby osoby, które zbudują taką płytkę pochwaliły się nią na użytek innych. Może to być wpis na swoim blogu, na jakimś forum lub zdjęcia wysłane do mnie. Piszcie na maila:

wieloiksiasty małpa gie mail kropka kom

Gdyby ktoś chciał sprzedawać sprzęt wg. mojego projektu masowo (taaa, na pewno by  ktoś chciał to sprzedawać) również proszę o kontakt. Brrrr, zamieniam się w korporację...

czwartek, 22 listopada 2012

Makefail: undefined reference to `main'

Zainstalowałem Eclipse według tego poradnika: KLIK. Następnie postanowiłem sprawdzić, czy wszystko działa tak jak powinno, tworząc nowy projekt według tego poradnika: KLIK. Jak zwykle coś nie chciało działać. Tym razem ujrzałem piękny komunikat:
../crt1/gcrt1.S:195: undefined reference to `main'
Hmm... Linker zdaje się sugerować, że nie może znaleźć funkcji `main', do której odwołuje się jakiś tam kawałek kodu inicjalizacyjnego. Ale przecież widzę jak na dłoni, ślepy jeszcze nie jestem, przede mną na ekranie jawi się funkcja `main'.

Przekopałem cały internet i wszystko inne. Co ciekawe, ten problem pojawiał się już na forach, ale nikt nie podał jednoznacznego konkretnego rozwiązania tego dziwacznego błędu. Cóż, musiałem poradzić sobie samodzielnie.

Rozwiązanie

Osoby o słabszych nerwach proszone są o nieczytanie ciągu dalszego. Inne, które już zdążyły zapytać kolegę o przyczynę, powinny jak najszybciej zmienić numer telefonu i wyprowadzić się jak najdalej. Uwaga!!! Teraz:

Naciskamy Ctrl+S i sprawdzamy czy działa. Działa?

sobota, 10 listopada 2012

Wacom Bamboo i Linux Mint 13

Gdy po raz pierwszy podłączyłem mój tablet do komputera z Mintem na pokładzie spotkał mnie wielki zawód... przeogromny, przeogromniasty. Mój ulubiony sprzęt do projektowania PCB w Eaglu nie działa? Tak być nie może!

Na szczęście rozwiązanie mojego problemu okazało się być całkiem łatwe. Po prostu brakowało oprogramowania do obsługi tego modelu (Wacom Bamboo CTH-470). Najdziwniejsze jest w tym to, że na wcześniejszych wersjach Ubuntu (Mint to w zasadzie nic innego jak Ubuntu z małymi zmianami) tablet działał od razu i bez żadnego problemu.

Okazuje się, że aby zmusić sprzęt do współpracy należy w terminalu wydać (tylko/aż) trzy komendy:
sudo apt-add-repository ppa:lekensteyn/wacom-tablet
sudo apt-get update
sudo apt-get install wacom-dkms xserver-xorg-input-wacom
Po restarcie wszystko powinno działać.

piątek, 9 listopada 2012

Eliminacja drgań styków - część II

Część pierwsza: KLIK 

Sposoby eliminacji drgań styków




Drganiom styków można zaradzić na dwa sposoby:
  • Sprzętowo – za pomocą filtru RC (rysunek 3) lub wykorzystując specjalny układ scalony np. MAX6816, MAX6817 czy MAX6818. Wady tej metody to koszty części niezbędnych do realizacji wybranego sposobu, słaba dostępność wyspecjalizowanych układów scalonych oraz zajęcie cennego miejsca na płytce drukowanej. Przy eliminacji drgań (ang. debouncing) jednego przycisku te wady wydają się nie mieć znaczenia, jednak kiedy musimy obsłużyć jednocześnie kilka i więcej przycisków warto zwrócić na nie uwagę. Na rysunku 4 widać efekt działania filtru RC.
Rysunek 3 – filtr RC.
Źródło: http://konto.bydgoszcz.wsinf.edu.pl
Rysunek 4 - Drgania przefiltrowane przez filtr RC.
Źródło: Opracowanie we współpracy autora i Przemek6
  • Programowo – ten sposób nie wymaga żadnych dodatkowych elementów na płytce. Jego wady to pewne zapotrzebowanie na czas procesora oraz zajęcie części pamięci programu, która w małych mikrokontrolerach AVR (lub podobnych) jest zazwyczaj bardzo ograniczona. Programową eliminację drgań styków najłatwiej zrealizować przez wstrzymanie się z kolejnym odczytem stanu przycisku, dopóki nie ustaną drgania. Tą metodę przedstawia przykładowy kod na rysunku 5. Ma ona dużą wadę - przed każdym odczytem procesor bezczynnie czeka przez pewien czas (na przykładzie aż 20 ms). Dla procesora to bardzo długo. Przez ten czas procesor mógłby dalej wykonywać pozostałą część programu. Ten sposób również nie gwarantuje pełnej skuteczności.
Rysunek 5 – najprostsza programowa eliminacja drgań styków.
Źródło: Opracowanie własne

czwartek, 1 listopada 2012

Eliminacja drgań styków - część I

Jakiś czas temu brałem udział w konkursie dla młodocianych wynalazców. Powstał wtedy projekt o drganiach styków. Konkurs się skończył, a ja zostałem z gotową pracą, która nie była mi do niczego potrzebna. Dlatego postanowiłem ją opublikować - oto jej pierwsza część.

Drgania styków

Drgania styków to wynik niedoskonałości elementów stykowych. Każdy przycisk, przełącznik, kontaktron lub enkoder zawiera w sobie styki, które mają tendencję do drgania podczas zwierania i rozwierania. Zjawisko to wynika całkowicie z niedoskonałości mechanicznej konstrukcji elementów stykowych i trwa od kilku do kilkunastu milisekund przy każdorazowym zwarciu lub rozwarciu.

Rysunek 1 - parametr bounce time oznaczający przeciętną długość drgań styków.
Nota katalogowa B3F Tactile Switch firmy Omron
Źródło: tme.eu

Producenci czasami podają w notach katalogowych (rysunek 1) swoich produktów parametr bounce time. Oznacza on przeciętną długość drgań w danym modelu przycisku.

Drgania styków dają się we znaki przede wszystkim przy budowie urządzeń cyfrowych, w których przycisk pełni rolę wyzwalacza pewnych operacji lub służy  jako interface użytkownika. Brak skutecznej eliminacji drgań powoduje pewne anomalie. Dzieje się tak, ponieważ drgania, mimo, że zbyt krótkie, aby zobaczyć je gołym okiem, są przez mikrokontroler odbierane jako wielokrotne, następujące szybko po sobie naciśnięcia przycisku. Ilość takich zmian stanu jest nieprzewidywalna i często powoduje duże zamieszanie. Rysunek 2 pokazuje drgania styków w przykładowym przycisku. Widać na nim, że do ustabilizowania się wykresu potrzeba  około 2 ms.

Rysunek 2 - drgania styków widoczne na cyfrowym oscyloskopie.
Źródło: Opracowanie we współpracy autora i Przemek6

Nierozwiązanie problemu powoduje, że:
  • nastawiane liczby przeskakują losowo;
  • menu przeskakuje o kilka pozycji naraz;
  • sygnały wysyłane przez enkoder są błędnie interpretowanie przez procesor;
  • operacje są wyzwalane wielokrotnie, co może doprowadzić nawet do przepełnienia stosu i poważnych błędów w programie.
Jeśli chcemy uniknąć tych przykrych konsekwencji powinniśmy zadbać o prawidłową eliminację efektu drgających styków. W następnych częściach:
  • sprzętowa eliminacja drgań;
  • programowa eliminacja drgań;
  • gotowy algorytm eliminacji drgań w tle wraz z obszernym opisem.
Część druga: KLIK

sobota, 27 października 2012

Komplementarnie stary laptop: podejście pierwsze - Windows XP

Najbanalniejszym wyborem systemu operacyjnego do mojego komplementarnie starego laptopa od razu wydał mi się Windows XP. Tym bardziej, że razem z laptopem dostałem licencję na ten system. XP jest sprawdzony, stabilny i lekki - w końcu powstał już ponad 10 lat temu, a mimo to nadal jest powszechnie używany. Niestety jest też przestarzały i nie ma pełnego wsparcia. Zostały mu już "tylko aktualizacje bezpieczeństwa".
Poprzednia część:  Komplementarnie stary laptop

XP w natarciu

Żeby nie było, że poszedłem na łatwiznę przed zainstalowaniem poznęcałem się nad instalką systemu za pomocą nLite - to taki ciekawy program, który służy do edycji płyty instalacyjnej Windowsa. Z jego pomocą można znacznie odchudzić system, na przykład usuwając zbędne programy typu Internet Explorer lub wstępnie skonfigurować system, dodać Servis Pack, a nawet całkowicie zautomatyzować proces instalacji. Po szczegóły odsyłam do tutoriali, np. tu klik.

Instalacja systemu jest bezproblemowa i nie wymaga żadnych specjalnych umiejętności. Czas trwania całego procesu - od włożenia płyty do napędu do zakończenia - to mniej więcej 1 godzina. Potem należy jeszcze zainstalować aktualizacje oraz sterowniki, ponieważ czysty XP nie radzi sobie nawet z płynnym przesuwaniem okiem po ekranie - potrzebuje do tego sterowników grafiki. To trwa już o wiele dłużej, dokładny czas zależy od daty wydania płyty instalacyjnej i posiadanego sprzętu. Niestety tutaj system Microsoftu nie jest zbyt przyjazny i wszystko trzeba zrobić samemu.

XP w akcji

Po instalacji odchudzony system z Service Packiem 3 i podstawowymi sterownikami zajmował 2,5 GB miejsca na dysku (razem z plikiem wymiany) i ok. 100 MB RAM. Ten system jest na tyle lekki, że działa płynnie nawet przy 256MB RAMu.Wszystkie operacje na plikach, konfiguracja i aktualizacje przebiegły bez żadnych problemów. Problem pojawił się przy próbie zrobienia czegoś więcej niż to co potrafi czysty XP. Próba oglądania filmu przy takiej ilości RAMu to czysty masochizm, trochę jak połączenie porysowanej płyty i kiepskiego odtwarzacza DVD. Podobnie sprawa ma się, gdy próbujemy przeglądać internet. Odpalenie WiFi oraz Google Chrome pozwala na w miarę wygodne używanie komputera, do czasu wejścia na wymagającą stronę (np. dobreprogramy.pl) lub otwarcia drugiej karty. Wtedy można już organizować konkurs cierpliwości pt. "kto pierwszy rzuci laptopem o ścianę". Krótko mówiąc perspektywa długoterminowego używania Windows XP z 256 MB RAMu, nie przypomina niczego, poza chorym snem twórcy psychodelicznych filmów animowanych dla psychopatycznych dzieci.

Sprawa zupełnie zmienia się po dołożeniu pamięci. 1 GB RAMu jest już zupełnie wystarczający do oglądania filmów, czy przeglądania internetu. Również Libre Office staje się zdatny do użytku, a Dropbox działający w tle przestaje zamrażać system przy próbie synchronizacji plików. Generalnie da się wtedy używać komputera do prac biurowych. Bardziej zdesperowani mogą próbować bawić się w edycję zdjęć lub montaż filmów, lecz tylko za pomocą prostych programów - na więcej nie pozwoli procesor. Na takim sprzęcie działają również starsze gry. Bez żadnego problemu można odpalić Need For Speed Underground, Trains and Trucks Tycoon lub The Elder Scrolls III Morrowind. Możliwości mojego komputera najbardziej ogranicza zintegrowana karta graficzna, ale jeśli ktoś ma laptopa z lepszą kartą może śmiało instalować nowsze produkcje. Absolutnym szczytem możliwości mojego laptopa jest NFS Most Wanted - działa, niestety tylko na  absolutnie minimalnych ustawieniach.

XP po liftingu

Jeśli już zdecydujemy się na używanie Windows XP, możemy spróbować odświeżyć trochę jego wygląd. Oto co udało mi się zrobić z systemem w pół godziny:
Po liftingu Windows XP nabiera uroku

Podsumowanie

Windows XP to stary i nierozwijany już system operacyjny. W zamian za to dostajemy wyjątkową lekkość i stabilność. Niestety ten system nie ma wielu ulepszeń do jakich przyzwyczaiły nas nowoczesne dystrybucje Linuxa i Windows 7 - nie ma wielu pulpitów, ani podglądu zawartości okien.

Zalety i wady takiego rozwiązania można wymieniać jeszcze długo. Według mnie Windows XP jest jedynym słusznym rozwiązaniem dla osób, które chcą uzdatnić stary komputer do pracy biurowej. W następnym odcinku spróbujemy zainstalować na starym komputerze Linuxa (nie, nie powiem jakiego - sam jeszcze nie wiem :-) ).

sobota, 13 października 2012

Gdy isolinux nie działa

Ostatnio odkryłem, że isolinux nie działa na moim komputerze. Problem był poważny - prawie żadne LiveCD nie chciało działać. Rozwiązaniem problemu okazał się GRUB, który niestety nie był zainstalowany. W ostateczności poratowałem się bardzo fajnym wynalazkiem jakim jest SuperGRUB.


GRUB w akcji

Aby uruchomić Ubuntu 12.04 z pendrive, musiałem zrobić trzy rzeczy:
  1. Załadować kernel linuxa, czyli plik vmlinuz.
  2. Załadować inicjalizacyjny system plików, czyli inird.img.
  3. Zabootować system.
Wykonanie tego zadanie okazało się proste, choć zdobycie "know how" nie było wcale takie łatwe. Jak się okazało całość sprowadza się do czterech komend. Pierwszą z nich jest:
set root=hd1
Służy ona do wybrania głównej partycji. Jeśli np. nasz pendrive to drugi dysk, będzie on widziany jako hd1, jeśli trzeci to hd2 itd. Kolejne polecenie to:
linux /casper/vmlinuz boot=casper quiet splash
Tak wygląda komenda linux dla Ubuntu. Ładuje ona kernel z podanej dalej ścieżki i dba o to, żeby przy bootowaniu zostały przekazane odpowiedznie argumenty. Listę argumentów znalazłem w pliku isolinux.cfg, który znajduje się w pliki .iso z Ubuntu. Przedostatnią komendą jest:
initrd /casper/initrd.lz
Służy ona do załadowania inicjalizacyjnego ramdysku z podanej lokalizacji. A teraz:
boot
I już system powinien wystartować bez żadnego problemu. Jeśli nie oznacza to najprawdopodobniej źle wpisane argumenty.

sobota, 29 września 2012

Komplementarnie stary laptop

Dostałem ostatnio całkiem sprawnego laptopa (hardware'owo). Ten komputer to ośmioletnia już Toshiba M40, a dokładnie model Toshiba Satellite M40-294. Ten stary sprzęt jest dość zgrabny i ma nieprawdopodobnie wygodną klawiaturę. Od strony specyfikacji technicznej jest niestety o wiele gorzej. 


UWAGA - nędzny fotomontaż

W środku siedzi:
  • CPU: Intel Celeron M 380 - 1,6 GHz; 1024 KB cache; FSB 400 MHz;
  • RAM: Hynix 256MB DDR2 533 MHz;
  • Grafika: ATi Radeon Xpress 200
  • HDD: 40GB PATA.
Pełną specyfikację można zobaczyć tu.

Pierwszą rzeczą jaką zrobiłem po dostaniu w ręce tego laptopa to zainstalowanie kilku systemów operacyjnych, ale wszystkie działały tak beznadziejnie, że postanowiłem zainwestować w dodatkowy RAM. Teraz komputer ma 1 GB pamięci operacyjnej, a system operacyjny znacznie ułatwione zadanie.

W kolejnych wpisach postaram się dobrać odpowiedni dla tak starego laptopa system operacyjny i zestaw oprogramowania. Specjalnie dla osób, które nie chcą nic inwestować, postaram się przetestować każdy zestaw oprogramowania zarówno przy 1 GB RAMu, jak i przy 256 MB RAM.

Podejście pierwsze: KLIK