категории: Микроконтролер вериги
Брой преглеждания: 6809
Коментари към статията: 0

Програмируеми микроконтролери в JavaScript: кой да изберете, функции и възможности

 

След 2010 г. у нас любителското радио хоби получи втори вятър с появата на възможността да се програмират микроконтролери на езици за програмиране на високо ниво, отдалечени от желязото. Първият масов проект беше Семейство на Arduino Board, Многократно сме разглеждали тези микроконтролери в статии, но днес ще говорим за микроконтролери, които са програмирани в JavaScript. Да! Същият език, който се използва главно при писане на WEB-страници.

Микроконтролер програмируем в JavaScript

Обхват или изобщо са необходими такива микроконтролери?

Ако разгледаме от гледна точка на електрониката в тези устройства, които ще разгледаме по-долу, се използват стандартни микроконтролери. Разликата от продуктите на производителя е само в това, че те имат предварително инсталирана програма за зареждане, въпреки че я наречете каквото искате, което ви позволява да изпълнявате програмния код, изтеглен до вас, а в някои случаи общувате с компютъра чрез USB, ако той не е реализиран в хардуера.

За какво са микроконтролери за javascript и други нетрадиционни езици? Има дебати сред аматьори и професионалисти в развитието на електрониката в специализирани форуми, където някои хвалят проекти като "Arduino", а други ги унижават и осмиват по всякакъв начин за простотата и абстрактността на разработчика от повечето проблеми с желязото.

Важно: В тази част на статията казваме: „Arduino“, защото тя се превърна в отправна точка за повечето любители на електронните устройства.

Arduins могат да бъдат програмирани в C. Но това необходимо ли е? Нека да разгледаме защо в повечето случаи скоростта на реакция на микроконтролерите не е необходима. Работниците на Arduino често обичат да сглобяват контролери за автоматично напояване и включване на осветление за „осветяване“ на растенията. Такова комбинирано устройство ще бъде отлична помощ за тези, които обичат да отглеждат нещо в апартаменти или оранжерии.

Но каква скорост на устройството за управление е необходимо тук? Преди 15-20 години никой не би го използвал тук микроконтролер - любителският дизайнер успешно би управлявал чифт операционни усилватели или логически елементи. Но ако говорим за пригодността на обсъжданите микроконтролери за тези проекти, то тук е напълно безразлично след колко милисекунди се включва подсветката или земята започва да напоява водата.

Автоматична система за поливане

Следващият популярен проект е метеорологичната станция у дома и се оказва, че за такива цели основните възможности на ардуините са достатъчни, за да прочетат информация от сензори и да ги покажат на дисплея, синтезиращ символи.

В примери за управление RGB LED лента редовни или интелигентни светодиоди с управление "pixel-by-pixel" (пример за такава SMART лента и нейното маркиране, което виждате на фигурата по-долу) също има достатъчно ресурси.

SMART лента

Но къде се нуждаете от скорост и не са подходящи за използване на опростени езици за програмиране като Scratch или javascript? Всичко е много просто:

  • В прецизни вериги;

  • При аларми и системи за сигурност;

  • Във високоточни измервателни уреди с необходимостта бързо да се вземат данни от АЦП, включително за нормални осцилоскопи;

  • В устройства с изискване за продължителна автономна работа в режим на заспиване;

  • В случаите, когато трябва да „пъхнете“ възможно най-много функции и код в микроконтролера, но това не се превърна в неотложна задача наскоро във връзка с намаляването на цената на повечето устройства на пазара.

В повечето от тези задачи спънката е скоростта и паметта.За оптимални резултати в този случай е по-разумно да използвате дори не C / C ++, а Assembler (ASM). Всъщност, ако се стремите към подобни проекти, това означава, че имате известно количество знания, което означава, че няма нужда.


Изводът?

Микроконтролери с прости езици са необходими, когато няма строги изисквания като скорост или точност на измерване, но дори в някои ситуации те ще осигурят точност за неспециализирани устройства, предназначени за любителска употреба.



Espruino - мощен микроконтролер и прост език на JavaScript

Платформата Espruino е набор от софтуер и хардуер за програмиране на микроконтролери на езика на JavaScript, включва три елемента:

