„Wiele jest prac, których nie możesz wykonać, dopóki się nie odważysz, lecz jeszcze więcej takich, których się nie nauczysz, nie wykonując”.

(przysłowie armeńskie)

Minicom jako terminal szeregowy

piątek, 5 marca 2010 @ 22:21
Do kategorii: Elektronika, GNU/Linux, Komputer

Ostatnio dużo pracuję na porcie szeregowym RS-232, przez który obsługuję także linuksową powłokę. Niezbędny jest do tego emulator terminala szeregowego. Dotychczas korzystałem przede wszystkim z programu GTKTerm, znacznie rzadziej z CuteCom. Na dłuższą metę w GTKTermie doskwierają dwie niedogodności. Po pierwsze na moim systemie lubi on wstawiać od czasu puste linie, jest to jednak tylko pewien wizualny mankament. Po drugie GTKTerm nie radzi sobie z edycją już wydrukowanej linii tekstu, przez co przeglądanie historii poleceń powłoki owocuje ciągłym zadrukowywaniem ekranu, nie mówiąc już o różnej maści paskach postępu, które błyskawicznie zapełniają dostępną historię ekranu; w tych warunkach na vi w ogóle nie da się pracować. Po trzecie — aplikacja ma bardzo krótką historię ekranu, przez co zwykłego dmesg-a trudno obejrzeć w całości.

CuteCom w ogóle jest nieporozumieniem: nie obsługuje kolorów, wejście działa w trybie liniowym a nie znakowym, a jego log potrafi zapchać RAM, zwłaszcza jeżeli będzie monitorował port, na którym działa programator ISP (co ma miejsce w ATmedze128). W pewnych zastosowaniach mógłby się sprawdzić, ale na pewno nie jest to wygodny emulator terminala.

Oczywiście, oprócz tych dwóch programów, znałem też Minicoma, ale zawsze miałem go za program bardzo nieprzyjazny użytkownikowi i nadający się tylko do współpracy z modemami. Okazuje się jednak, że bardzo prosto jest zmusić go do pracy w roli pełnoprawnego terminala szeregowego. To tylko kwestia dodania kilku opcji w wierszu poleceń:

$ minicom -m -o -w -c on

lub krócej:

$ minicom -mowc on

Czytaj dalszą część wpisu »

Przywracanie SAM-B-y w MMnecie1002

czwartek, 4 marca 2010 @ 16:04
Do kategorii: Elektronika

Eksperymentując z bootloaderami i jądrami Linuksa na AT91SAM9260 zablokowałem sobie w pewnym momencie moduł MMnet1002. Mikrokontroler programowany jest przez atmelowski interfejs ISP o nazwie SAM-BA (SAM Boot Assistant), który jest bardzo wygodny, bo nie wymaga żadnego sprzętowego programatora — wystarczy podłączyć się przez USB do ARM-a i użyć oprogramowania dostarczonego przez Atmela.

Niestety, nie jest tak, że tryb programowania włącza podanie odpowiedniego stanu na jakiś pin i restart mikrokontrolera. SAM-BA znajduje się na samym końcu sekwencji startowej i jest uruchamiana tylko wtedy, gdy nie uda się wczytać programu z pamięci DataFlash i NANDFlash. Wprawdzie na płytce MMnet1002 znajduje się zworka SAMBA podłączona do pinu PC15 (NWAIT), której założenie w połączeniu z dwukrotnym restartem wprowadza system w stan programowania, ale ta tajemnicza metoda nie zawsze skutkuje. W szczególności, gdy doprowadzimy system do takiego stanu, że będzie w stanie wczytać z pamięci wadliwy program, utkniemy w miejsu — algorytm startowy stwierdzi, że program wczytano i nie ma potrzeby uruchamiania SAM-B-y, nawet gdy program będzie błędny. W efekcie na konsoli DBGU zobaczymy tylko smutne:

RomBOOT

>

