Kategorie: Obwody mikrokontrolera
Liczba wyświetleń: 6809
Komentarze do artykułu: 0

Programowalne mikrokontrolery w JavaScript: który wybrać, jakie funkcje i możliwości

 

Po 2010 roku, w naszym kraju, amatorskie hobby radiowe zyskało drugi wiatr wraz z pojawieniem się możliwości programowania mikrokontrolerów w językach programowania wysokiego poziomu, dalekich od żelaznych. Pierwszym masowym projektem był Rodzina Arduino Board. Wielokrotnie badaliśmy te mikrokontrolery w artykułach, ale dziś porozmawiamy o mikrokontrolerach, które są zaprogramowane w javascript. Tak Ten sam język, który był używany głównie podczas pisania stron WWW.

Mikrokontroler programowalny w javascript

Zakres, czy takie mikrokontrolery są w ogóle potrzebne?

Jeśli rozważymy z punktu widzenia elektroniki w tych urządzeniach, które rozważymy poniżej, stosowane są standardowe mikrokontrolery. Różnica w stosunku do produktów producenta polega tylko na tym, że mają one wstępnie zainstalowany program ładujący, chociaż nazywaj go tak, jak chcesz, co pozwala wykonać pobrany kod programu, aw niektórych przypadkach komunikować się z komputerem przez USB, jeśli nie jest zaimplementowany sprzętowo.

Do czego służą mikrokontrolery JavaScript i innych nietradycyjnych języków? Między amatorami i profesjonalistami toczą się debaty na temat rozwoju elektroniki na specjalistycznych forach, gdzie niektóre chwalą projekty takie jak „Arduino”, podczas gdy inni upokarzają je i wyśmiewają w każdy możliwy sposób za prostotę i abstrakcyjność programisty od większości problemów z żelazem.

Ważne: W tej części artykułu mówimy: „Arduino”, ponieważ stało się punktem wyjścia dla większości fanów do projektowania urządzeń elektronicznych.

Arduiny można zaprogramować w C. Ale czy to konieczne? Zobaczmy, dlaczego w większości przypadków szybkość reakcji mikrokontrolerów nie jest potrzebna. Pracownicy Arduino często lubią montować sterowniki do automatycznego nawadniania i włączania oświetlenia do „oświetlania” roślin. Takie połączone urządzenie będzie doskonałą pomocą dla tych, którzy lubią hodować coś w mieszkaniach lub szklarniach.

Ale jaka prędkość urządzenia sterującego jest tutaj potrzebna? 15-20 lat temu nikt nie użyłby go tutaj mikrokontroler - Projektant amator z powodzeniem zarządziłby parą wzmacniaczy operacyjnych lub elementów logicznych. Ale jeśli mówimy o przydatności omawianego mikrokontrolera do tych projektów, to tutaj jest całkowicie obojętne po ilu milisekundach włącza się podświetlenie lub ziemia zaczyna nawadniać wodę.

Automatyczny system nawadniania

Kolejnym popularnym projektem jest domowa stacja pogodowa i okazuje się, że do takich celów podstawowe możliwości arduinów wystarczą do odczytania informacji z czujników i wyświetlenia ich na wyświetlaczu syntezującym znaki.

W przykładach zarządzania Taśma LED RGB zwykłe lub inteligentne diody LED z kontrolą „piksel po pikselu” (przykład takiej taśmy SMART i jej oznaczenia, które widać na poniższym rysunku) również mają wystarczające zasoby.

Taśma SMART

Ale gdzie potrzebujesz szybkości i nie nadajesz się do korzystania z uproszczonych języków programowania, takich jak Scratch lub javascript? Wszystko jest bardzo proste:

  • W obwodach precyzyjnych;

  • W alarmach i systemach bezpieczeństwa;

  • W precyzyjnych przyrządach pomiarowych z potrzebą szybkiego pobierania danych z ADC, w tym dla normalnych oscyloskopów;

  • W urządzeniach wymagających długoterminowej autonomicznej pracy w trybie uśpienia;

  • W przypadkach, w których trzeba „wsunąć” jak najwięcej funkcji i kodu do mikrokontrolera, ale ostatnio nie stało się to bardzo pilnym zadaniem w związku ze zmniejszeniem kosztów większości urządzeń na rynku.