1. Фърмуер за микроконтролер с JS преводач.

2. Среда за разработка на Espruino Web IDE.

3. Платка с микроконтролер със самия фърмуер за работа директно с Espruino.

Espruino

Идеята е разработена и реализирана от Гордън Уилямс през 2013 г. и той събра средства за нея, използвайки платформата за краудфандинг (Kickstarter). Всъщност същността на разработката беше в разработването на фърмуера (двигателя) на Espruino за зареждането му в микроконтролери. Използва се главно за микроконтролери от семейство STM32, с ARM-cortex архитектура. По-удобни устройства за работа, ще разгледаме по-долу.

Микроконтролер Espruino

За да пишете програми за микроконтролера в JavaScript, трябва да инсталирате Espruino Web IDE. Това е програма или разширение за популярния интернет браузър Google Chrome, който се инсталира само с едно кликване.

След като кликнете върху бутона „Инсталиране“ в менюто „услуги“, ще се появи приложение и можете да влезете в това меню, като напишете в адресната лента: chrome: // apps /

Когато щракнете върху иконата с чаша кафе, се отваря средата за разработка, която е забележима не в браузъра, а в отделен прозорец.

Тази среда е интересна както за деца, така и за начинаещи потребители, защото можете да въведете кода ръчно или да използвате графичен редактор, базиран на езика за програмиране на Scratch. За да направите това, кликнете върху иконата, към която стрелката сочи.

Espruino Web IDE

След това дясната страна на екрана, която с кода, ще се промени към другото му представяне:

Графичен редактор

Интерфейсът е интуитивен, в централния панел отгоре надолу: отворете нов файл, запишете скицата, заредете я в микроконтролера.


заключение

Платките Espruino и други подобни са платка с печатни платки с необходимите приставки и микроконтролер, с javascript интерпретатор, който обработва кода и превежда командите му на езика на тези и нули директно по време на изпълнение. Докато е в класическата форма, програмата за микроконтролери се зарежда в последната вече под формата на машинен код.

Този подход дава резултати в много задачи, като Arduino.


Преглед на официалната линия Espruino

Оригинално Espruino

Спецификации на това устройство:

  • 54х41 мм (половин кредитна карта);

  • STM32F103RCT6 32-битов 72MHz процесор ARM Cortex M3

  • 256KB Flash, 48KB RAM;

  • Микро USB порт

  • Диапазон на входното напрежение от 3,6 до 15V;

  • Съединител на батерията (JST PHR-2 2 Pin);

  • Вграден слот за SD карта;

  • Три светодиода (червено зелено и синьо);

  • Платформи за инсталиране на Bluetooth модул HC-05;

  • Разстоянието между мини - 2,5 "(2,54 мм);

  • 44 GPIO пина, от които 26 PWM (PWM), 16 ADC (ADC), 3 USARTs, 2 SPI, 2 I2C и 2 DAC (DAC);

  • Зоната на платката може да се използва за свързване на редица устройства, като Wi-Fi модули, сервомери, разширяеми до 14 изхода с ток до 500 mA.

Микроконтролер платка Espruino

Появата на дъската и условното разделение на нейните възли на зони

За мнозина бордът може да изглежда непривлекателен и непълен, но това беше само първата му възможност, тогава изглеждат по-познати и прогресивни. Puck.JS е миниатюрна платка в кутията, има на борда Bluetooth и инфрачервен предавател.

Puck.JS

Според информация от официалния сайт, техническите му спецификации и характеристики са следните:

  • Bluetooth ниска енергия;

  • Предварително инсталиран JavaScript преводач Espruino;

  • Сърцето на платката е nRF52832 SoC - 64MHz ARM Cortex M4, 64kB RAM, 512kB Flash;

  • 8 x 0.1 "GPIO порта (включително PWM (PWM), SPI, I2C, UART, аналогов вход);

  • 9 x SMD GPIO портове (включително PWM, SPI, I2C, UART);

  • Корпусна шайба от ABS пластмаса;

  • Силиконов капак с ключ;

  • MAG3110 магнитометър - триосен измервател на магнитно поле;

  • ИЧ предавател

  • Термометър, сензор за светлина и ниво на батерията;

  • Три светодиода (червен, зелен и син);

  • Програмируем чрез JS NFC таг.

  • Пиновете могат да възприемат допир по капацитет (принципът на работа на сензорните екрани на смартфоните);

  • Тегло 14 g;

  • Размери на пластмасовия корпус: диаметър 36 мм, дебелина - 12,5 мм;

  • Размери на дъската: диаметър 29 мм, дебелина 9 мм.