Czytaj dalszą część wpisu »

JTAG do ATmegi w wersji USB

środa, 20 stycznia 2010 @ 19:25
Do kategorii: Elektronika

AVR JTAGICE USB cloneJakiś czas temu przedstawiałem prosty układ elektroniczny pełniący rolę JTAG-a dla mikrokontrolerów ATmega. Był to znaleziony w Sieci klon firmowego JTAGICE, który to klon mimo prostej budowy znakomicie pełni swoją rolę. Jedyną istotną jego wadą jest sterowanie przez port szeregowy RS-232. Port ten jest już rzadkością w komputerach, co wymusza stosowanie przejściówek USB<–>RS-232. Z mojego doświadczenia wynika, że przejściówki takie często sprawiają wiele kłopotów, dlatego doszedłem do wniosku, że czas ulepszyć JTAG-a, a przy okazji dorobić się wreszcie czegoś konkretnego w miejsce poprzedniej prowizorki.

Tak naprawdę nie czekało mnie wiele pracy — musiałem tylko dodać do układu jakąś przejściówkę USB<–>RS-232 i zaprojektować płytkę, najlepiej pod elementy SMD. W roli konwertera postanowiłem wykorzystać układ scalony firmy FTDI — FT232RL. Kosztuje on wprawdzie kilkanaście złotych, ale ma wbudowany zegar i do działania nie potrzebuje prawie żadnych elementów zewnętrznych.

Czytaj dalszą część wpisu »

Instalacja AWStats na Debianie (z Apachem)

czwartek, 24 września 2009 @ 18:40
Do kategorii: GNU/Linux, Komputer

AWStats to narzędzie do analizy logów serwera WWW (a także FTP i e-mail, ale to mnie akurat nie interesowało), udostępniające bogate statystyki w całkiem przejrzystej, graficznej formie. Korzystam z Debiana w gałęzi stabilnej, który udostępnia AWStats w swoim repozytorium, liczyłem zatem, że wystarczy zainstalować paczkę i wszystko pójdzie z górki. Okazało się, że instalacja z paczki i tak kończy się ręczną konfiguracją, i to włącznie z wprowadzaniem poprawek w automatycznym (?) konfiguratorze. Dlatego w końcu postanowiłem wszystko zrobić sam. Cały proces jest trochę skomplikowany, ale warto spróbować.

Czytaj dalszą część wpisu »

LanguageTool dla Writera

środa, 19 sierpnia 2009 @ 15:00
Do kategorii: GNU/Linux, Komputer, Lifehacking

W ramach wakacyjnego sezonu ogórkowego chcę przedstawić narzędzie, które sprawia, że mimo zafascynowania LaTeX-em, wciąż chętnie sięgam po Writera z pakietu OpenOffice.org. Narzędziem tym jest LanguageTool. Zapewne nie wszyscy wiedzą, że poza kontrolowaniem ortografii, Writer może też sprawdzać reguły gramatyczne i wyłapywać błędy językowe.

Czytaj dalszą część wpisu »

Laptop z WiFi, czyli router na szybko

wtorek, 23 czerwca 2009 @ 19:18
Do kategorii: GNU/Linux, Komputer

Czasem zachodzi potrzeba, by zmienić laptopa z WiFi w router, który mógłby udostępnić połączenie z Internetem np. innemu komputerowi. Wydawałoby się, że na Linuksie nie ma nic prostszego, a w najgorszym razie wystarczy chwilę poszukać rozwiązania w Sieci. W praktyce może okazać się, że łatwo wpaść w konsternację, widząc mnogość rozwiązań.

Ponieważ dziś na własnej skórze doświadczyłem, jak dużo czasu może zająć konfiguracja tak banalnej rzeczy, postanowiłem podzielić się swoim doświadczeniem. Nie jestem specjalistą od sieci komputerowych, dlatego chętnie przyjmę krytykę i poprawię błędy, jeżeli dostrzeżecie takowe w poniższej instrukcji.

