KursyPoradnikiInspirujące DIYForum

uLisp – interpretowany język programowania dla Arduino

uLisp – interpretowany język programowania dla Arduino

Czy możliwe jest przekształcenie mikrokontrolera AVR w prosty komputer? Tak! Wystarczy wgrać na Arduino interpreter języka uLisp.

Lisp Badge jest komputerem pozwalającym na pisanie i uruchamianie niezależnych programów w odmianie języka Lisp.

Czy ktoś pamięta język Lisp? Jest to pytanie kierowane bardziej do weteranów programowania, którzy pamiętają lata 50' – kiedy to Lisp miał swoje początki. Język ten jest jednym z pierwszych wysokopoziomowych języków interpretowanych - czyli takich, których kod programu nie wymaga kompilacji, zaś programy można pisać w linii poleceń lub w postaci skryptów.

Wydawać się może, że taki "zabytek" nie pasuje do współczesnych urządzeń – nic bardziej mylnego! Istnieją nawet dedykowane platformy sprzętowe do eksperymentów z tym językiem. Opisywany tutaj Lisp Badge składa się z mikrokontrolera ATmega1284P oraz elementów umożliwiających komunikację.

Na pokładzie płytki znajduje się m.in.:

  • klawiatura wzbogacona o znaki pomocne w programowaniu, 
  • złącze FTDI z możliwością wpięcia zewnętrznego konwertera UART,
  • graficzny wyświetlacz OLED o rozdzielczości 256x64px.
Działanie funkcji rysującej wykres

Działanie funkcji rysującej wykres

Istotą działania tego minikomputera jest wgrany do niego interpreter języka uLisp, który dostępny jest w formie szkicu na Arduino. Można go wgrać stosując Arduino IDE, przygotowano również zmieniony bootloader (na potrzeby mikrokontrolerów niewystępujących na płytkach Arduino).

Rewers płytki Lisp Badge

Rewers płytki Lisp Badge

Po wgraniu odpowiedniego szkicu można zająć się programowaniem mikrokontrolera w języku uLisp. Komendy wydaje się za pomocą terminala dostępnego w Arduino IDE lub za pomocą wbudowanej w płytkę klawiatury.

Przykładowy program na wyświetlaczu urządzenia

Przykładowy program na wyświetlaczu urządzenia

Wyniki wyświetlane są zarówno po stronie terminala (portu szeregowego) jak i na wyświetlaczu OLED umieszczonym na płytce. Dzięki buforowaniu, możliwe jest usuwanie znaków widocznych na ekranie. Interpreter jest w stanie wyświetlać też podpowiedzi na temat domykania nawiasów, dzięki czemu podczas programowania można uniknąć "oczywistych" błędów.

Przykładowy program migający diodą w tym języku wygląda następująco:

Warto zwrócić uwagę na ten projekt z kilku względów. Po pierwsze, jest to dość niestandardowe DIY jak na Arduino. Po drugie, uLisp umożliwia pisanie programów w języku interpretowanym na komputerach o słabszych zasobach sprzętowych, co może być przydatne (chociażby do nauki).

Szczegóły na temat Lisp Badge znajdują się na stronie projektu. Sam język uLisp doczekał się również rozbudowanej dokumentacji. Warto tam zajrzeć, jeśli nawet nie chcecie budować komputera do nauki tego języka (do testów wystarczy przecież Arduino UNO). Kto z Was spróbuje swoich sił z uLisp?

Tablet z kartonu na bazie Raspberry Pi za 60$!
Tablet z kartonu na bazie Raspberry Pi za 60$!

Pamiętacie projekt ZeroPhone?  Budowa telefonu to bardzo oryginalny pomysł. Jednak w czasach, gdy prawie każdy ma smartphona opisywany... Czytaj dalej »

arduino, avr, interpretowany, lisp, programowanie

Trwa ładowanie komentarzy...