Демонстрация на работа:

Следващият борд е Espruino Wi-Fi, както подсказва името, неговата функция е вграден безжичен модул за Wi-Fi.

Espruino Wi-Fi

Техническите му характеристики:

  • Размери на дъската: 30x23 мм;

  • Платката има Micro USB конектор;

  • 21 GPIO: 8 аналогови входа, 20 PWM, 1 сериен порт, 3 SPI, 3 I2C;

  • Платката има 3 светодиода, 2 от тях са програмируеми от потребителя, а 1 показва Wi-Fi активност;

  • Портовете са съвместими с Arduino по отношение на напрежението и поддържат 5 волтов сигнал;

  • 1 бутон;

  • Вграден на микроконтролер STM32F411CEU6 32-битов 100MHz ARM Cortex M4 процесор;

  • Памет: 512kb светкавица, 128kb RAM;

  • Wi-Fi комуникация с ESP8266 (802.11 b / g / n);

  • RTC (часовник в реално време с външен генератор).

  • На платката е инсталиран 3.3V стабилизатор с ток до 250 mA, поддържа се захранващо напрежение от 3,5 до 5 V.

  • Консумацията на ток в режим на заспиване е до 0,05 mA, което ви позволява да работите 2,5 години на батерия от 2500mAh (въпреки че това е по-маркетингово, но самата батерия е по-вероятно да се разрежда по-бързо).

Espruino Wi-Fi

Демонстрация на борда:


Espruino Pico - микроконтролер за javascript във формат USB стик

Ще го разгледаме в отделен раздел, тъй като той е най-често срещан в Русия и близкото чужбина, може би много благодарение на компанията Amperka. Платката е удобна за обучение и изпълнение на готови проекти, миниатюрна дъска, която се вкарва директно в USB порта на вашия компютър за програмиране.

Еспруино Пико

Особености:

  • Размери: 33x15 - като се вземе предвид USB щепселът;

  • 22 GPIO порта, включително: 9 аналогови входа, 21 PWM, 2 серийни (серийни порта), 3 SPI, 3 I2C;

  • GPIO пиновете поддържат 5 V нива на сигнала, което ви позволява да комбинирате платката с щитове и устройства за arduino;

  • USB щекерът тип A е част от платката.

  • Два светодиода и един програмируем бутон

  • Вграден на STM32F401CDU6 32-битов 84MHz ARM Cortex M4 CPU микроконтролер

  • Памет: 384kb светкавица, 96kb RAM

  • На платката е запоен регулатор на напрежение от 3.3 V 250mA и позволява захранването му от 3,5 до 16 V.

  • В режим на заспиване той консумира ток до 0,05 mA, а производителят тук твърди 2,5 години работа от 1 батерия при 2500mAh;

  • Вграден транзистор с полев ефект за управление на вериги с висок ток.

Това е най-малката дъска в линията. Покрай нейните ръбове са разположени входно / изходни портове. В този случай метализиращият слой присъства както върху самите отвори, така и по края на печатната платка.

Еспруино Пико

Контактната стъпка е стандартна, това ви позволява да спойкате стандартни PLS линии към нея (това е името, което носят).

Pls линия

Подробен преглед на този съвет:


Онлайн магазин Amperka и неговата линия от дъски с Javascript

Харесва ви или не, но най-големият популяризатор на нетрадиционното програмиране на микроконтролери, по-специално в javascript, е сайтът Amperka. Те имат канал в YouTube, където учат как да използват и програмират своите продукти, а също така показват изпълнението на проекти, използвайки собствена линия от табла от микроконтролери.

