Programowanie
BBC micro:bit

Programowanie płytki BBC micro:bit

Jednym z pierwszych pytań jakie zazwyczaj pada przy okazji prezentacji platformy BBC micro:bit jest: "a w czym można to zaprogramować?". Nasza krótka zwyczajowa odpowiedź brzmi: "praktycznie we wszystkim: bloczki, Scratch, Python, C, C++, Forth, Pascal, Ada, Sniff, Lisp...".

Dłuższą odpowiedź na to pytanie znajdziesz w tej sekcji. Zbieramy i opisujemy tu linki do najpopularniejszych metod, edytorów, bibliotek dedykowanych dla BBC micro:bit.

W tym zadaniu posiłkujemy się listą Awesome micro:bit tworzoną wspólnym wysiłkiem kilkunastu osób z całego świata.

Spis Treści

Programowanie - edytory blokowe

  • Microsoft MakeCode - podstawowy edytor blokowy. Działa z poziomu przegląarki www. Posiada wbudowany emulator umożliwiający programowanie bez posiadania płytki BBC micro:bit. Edytor generuje kod JavaScript (TypeScript). Pierwotnie edytor nazywał się PXT. Na chwilę obecną edytor nie ma domyślnie polskiego języka, jednakże ten można wymusić dodając w adresie beta?liveforcelang=pl. Edytor występuje także w formie aplikacji dla systemu Windows 10. Łączy elementy wielu poprzedników w jedną spójną całość.
  • Open Roberta Lab - blokowe środowisko programowania służące dedykowane robotom. Wspiera BBC micro:bit - generuje kod w MicroPythonie.
  • EduBlocks - ciekawe środowisko blokowe, które pozwala w łatwy sposób przejść z bloczków do Pythona.
  • [wsparcie zakończono] Microsoft Blocks - edytor blokowy od Microsoft. Edytor nie jest już rozwijany. Jeżeli zaczynasz przygodę z BBC micro:bit zalecamy skorzystanie z MakeCode.
  • [wsparcie zakończono] Code Kingdoms - graficzny edytor podobny do MakeCode. Podobnie jak Microsoft Blocks nie jest już rozwijany.
  • Rozszerzenie ScratchX micro:bit - pozwala na bezprzewodową kontrolę micro:bita z użyciem Scratcha
  • Scratch S2Bot dla BBC micro:bit - poradnik jak używać micro:bita ze Scratchem i S2Bot jako kontrolera Bluetooth (wymagane posiadanie BLED112 Bluetooth dongle)
  • s2m - program w Pythonie pełniący funkcję mostku pomiędzy lokalną wersją Scratch 2 a micro:bitem podłączonym przez USB.

Programowanie - Python

Programowanie w Pythonie pozwala wycisnąć z BBC micro:bit ostatnie soki. Jeżeli środowiska graficzne i blokowe są dla Ciebie ograniczeniem, to programując w Pythonie rozwiniesz skrzydła.

  • MicroPython - polska dokumentacja portu MicroPythona na płytkę BBC micro:bit. Jest to implementacja Python 3 dla mikrokontrolerów. Nie wszystko jest jeszcze przetłumaczone, ale tłumaczenie sukcesywnie posuwa się do przodu.

Programowanie - MicroPython - Edytory

  • Edytor od microbit.org - oficjalny "wężowy" edytor dostępny na stronie Funcacji micro:bit
  • Edytor od microbit.co.uk - pierwszy edytor Pyton od microbit.co.uk. Zbudowany w oparciu o starszą wersję Pythona.
  • Mu - "micro" edytor MicroPythona dla BBC micro:bita. Dużo micro naraz :) Można pobrać, zainstalować i używać bez dostępu do internetu. Daje radę!
  • create.withcode.uk - eydtor Pythona z wbudowanym emulatorem obsługujący BBC micro:bit (instrukcja)
  • Atom rozszerzenie - paczka z rozszerzeniem pozwalającym na obsługę BBC micro:bit z poziomu tego popularnego edytora dla programistów.
  • Thonny micro:bit - Wtyczka do edytora Thonny. Dobre środowisko Python IDE dla początkujących.
  • Wtyczka JetBrains IDEA/PyCharm IDE - wparcie dla urządzeń MicroPython w IntelliJ IDEA i PyCharm.
  • uPyCraft - MicroPython IDE dla systemów Windows i Mac, wspierające micro:bita. Wyróżnia się czystym i przejrzystym interfejsem.
  • CodeSpace - MicroPython IDE dostępny z poziomu przeglądarki. Działa z micro:bitem. Posiada wbudowaną pomoc i materiały edukacyjne.