W większości tych zadań przeszkodą jest szybkość i pamięć.Aby uzyskać optymalne wyniki, w tym przypadku bardziej rozsądne jest użycie nawet C / C ++, ale Assembler (ASM). Rzeczywiście, jeśli dążysz do takich projektów, oznacza to, że masz pewną wiedzę, co oznacza, że ​​nie ma takiej potrzeby.


Wniosek?

Mikrokontrolery z prostymi językami są potrzebne tam, gdzie nie ma ścisłych wymagań, takich jak prędkość lub dokładność pomiaru, ale nawet w niektórych sytuacjach zapewnią dokładność niespecjalistycznym urządzeniom przeznaczonym do użytku amatorskiego.



Espruino - potężny mikrokontroler i prosty język javascript

Platforma Espruino to zestaw oprogramowania i sprzętu do programowania mikrokontrolerów w języku javascript, zawiera trzy elementy:

1. Oprogramowanie układowe mikrokontrolera z tłumaczem języka JS.

2. Środowisko programistyczne dla Espruino Web IDE.

3. Płytka z mikrokontrolerem z samym oprogramowaniem do bezpośredniej współpracy z Espruino.

Espruino

Pomysł został opracowany i wdrożony przez Gordona Williamsa w 2013 r. I zebrał na niego fundusze, korzystając z platformy crowdfundingowej (Kickstarter). W rzeczywistości istotą rozwoju było opracowanie oprogramowania układowego (silnika) Espruino do ładowania go do mikrokontrolerów. Stosowany jest głównie w mikrokontrolerach z rodziny STM32 o architekturze kory ARM. Bardziej wygodne urządzenia do pracy, rozważymy poniżej.

Mikrokontroler Espruino

Aby pisać programy dla mikrokontrolera w javascript, musisz zainstalować Espruino Web IDE. Jest to program lub rozszerzenie popularnej przeglądarki internetowej Google Chrome, która instaluje się jednym kliknięciem.

Po kliknięciu przycisku „Zainstaluj” w menu „usługi” pojawi się aplikacja i możesz przejść do tego menu, wpisując w pasku adresu: chrome: // apps /

Po kliknięciu ikony przy filiżance kawy otwiera się środowisko programistyczne, co jest zauważalne nie w przeglądarce, ale w osobnym oknie.

To środowisko jest interesujące zarówno dla dzieci, jak i początkujących użytkowników, ponieważ można wprowadzić kod ręcznie lub użyć edytora graficznego opartego na języku programowania Scratch. Aby to zrobić, kliknij ikonę wskazaną przez strzałkę.

Espruino Web IDE

Następnie prawa strona ekranu, która wraz z kodem zmieni się na inną reprezentację:

Edytor graficzny

Interfejs jest intuicyjny, w centralnym panelu od góry do dołu: otwórz nowy plik, zapisz szkic, załaduj go do mikrokontrolera.


Wniosek

Płytki Espruino i tym podobne są płytkami drukowanymi z niezbędnymi załącznikami i mikrokontrolerem z interpreterem javascript, który przetwarza kod i tłumaczy jego polecenia na język zer i jedynek bezpośrednio w czasie wykonywania. Będąc w klasycznej formie, program dla mikrokontrolerów jest ładowany do tego drugiego już w postaci kodu maszynowego.

Takie podejście zapewnia wydajność w wielu zadaniach, takich jak Arduino.


Recenzja oficjalnej linii Espruino

Oryginalne Espruino

