Różnica między tworzeniem aplikacji za pomocą Pi może być bardzo różna lub nieco podobna do tworzenia aplikacji za pomocą mikrokontrolera ze względu na różnice sprzętowe, a także różnice w łańcuchu narzędzi programistycznych.
Dostępna jest szeroka gama mikrokontrolerów, które są od 8 do 64 bitowych procesorów i mają od kilku K pamięci RAM do kilku gigabajtów pamięci RAM. Bardziej wydajne mikrokontrolery zapewniają bardziej wrażenia podobne do Pi. Mikrokontrolery o mniejszych zdolnościach nie.
I nawet w przypadku Pi istnieją duże różnice między programowaniem dla systemu operacyjnego Windows 10 IoT a programowaniem dla Raspian, Mate lub innego systemu operacyjnego opartego na Linuksie. Windows 10 IoT wymaga komputera programistycznego korzystającego z zestawu narzędzi Visual Studio ze zdalnym debuggerem ukierunkowanym na środowisko Universal Windows Program (UWP). Programowanie dla Raspian lub Mate można faktycznie wykonać na Pi za pomocą narzędzi dostępnych na Pi.
Protokół ograniczonej aplikacji jest używany w przypadku małych, ograniczonych urządzeń używanych w środowisku Internetu rzeczy. Aby zapoznać się z różnorodnością sprzętu i oprogramowania mikrokontrolera, ta strona implementacji protokołu CoAP przedstawia środowisko, na które jest kierowana. Wspomina o systemie operacyjnym Contiki, o którym słyszałem niejasno, oraz o bardziej znanych systemach operacyjnych, takich jak iOS, OSX i Android. Wspomniane języki programowania to Java, JavaScript, C, C #, Ruby, Go, Erlang, Rust i Python.
Łańcuch narzędzi używany do programowania z mikrokontrolerem różni się w zależności od producenta, a także od tego, jakie zasoby są dostępne ze społeczności programistów i inicjatyw typu open source. W niektórych przypadkach otrzymujesz asembler krzyżowy, w innych dostajesz kompilator krzyżowy C, aw innych dostajesz ładny łańcuch narzędzi ze wszystkimi dzwonkami, gwizdkami i emulatorami i podobny do łańcucha narzędzi Visual Studio dla IoT Windows 10.
Rzeczywiste środowisko programistyczne dla mikrokontrolera może wymagać użycia programatora EEPROM i narzędzi programowych do utworzenia nowego obrazu i przekazania go do urządzenia lub urządzenie może mieć niezbędną łączność, aby umożliwić pobranie nowego obrazu za pośrednictwem połączenia szeregowego lub połączenie sieciowe.
Mam wrażenie, że większość mikrokontrolerów ma kompilator krzyżowy C, chociaż kompilator może obsługiwać tylko starsze standardy, takie jak K&R, a może C98. Kompilatory krzyżowe typu C często mają niestandardowe słowa kluczowe dla funkcji specyficznych dla mikroprocesora, na przykład słowa kluczowe far
i near
dla wskaźników ze starymi procesorami 8080 i 8086 z ich segmentowaną pamięcią.
Istnieją również języki specjalne, które są ukierunkowane na mikrokontrolery, takie jak język programowania FORTH . Języki te często mają konstrukcję wykonawczą ukierunkowaną na goły metal, dzięki czemu nie ma innego systemu operacyjnego niż język wykonawczy.
System operacyjny może wahać się od praktycznie nieistniejącego systemu Linux po gołą kostkę, aż po specjalistyczny system operacyjny, taki jak freeRTOS lub Windows Embedded lub w pełni funkcjonalny Linux lub Microsoft Windows. Zobacz ten projekt SourceForge MINIBIAN dla Raspberry Pi . Zobacz także ten eBook, Baking Pi: Operating Systems Development, który opisuje rozwój podstawowego systemu operacyjnego dla Raspberry Pi w asemblerze.
Ten artykuł z Visual Studio Magazine, Programowanie Internetu rzeczy za pomocą Visual Studio , zawiera omówienie wielu różnych dostępnych urządzeń, a następnie omówienie korzystania z Visual Studio IDE do programowania w systemach Linux i Windows.
Obecnie dostępny jest ogromny i rozwijający się świat gotowych, programowalnych, możliwych do podłączenia w sieci urządzeń mikrokontrolera. Na bardzo niskim poziomie masz wiele prostych 16- i 32-bitowych urządzeń różnych tradycyjnych producentów układów, takich jak Texas Instruments. (Grałem trochę z zestawem programistycznym SensorTag i sprawia mi to wiele radości, dlatego myślę, że Watch DevPack może być również świetnym zestawem narzędzi do nauki.)
Niektóre bardziej znane urządzenia mikrokontrolera to Arduino, BeagleBoard i Raspberry Pi. Wszystkie te środowiska mają szerokie wsparcie społeczności i są gotowe do podłączenia do ogromnej liczby gotowych zewnętrznych czujników, silników, serwomechanizmów i wszystkiego innego, co możesz sobie wyobrazić. Adafruit, superstore do nauki elektroniki założone przez Limor „Ladyada” Fried, zapewnia wszelkiego rodzaju urządzenia peryferyjne dla tych płyt, wraz z własną linią lekkich płyt rozwojowych z piórami.
...
Najciekawszym uniwersum urządzeń dla programistów znających Microsoft .NET Framework i Visual Studio mogą być środowiska zgodne z Windows 10 IoT Core. Są to urządzenia z procesorami x86 i ARM, które obsługują aplikacje Universal Windows Platform (UWP) napisane w różnych językach, w tym C #, Visual Basic, Python i Node.js / JavaScript. Rdzeń IoT systemu Windows 10 obsługuje urządzenia, w tym Raspberry Pi, Arrow DragonBoard 410C, Intel Joule i Compute Stick i MinnowBoard. Istnieją również interesujące platformy produktowe, takie jak poręczny Askey TurboMate E1.
Konkretny przykład aplikacji mikrokontrolera
Jest to obraz płytki mikrokontrolera z automatycznego ekspresu do kawy. Wydaje się, że jest to standardowy element automatycznych ekspresów do kawy produkowanych w Chinach. Strona internetowa producenta jest wydrukowana na płytce drukowanej.
Obraz składa się z dwóch widoków. Widok po lewej stronie jest z tyłu płyty zawierającej mikrokontroler i obwody podtrzymujące. Widok z prawej strony to przód tablicy z ekranem LCD i zestawem przycisków, które służą do ustawiania aktualnego czasu i wykonywania czynności takich jak programowanie czasu rozpoczęcia itp.
Widok z prawej strony mieści się w uchwycie, który następnie wpasowuje się w otwór z przodu ekspresu do kawy. Przełączniki na dolnej płytce drukowanej są uruchamiane przełącznikami wahacza. Wyświetlacz LCD, który wydaje się być specjalnym przeznaczeniem, służy do wyświetlania aktualnego czasu i statusu, a także do wyświetlania interfejsu użytkownika podczas zmiany ustawień ekspresu do kawy. Czerwona dioda LED służy do wskazania, kiedy ekspres do kawy faktycznie robi kawę oraz do wskazania, kiedy zostanie to zrobione przez wyłączenie podświetlenia.
Mikrokontrolerem jest ELAN Microelectronics Corp EM78P447NAM (arkusz danych), który jest 8-bitowym mikrokontrolerem. Niektóre podstawowe statystyki pokazują, jakie to małe i minimalne urządzenie, jednak działa dobrze zgodnie z przeznaczeniem. Celem jest opracowanie oprogramowania, które jest następnie pobierane do pamięci ROM raz w ramach produkcji.
• Niskie zużycie energii:
* Less then 2.2 mA at 5V/4MHz
* Typically 35 µA, at 3V/32KHz
* Typically 2 µA, during sleep mode
• 4K × 13 bitów na pamięci ROM układu
• Trzy bity ochronne, aby zapobiec włamaniu kodów pamięci OTP
• Jeden rejestr konfiguracji w celu dostosowania do wymagań użytkownika
• 148 × 8 bitów w rejestrach układów scalonych (SRAM, rejestr uniwersalny)