Programowanie - MicroPython - Biblioteki

Potęga MicroPytona drzemie nie tylko w samej składni tego języka. Ogromnym atutem jest pokaźna ilość gotowych do wykorzystania bibliotek obsługujących najpopularniejsze komponenty.

Programowanie - Python - Biblioteki

  • MicroPeri - Pozwala na uruchomienie na komputerze programów Pythona z API MicroPythona i wykorzystanie micro:bita jako czujnika lub urządzenia zewnętrznego.
  • microbit_stub - Paczka Pythona pozwalająca na emulację micro:bita i wykorzystanie MicroPython API.
  • bluezero - Pacza Pythona pozwalająca na współpracę z urządzeniami Bluetooth. Zawiera przykłady dla BBC micro:bit.
  • bitio - Pythonowa biblioteka I/O BBC micro:bit. Pozwala na uruchomienie kodu (Windows, Mac, Linux i Raspberry Pi) i bezpośrednią interakcję z micro:bitem.

Programowanie - Python - Narzędzia programistyczne

  • uFlash - Narzędzie do flashowania micro:bita za pomocą skryptów Pythona i środowiska MicroPython.
  • MicroFs - Proste narzędzie do interakcji z systemem plików tworzonym przez MicroPythona na BBC micro:bit.
  • Jupyter kernel for the micro:bit - Paczka pozwalająca na użycie interfejsów Jupyter i odpalenie kodu MicroPythona bezpośrednio na micro:bicie.

Programowanie - JavaScript i MakeCode

MakeCode jest obecnie podstawowym edytorem blokowym dedykowanym dla BBC micro:bit. Opiekę nad nim sprawuje Microsoft. Programowanie jest łatwe i przyjemne. Z poziomu przeglądarki www układamy bloki, które są graficzną reprezentacją kodu JavaScript (TypeScript).

W starszych artykułach i dokumentacji można napotkać go pod nazwą PXT. Jest tak dlatego, że tak właśnie pierwotnie nazywał się ten edytor.

Na chwilę obecną edytor nie ma możliwości wyboru języka polskiego bezpośrednio z menu. Jednakże polskie tłumaczenie można wymusić dodając w adresie beta?liveforcelang=pl.

Edytor występuje także w formie aplikacji dla systemu Windows 10.

MakoCode nie jeste jedynym edytorem JavaScript, z którego można korzystać przy pracy z micro:bit. Warto wspomnieć o środowisku Espruino JavaScript. Jest to interpreter języka JavaScript dedykowany mikrokontrolerom. Oferuje webowe IDE zarówno do kodu pisanego jak i bloków. Nie jest to projekt napisany z myślą o micro:bicie, a jedynie na niego sportowany.

Programowanie - MakeCode - Pakiety