Dane techniczne tego urządzenia:

  • 54x41 mm (połowa karty kredytowej);

  • STM32F103RCT6 32-bitowy procesor ARM Cortex M3 o częstotliwości 72 MHz

  • 256 KB Flash, 48 KB RAM;

  • Port Micro USB

  • Zakres napięcia wejściowego od 3,6 do 15 V.

  • Złącze akumulatora (2-stykowe JST PHR-2);

  • Wbudowane gniazdo kart SD;

  • Trzy diody LED (czerwona zielona i niebieska);

  • Platformy do instalacji modułu Bluetooth HC-05;

  • Odległość między kopalniami - 0,1 "(2,54 mm);

  • 44 piny GPIO, w tym 26 PWM (PWM), 16 ADC (ADC), 3 USART, 2 SPI, 2 I2C i 2 DAC (DAC);

  • Obszar na płycie można wykorzystać do podłączenia wielu urządzeń, takich jak moduły Wi-Fi, serwomechanizmy, z możliwością rozszerzenia do 14 wyjść o prądzie do 500 mA.

Płytka mikrokontrolera Espruino

Wygląd tablicy i warunkowy podział jej węzłów na strefy

Dla wielu tablica może wydawać się nieatrakcyjna i niekompletna, ale była to tylko jej pierwsza opcja, potem wyglądają bardziej znajomo i postępowo. Puck.JS jest miniaturową płytką w walizce, ma na pokładzie Bluetooth i nadajnik podczerwieni.

Puck.js

Według informacji z oficjalnej strony, jej specyfikacje techniczne i funkcje są następujące:

  • Bluetooth Low Energy;

  • Zainstalowany interpreter javascript Espruino;

  • Sercem płyty jest nRF52832 SoC - 64 MHz ARM Cortex M4, 64 kB RAM, 512 kB Flash;

  • 8 portów 0,1 x GPIO (w tym PWM (PWM), SPI, I2C, UART, wejście analogowe);

  • 9 portów SMD GPIO (w tym PWM, SPI, I2C, UART);

  • Podkładka obudowy wykonana z tworzywa ABS;

  • Silikonowa osłona z kluczem;

  • MAG3110 Magnetometr - trójosiowy miernik pola magnetycznego;

  • Nadajnik IR

  • Termometr, czujnik światła i poziom naładowania baterii;

  • Trzy diody LED (czerwona, zielona i niebieska);

  • Programowalny przez tag JS NFC.

  • Kołki mogą postrzegać dotyk według pojemności (zasada działania ekranów dotykowych smartfonów);

  • Waga 14 g;

  • Rozmiary plastikowej skrzynki: średnica 36 mm, grubość - 12,5 mm;

  • Wymiary płyty: średnica 29 mm, grubość 9 mm.

Pokaz pracy:

Następna płyta to Espruino Wi-Fi, jak sama nazwa wskazuje, jej funkcją jest wbudowany moduł bezprzewodowy do Wi-Fi.

Espruino Wi-Fi

Jego parametry techniczne:

  • Wymiary płyty: 30x23 mm;

  • Płyta ma złącze Micro USB;

  • 21 GPIO: 8 wejść analogowych, 20 PWM, 1 port szeregowy, 3 SPI, 3 I2C;

  • Płyta ma 3 diody LED, 2 z nich są programowalne przez użytkownika, a 1 wyświetla aktywność Wi-Fi;

  • Porty są zgodne z Arduino pod względem napięcia i obsługują sygnał 5 woltów;

  • 1 przycisk;

  • Zbudowany na mikrokontrolerze STM32F411CEU6 32-bitowy procesor ARM Cortex M4 100 MHz;

  • Pamięć: 512 kb flash, 128 kb RAM;

  • Komunikacja Wi-Fi z ESP8266 (802.11 b / g / n);

  • RTC (zegar czasu rzeczywistego z zewnętrznym generatorem).

  • Na płytce zainstalowany jest stabilizator 3,3 V o prądzie do 250 mA, obsługiwane jest napięcie zasilania od 3,5 do 5 V.

  • Pobór prądu w trybie uśpienia wynosi do 0,05 mA, co pozwala pracować 2,5 roku na baterii 2500 mAh (chociaż jest to bardziej marketingowe, ale sama bateria częściej rozładowuje się szybciej).