Маркираната линия на местния производител е ISKRA JS, чието име гласи името на обсъждания език. Техническите му характеристики:

  • Микроконтролер: STM32F405RG (32-битов ARM Cortex M4);

  • Тактова честота: 168 MHz;

  • Флаш памет: 1024 kB;

  • SRAM: 192 kB;

  • Номинално работно напрежение: 3.3V;

  • Препоръчително входно напрежение: 7–15 V или 3,6–12 V;

  • Максимален ток от 5V шина: 1000 mA;

  • Максимален ток от шината 3.3V: 300 mA (включително захранване на микроконтролера);

  • Максимален ток от щифт или щифт: 25 mA;

  • Максимален общ ток от щифтове или щифтове: 240 mA;

  • Портове за I / O с общо предназначение: 26;

  • Пристанища с PWM поддръжка: 22;

  • ADC портове: 12 (12 бита);

  • Портове с DAC: 2 (12 бита);

  • Налични хардуерни интерфейси: 4 × UART / сериен, 3 × I²C / TWI, 2 × SPI;

  • Размери: 69 × 53 мм.

ISKRA JS

В структурно отношение платката е много близо до Arduino Uno R3 - това означава, че можете да използвате разширителните карти за нея.Какви интересни неща виждаме в техническите спецификации? Нека ги сравним с всички ваши любими ардуино.

Сравнение на Iskra JS и Arduino UNO r3

Те са различни по отношение на паметта и възможностите и всеки ще намери своето приложение. Въпреки че ардуино в повечето случаи е за предпочитане, защото може да се купи за няколко стотин рубли, а искра - не.

Amperka продава и микроконтролери и микрокомпютри като Raspberry Pi, както и комплекти за обучение за работа с тях. Има и линия на разширителни карти за микроконтролери, това са така наречените модули Troyka. Те са направени в същия бял цвят като останалите продукти на тази компания.

Както всеки друг щит, продуктите на Amperka съдържат печатни платки като основна функционална единица - сензор, превключващо устройство, главен или задействащ механизъм и необходимите приставки към него. Вече направихме груб преглед на типичните модули за Arduino - Най-популярните щитове за Arduino, тук всичко е по аналогия. На уебсайта или в общността Amperka можете да намерите библиотеки за използване с модули с Iskra JS или Arduino.

Сред трите модула има:

  • джойстик;

  • енкодер;

  • Модул с реле;

  • Карти за разширение на порт (Troyka-щит);

  • Акселерометри и други сензори за положение;

  • Сензори за светлина, близост, ток, температура, Хол, шум, газ, алкохол и други;

  • Приемници за четене на NFC етикети;

  • Оборудване за управление на двигателя (H-мостове, водачи) и др.

В продажба има интересен комплект за начинаещи "IODO".

Отделна дума за един елемент в конфигурацията е # конструктора. Това са части за сглобяване на калъфи и носещи части от вашите конструкции, те са свързани като детски конструктор и ви позволяват да направите нормално стабилно оформление с възможност за безопасно носене, както и решение до ключ за ежедневна употреба.

Struktor

Между другото, можете да сглобите тренировъчния си комплект, а учебната книжка от комплекта е достъпна на официалния уебсайт в електронна форма и свободно достъпна.


заключение

За да програмирате микроконтролери в JavaScript, просто трябва да инсталирате подходящата обвивка на вашата проба. Въпреки това, не всяко копие има съответен фърмуер, но за популярни устройства можете да намерите на тематични форуми. Например, на микрокомпютъра BBC Micro: бит процесът на работа със средата е изобразен в следващото видео и инсталацията се извършва само в няколко стъпки.

Необходим ли е JavaScript на микроконтролери? Абсолютно да! За повечето аматьорски задачи самонадеяните не се нуждаят от точност или скорост на реакция, а за редица професионални задачи възможностите на такива платформи са достатъчни. Такъв подход за програмиране дава възможност да се започне разработването на устройства практически без изучаване на структурата и командите на микроконтролера. Но при класическия метод на програмиране беше необходимо да се вземат предвид редица неща, като различни видове променливи, адреси на паметта и т.н.

Вижте също на e.imadeself.com:

  • PIC микроконтролери за начинаещи
  • Видове и разположение на AVR микроконтролери
  • Кой Arduino дъска да изберете
  • Какво представляват Nextion дисплеите и как да работите с тях?
  • Свързване и програмиране на Arduino за начинаещи

  •