Edytor MakeCode pozwala w prosty sposób na rozszerzenie funkcjonalności. Rozwijając menu "Zaawansowane" na samym dole widnieje opcja "Dodaj pakiet". Opcja pozwala na przeszukanie biblioteki pakietów lub wpisanie adresu URL repozytorium z pakietem, który nas interesuje. Lista oficjalnie zatwierdzonych pakietów znajduje się na stronie makecode.microbit.org/packages. Poniżej umieściliśmy interesujące pakiety, do których linki trzeba dodać ręcznie.

  • BlueDot - Pakiet dodający obsługę aplikacji BlueDot.
  • Kitronik Servo Lite - Bloczki obsługujące sterownik serwomechanizmów Kitronik Servo:Lite używanego m.in. w robocie Kitronik :MOVE.
  • Kitronik I2C 16 Servo - Bloczki do obsługi sterownika 16 serwomechanizmów od firmy Kitronik. Sterownik został oparty o układ PCA9685, który komunikuje się po I2C.
  • Kitronik motor driver - Blocki do obsługi sterownika silników od Kitronika. Sterownik oparty jest o układ DRV8833.
  • Lego Power Functions - Bloczki pozwalające na kontrolę silników LEGO® Power Functions z wykorzystaniem diody podczerwonej.
  • Invent robot - Pakiet do obsługi robota Invent.
  • ubirch NB-IoT - Pakiet pozwalający na wysyłanie podisanych wiadomości do siebi ubirch.
  • CCS811 - Pakiet dodający wsparcie dla czujnika jakości powietrza CCS811.
  • DS1307 - Pakiet pozwalający na skorzystanie z zegara czasu rzeczywistego (RTC) DS1307.
  • HT16K33 - Pakiet dodający obsługę sterownika matryc LED opartego o układ HT16K33 działający po I2C.
  • HoneyBit - Pakiet obsługujący zestawy Honeycomb.
  • Bluetooth beacons - Pakiet pozwalający micro:bitowi na rozgłaszanie wiadomości po Bleutooth. Wspierane są iBeacon i AltBeacon.
  • LumexOLED - Pakiet obsługujący ekran Lumex OLED.
  • MakerBit - Pakiet kombo dodający bloczki do obsługi MakerBita stworzonego przez Roger Wagnera. Paczka zawiera m.in. obsługę odtarzacza MP3, ekranu LCD po I2C oraz czujników ultradźwiękowych
  • I2C LCD1602 - Biblioteka do obsługi wyświetlacza LCD 2x16, korzystającego konwertera bazującego na PCF8574 lub PCF8574A. Należy pamiętać, że adres I2C podajemy w formie dziesiątkowej (nie szesnastkowej). Dla PCF8574 będzie to 39 (0x27), zaś dla PCF8574A wpisujemy wartość 63 (0x3F). Jedyny problem to słaba widoczność napisów, gdy korzystamy z zasilania 3,3V. W tym wypadku przydatny będzie konwerter poziomów logicznych.
  • Użytkownik githuba agregujący wiele paczek dla MakeCode. Wszystko w jednym miejscu.

Programowanie - JavaScript - Biblioteki

  • node-bbc-microbit - Biblioteka Node.js do obsługi micro:bita z użyciem BLE (Bluetooth Low Energy)
  • node-bbc-microbit-io - Biblioteka Node.js do obsługi micro:bita w frameworku Johnny-Five.
  • microBit.js - Przeglądarkowa biblioteka JavaScript pozwalająca na interakcję w micro:bitem za pośrednictwem web bluetooth API.
  • MakeCode Command Line Tool (PXT CLI) - Zestaw narzędzi pozwalających na programowanie micro:bita z użyciem MakeCode Javascript. Pozwala również na uruchomienie lokalnej wersji edytora MakeCode.

Programowanie - C/C++

  • C/C++ runtime - Wprowadzenie do programowania BBC micro:bit z użyciem języka C/C++. Zawiera pełną dokumentację API, sterowników, itp.
  • Arduino nRF5 - Arduino Core dedykowany dla płytek bazujących na układzie Nordic Semiconductor nRF5. Jak łatwo się domyślić BBC micro:bit jest jedną z takich płytek.

Programowanie - C/C++ - Edytory

  • Micro:Pi - edytor C/C++ dedykowany micro:bitowi. Zawiera monitor portu szerewgowego i kilka przydatnych funkcji. Napisany w Pythonie z instalatorem dla systemów Linux.