Espruino Wi-Fi

Prezentacja płyty:


Espruino Pico - mikrokontroler javascript w formacie pamięci USB

Rozważymy to w osobnej sekcji, ponieważ jest najbardziej powszechne w Rosji i w pobliżu za granicą, być może wiele dzięki firmie Amperka. Płytka jest wygodna do szkolenia i realizacji zakończonych projektów, miniaturowa tablica, która jest wkładana bezpośrednio do portu USB komputera w celu programowania.

Espruino Pico

Dane techniczne:

  • Wymiary: 33x15 - biorąc pod uwagę wtyczkę USB;

  • 22 porty GPIO, w tym: 9 wejść analogowych, 21 PWM, 2 szeregowe (porty szeregowe), 3 SPI, 3 I2C;

  • Piny GPIO obsługują poziomy sygnału 5 V, co pozwala łączyć płytkę z osłonami i urządzeniami dla arduino;

  • Wtyczka USB typu A jest częścią płyty.

  • Dwie diody LED i jeden programowalny przycisk

  • Zbudowany na 32-bitowym mikrokontrolerze z procesorem ARM Cortex M4 32-bit STM32F401CDU6

  • Pamięć: flash 384 kb, pamięć RAM 96 kb

  • Regulator napięcia 3,3 V 250 mA jest wlutowany na płytce i umożliwia zasilanie z 3,5 do 16 V.

  • W trybie uśpienia zużywa prąd do 0,05 mA, a producent twierdzi tutaj 2,5 roku pracy z 1 baterii przy 2500 mAh;

  • Wbudowany tranzystor polowy do sterowania obwodami wysokoprądowymi.

To najmniejsza deska w linii. Wzdłuż krawędzi znajdują się porty I / O. W tym przypadku warstwa metalizacji jest obecna zarówno na samych otworach, jak i na końcu płytki drukowanej.

Espruino Pico

Rozstaw styków jest standardowy, pozwala to na lutowanie do niego standardowych linii PLS (jest to nazwa, którą niosą).

Linia Pls

Szczegółowy przegląd tego forum:


Sklep internetowy Amperka i jego linia desek z Javascriptem

Czy ci się to podoba, czy nie, ale największym popularyzatorem nietradycyjnego programowania mikrokontrolerów, szczególnie w javascript, jest strona Amperka. Mają kanał na YouTube, gdzie uczą, jak używać i programować swoje produkty, a także pokazują wdrażanie projektów z wykorzystaniem własnej linii płyt mikrokontrolerów.

Markowa linia krajowego producenta to ISKRA JS, której nazwa odczytuje nazwę omawianego języka. Jego parametry techniczne:

  • Mikrokontroler: STM32F405RG (32-bitowy ARM Cortex M4);

  • Częstotliwość zegara: 168 MHz;

  • Pamięć flash: 1024 kB;

  • SRAM: 192 kB;

  • Znamionowe napięcie robocze: 3,3 V.;

  • Zalecane napięcie wejściowe: 7–15 V lub 3,6–12 V.;

  • Maksymalny prąd z magistrali 5 V: 1000 mA;

  • Maksymalny prąd z magistrali 3,3 V: 300 mA (łącznie z zasilaniem mikrokontrolera);

  • Maksymalny prąd z pinu lub pinu: 25 mA;

  • Maksymalny całkowity prąd z pinów lub pinów: 240 mA;

  • Porty we / wy ogólnego zastosowania: 26;

  • Porty z obsługą PWM: 22;

  • Porty ADC: 12 (12 bitów);

  • Porty z DAC: 2 (12 bitów);

  • Dostępne interfejsy sprzętowe: 4 × UART / Serial, 3 × I²C / TWI, 2 × SPI;

  • Wymiary: 69 × 53 mm.

ISKRA JS