Czytaj dalszą część wpisu »

Sage policzy to za Ciebie

czwartek, 21 maja 2009 @ 19:07
Do kategorii: Elektronika, GNU/Linux, Komputer, Recenzje

Z pewnym żalem obserwuję czasem wśród moich kolegów z uczelni prawie że kompletny brak umiejętności posługiwania się oprogramowaniem matematycznym. Rozumiem jednak niechęć do MATLAB-a, a nawet do samej matematyki; ze wstydem przyznaję też, że sam, po blisko czterech latach na politechnice, posiadam wciąż bardzo ubogi aparat matematyczny i z trudem udaje mi się zmusić komputer do tego, do czego został stworzony, czyli do… liczenia.

Chcąc nie chcąc, uczyłem się w ramach zajęć na ETI wykorzystywać MATLAB-a, a więc przy okazji i Octave’a, do podstawowych obliczeń, szybko jednak zapominałem pokręconą składnię tego środowiska. Brakowało mi też wsparcia dla obliczeń analitycznych i możliwości pisania programów z użyciem wygodnej składni. Potrzebowałem czegoś, co pozwoli mi zarówno policzyć analitycznie całkę, z którą nie poradzi sobie mój kalkulator (Casio Algebra FX 2.0 Plus), wykreślić przebieg dowolnej funkcji, wyznaczyć DFT sygnału, jak i szybko zaimplementować jakiś własny algorytm.

Cóż więc mi pozostawało? SciPy, Maxima, Scilab? A może coś jeszcze innego? W końcu trafiłem na środowisko Sage.

Czytaj dalszą część wpisu »

Nut/OS na Linuksie i MMnet104

środa, 6 maja 2009 @ 20:29
Do kategorii: Elektronika, GNU/Linux, Komputer

Tydzień temu pisałem o przywróceniu do życia modułu MMnet104. Dziś opiszę krótko instalację i uruchomienie środowiska, które pozwoli oprogramować ten moduł pod Linuksem z użyciem systemu operacyjnego Nut/OS.

Nut/OS jest modularnym systemem operacyjnym czasu rzeczywistego (RTOS) opracowanym w ramach projektu Ethernut. Ethernut jest projektem typu „open source hardware”, mającym na celu udostępnienie systemów wbudowanych obsługujących Ethernet.

Czytaj dalszą część wpisu »

JTAG vs. fuse bity ATmegi128

środa, 29 kwietnia 2009 @ 21:38
Do kategorii: Elektronika

AVR JTAGW naszym projekcie grupowym na ETI korzystamy z modułu MMnet104 z mikrokontrolerem ATmega128. W wyniku bliżej nieokreślonych manipulacji procesor przestał odpowiadać na próby komunikacji po SPI za pomocą programatorów ISP.

Po konsultacjach uzgodniliśmy, że przed dramatyczną próbą wybebeszenia ATmegi i potraktowania ją programatorem równoległym spróbujemy użyć JTAG-a. Szczęśliwie okazało się, że da się w miarę prosto zbudować taki programator w warunkach domowych.

Czytaj dalszą część wpisu »

Uruchamianie programu Java z użyciem Pythona

sobota, 25 kwietnia 2009 @ 12:26
Do kategorii: GNU/Linux, Komputer

Na potrzeby jednego z projektów na uczelni chciałem sprawdzić, jakie możliwości udostępnia GUI pakietu JDMP. Nie lubię jednak Javy i nie chciało mi się w niej pisać nawet króciutkiego programiku. Postanowiłem, że zamiast tego po raz pierwszy spróbuję Jythona.

Jython, następca JPythona, jest implementacją Pythona w Javie i, co w tym przypadku najważniejsze, pozwala posługiwać się klasami Javy przez skrypty Pythona (a także z użyciem trybu interaktywnego!).

Czytaj dalszą część wpisu »

.