Programowanie - C/C++ - Biblioteki

  • OneWire - Biblioteka OneWire. Bazuje na dziele Erik Oliemana - mbed DS1820 lib. Pozwala na podłączanie urządzeń działających na magistrali OneWire, np: DS18B20
  • neopixel - Biblioteka do kontrolowania adresowalnych diod RGB
  • micro:bit Screen - Arduino LED Screen library for micro:bit.
  • Adafruit Arduino micro:bit library - Biblioteka - wrapper - do Arduino IDE pozwalająca na programowanie micro:bita.
  • RTCC MCP7941X - Program Mbed do obsługi zegara czasu rzeczywistego z obsługą kalendarza - MCP79410 RTCC.
  • AS-289R2 - Biblioteka Mbed do obsługi drukarki termicznej AS-289R2 z poziomu micro:bita.

Programowanie - Pozostałe języki programowania

Pozostałe języski programowania, w których można bezprośrednio zaprogramować płytkę BBC micro:bit.

  • Touch Develop - Interaktywne środowisko programowania z wbudowanym symulatorem płytki BBC micro:bit.
  • Rust - Artykuł pokazujący jak odpalić kod w języku Rust na micro:bicie. 
  • Forth - Opis jak opalić Forth na BBC micro:bit. Zastanawiasz się pewnie czym ów język jest. Żeby było zabawnie Forth to tzw. asemblerowy język programowania wysokiego poziomu... Do tej pory myśleliśmy, że "asemblerowy" i "wyskokiego poziomu" to pojęcia, które wzajemnie się wykluczają.
  • Pascal - Kompilator Free Pascala, który pozwala na kompilację binarek dla platformy ARM embedded. Jak łatwo się domyślić, obsługuje również micro:bita.
  • Ada - Instrukcja jak odpalić środowisko Ada na micro:bicie. Ada pojawiła się w 1980 roku i jako wieloparadygmatowy język programowania ma wielu zwolenników na całym świecie. Trudno się dziwić, gdyż składnia języka została zaprojektowana tak, aby popełnienie trudnego do wykrycia błędu było jak najmniejsze.
  • Sniff - Sniff jest językiem programowania podobnym do Scratcha. Został on zaprojektowany tak aby pomóc użytkownikom Scratcha przenieść się na inne, bardziej konwencjonalne języki programowania.
  • Lisp - Interpreter Lisp dla BBC micro:bit. Lisp powstał w 1958 roku i jest bardzo często kojarzony z "tym czymś", czego się używa do budowy sztucznej inteligencji. Jeżeli kojarzysz nazwę tego języka, zapewne wiesz co można w nim zrobić :)

Programowanie - interakcja z innymi językami

W poniższych językach programowania co prawda nie można zaprogramować samej płytki BBC micro:bit, ale mogą być użyte do stworzenia programów komunikujących się z micro:bitem.

  • Kodu Controller - Enables interacting with the micro:bit from Kodu Game Lab.
  • Simulink Coder Support Package - Package that enables you to create Simulink models and automatically generate and deploy code on the micro:bit.
  • micro:bit for Dyalog APL on the Pi - Tools for using the micro:bit (via MicroPython serial connection) with the Dyalog APL programming language on the Raspberry Pi.
  • Gobot - Framework for the Go programming language to program devices in the real world. It can now the micro:bit via Bluetooth LE.
  • Microbit-Unity - Unity scripts to allow the BBC Microbit to be used as a Unity Controller.
  • Haxe node BBC micro:bit - Control a BBC micro:bit from Node.js using BLE and the Haxe programming language.
  • App Inventor + IoT - Control a micro:bit via Bluetooth with App Inventor, a visual programming environment for Android applications.
  • BlockyTalkyBLE - MakeCode and App Inventor extension that makes it easy to connect AppInventor mobile phone apps with the BBC micro:bit wirelessly over Bluetooth.
  • DroidScript micro:bit Plugin - Allows you you to control the BBC micro:bit remotely from your own DroidScript apps (Android apps written in JavaScript).
  • CBMicroBit (C++/Objective C) - CoreBluetooth wrapper in C++ that connects a micro:bit to a computer running OSX using BLE and outputs over OSC (can be used standalone, or as a C++ or Objective C library).
  • Swift - An application programming interface written in Swift for use with the micro:bit. It allows programs written for Apple devices to communicate with the micro:bit using BLE.
Ostatnia aktualizacja: 16-8-2018