Strukturalnie, płyta jest bardzo zbliżona do Arduino Uno R3 - oznacza to, że możesz do tego użyć kart rozszerzeń.Jakie ciekawe rzeczy widzimy w specyfikacjach technicznych? Porównajmy je ze wszystkimi twoimi ulubionymi arduino.

Porównanie Iskra JS i Arduino UNO r3

Różnią się one pamięcią i możliwościami, a każdy znajdzie zastosowanie. Chociaż arduino w większości przypadków jest lepsze, ponieważ można je kupić za kilkaset rubli, ale iskra nie.

Amperka sprzedaje również mikrokontrolery i mikrokomputery takie jak Raspberry Pi, a także zestawy treningowe do pracy z nimi. Istnieje również linia kart rozszerzeń do mikrokontrolerów, są to tak zwane moduły Troyka. Wykonane są w tym samym białym kolorze, co pozostałe produkty tej firmy.

Podobnie jak wszystkie inne ekrany, produkty Amperka zawierają główne obwody drukowane jako czujnik, czujnik, urządzenie przełączające, urządzenie nadrzędne lub siłownik oraz niezbędne elementy do niego przymocowane. Zrobiliśmy już zgrubną analizę typowych modułów dla Arduino - Najpopularniejsze tarcze dla Arduinotutaj wszystko analogicznie. Na stronie internetowej lub w społeczności Amperka można znaleźć biblioteki do użytku z modułami z Iskra JS lub Arduino.

Wśród trzech modułów znajdują się:

  • Joystick

  • Enkoder

  • Moduł z przekaźnikiem;

  • Karty rozszerzeń portów (Tarcza Troyka);

  • Akcelerometry i inne czujniki położenia;

  • Czujniki światła, bliskości, prądu, temperatury, przedpokoju, hałasu, gazu, alkoholu i innych rzeczy;

  • Odbiorniki do odczytu tagów NFC;

  • Sprzęt do zarządzania silnikiem (mostki H, kierowcy) i nie tylko.

W sprzedaży znajduje się ciekawy zestaw dla początkujących „IODO”.

Osobnym słowem na temat pojedynczego elementu w konfiguracji jest # konstruktor. Są to części do montażu skrzyń i elementów nośnych twoich konstrukcji, są połączone jak projektant dziecka i pozwalają na stworzenie normalnie stabilnego układu z możliwością bezpiecznego przenoszenia, a także rozwiązanie pod klucz do codziennego użytku.

Konstruktor

Nawiasem mówiąc, możesz złożyć swój zestaw treningowy, a broszura szkoleniowa z zestawu jest dostępna na oficjalnej stronie internetowej w formie elektronicznej i bezpłatnie.


Wniosek

Aby zaprogramować mikrokontrolery w javascript, wystarczy zainstalować odpowiednią powłokę na próbce. Jednak nie każda kopia ma odpowiednie oprogramowanie, jednak dla popularnych urządzeń można znaleźć na forach tematycznych. Na przykład na mikrokomputerze BBC Micro: bit proces pracy ze środowiskiem jest przedstawiony na poniższym wideo, a instalacja odbywa się w kilku krokach.

Czy javascript jest potrzebny na mikrokontrolerach? Absolutnie tak! W przypadku większości zadań amatorskich zrób to sam nie potrzebuje dokładności ani szybkości reakcji, a w przypadku szeregu zadań profesjonalnych możliwości takich platform są wystarczające. Takie podejście do programowania umożliwia rozpoczęcie opracowywania urządzeń praktycznie bez badania struktury i poleceń mikrokontrolera. Ale w klasycznej metodzie programowania konieczne było wzięcie pod uwagę wielu rzeczy, takich jak różne typy zmiennych, adresy pamięci i tak dalej.

Zobacz także na e.imadeself.com:

  • Mikrokontrolery PIC dla początkujących
  • Rodzaje i rozmieszczenie mikrokontrolerów AVR
  • Którą płytę Arduino wybrać
  • Co to są wyświetlacze Nextion i jak z nimi pracować?
  • Podłączanie i programowanie Arduino dla początkujących

  •