categorii: Circuite de micro-controler
Număr de vizualizări: 6809
Comentarii la articol: 0

Microcontrolere programabile în JavaScript: pe care să le alegi, caracteristici și capabilități

 

După 2010, în țara noastră, hobby-ul radio-amatorilor a obținut un al doilea vânt odată cu apariția capacității de a programa microcontrolerele în limbaje de programare la nivel înalt, departe de fier. Primul proiect de masă a fost Arduino Board Family. Am examinat în mod repetat aceste microcontrolere în articole, dar astăzi vom vorbi despre microcontrolere care sunt programate în javascript. Da! Același limbaj care a fost folosit mai ales la scrierea paginilor WEB.

Microcontroller programabil în javascript

Domeniu de aplicare sau sunt necesare aceste microcontrolere?

Dacă avem în vedere din punct de vedere al electronicii în acele dispozitive pe care le vom lua în considerare mai jos, se utilizează microcontrolere standard. Diferența față de produsele de la producător este doar că au un program de încărcare preinstalat, deși numiți-l ceea ce doriți, ceea ce vă permite să executați codul de program descărcat de dvs. și, în unele cazuri, să comunicați cu computerul prin USB, dacă nu este implementat în hardware.

Pentru ce sunt microcontrolerele pentru javascript și alte limbi ne-tradiționale? Există dezbateri în rândul amatorilor și profesioniștilor în dezvoltarea electronică în forumuri specializate, unde unele proiecte de laudă precum „Arduino”, în timp ce altele le umilează și le ridiculizează în orice mod posibil pentru simplitatea și abstractitatea dezvoltatorului de cele mai multe probleme cu fierul.

Important: în această parte a articolului spunem: „Arduino”, deoarece a devenit punctul de plecare pentru majoritatea fanilor să proiecteze dispozitive electronice.

Arduinele pot fi programate în C. Dar este necesar acest lucru? Să ne uităm de ce în cele mai multe cazuri viteza de reacție a microcontrolerelor nu este necesară. Muncitorii Arduino adesea le place să asambleze controlere pentru irigarea automată și includerea iluminatului pentru „iluminarea” plantelor. Un astfel de dispozitiv combinat va fi un ajutor excelent pentru cei cărora le place să crească ceva în apartamente sau sere.

Dar ce viteză a dispozitivului de control este nevoie aici? Acum 15-20 de ani nimeni nu l-ar folosi aici microcontroler - un designer amator ar fi gestionat cu succes o pereche de amplificatoare operaționale sau elemente logice. Dar dacă vorbim despre adecvarea microcontrolerelor discutate pentru aceste proiecte, atunci aici este complet indiferent după câte milisecunde lumina de fundal se aprinde sau pământul începe să irige apa.

Sistem de udare automat

Următorul proiect popular este stația meteo de acasă, și se dovedește că, în astfel de scopuri, capacitățile de bază ale arduin-urilor sunt suficiente pentru a citi informațiile de la senzori și a le afișa pe un afișaj de sinteză a caracterelor.

În exemple de management Banda LED RGB LED-urile obișnuite sau inteligente cu control „pixel-by-pixel” (un exemplu de astfel de bandă SMART și marcajul său pe care îl vedeți în figura de mai jos) au de asemenea suficiente resurse.

Bandă SMART

Dar unde ai nevoie de viteză și nu sunt potrivite pentru utilizarea limbajelor de programare simplificate precum Scratch sau javascript? Totul este foarte simplu:

  • În circuite de precizie;

  • În alarme și sisteme de securitate;

  • În instrumentele de măsurare de înaltă precizie, cu necesitatea de a lua rapid date de la ADC, inclusiv pentru osciloscopuri normale;

  • În dispozitivele cu o cerință pentru lucrul autonom pe termen lung în modul de repaus;

  • În cazurile în care trebuie să „transferați” cât mai multe funcții și coduri în microcontroler, dar aceasta nu a devenit o sarcină foarte urgentă recent în legătură cu reducerea costurilor majorității dispozitivelor de pe piață.

În majoritatea acestor sarcini, piedica este viteza și memoria.Pentru rezultate optime, în acest caz este mai rezonabil să nu folosiți nici măcar C / C ++, ci Assembler (ASM). Într-adevăr, dacă vizați astfel de proiecte, înseamnă că aveți o anumită cantitate de cunoștințe, ceea ce înseamnă că nu este nevoie.


Concluzia?

Microcontrolerele cu limbi simple sunt necesare acolo unde nu există cerințe stricte, cum ar fi viteza sau precizia de măsurare, dar chiar și în unele situații, acestea vor oferi precizie dispozitivelor nespecializate destinate utilizării amatorilor.



Espruino - un microcontroller puternic și un limbaj javascript simplu

Platforma Espruino este un set de software și hardware pentru programarea microcontrolerelor în limbajul javascript, include trei elemente:

1. Firmware pentru un microcontroller cu un interpret de limbaj JS.

2. Mediul de dezvoltare pentru Espruino Web IDE.

3. O placă cu un microcontroler cu firmware-ul în sine pentru a lucra direct cu Espruino.

Espruino

Ideea a fost dezvoltată și pusă în aplicare de Gordon Williams în 2013 și a strâns fonduri pentru aceasta folosind platforma de crowdfunding (Kickstarter). De fapt, esența dezvoltării a fost dezvoltarea firmware-ului (motorul) Espruino pentru încărcarea acestuia în microcontrolere. Este utilizat în principal pe microcontrolerele din familia STM32, cu arhitectură ARM-cortex. Dispozitive mai convenabile pentru funcționare, vom lua în considerare mai jos.

Microcontroler Espruino

Pentru a scrie programe pentru microcontrolerul în javascript, trebuie să instalați Espruino Web IDE. Acesta este un program sau o extensie pentru popularul browser Internet Google Chrome care se instalează într-un singur clic.

După ce faceți clic pe butonul „Instalare” din meniul „servicii”, va apărea o aplicație și puteți intra în acest meniu tastând în bara de adrese: chrome: // apps /

Când faceți clic pe pictogramă cu o ceașcă de cafea, se deschide mediul de dezvoltare, lucru notabil nu în browser, ci într-o fereastră separată.

Acest mediu este interesant atât pentru copii, cât și pentru utilizatorii începători, deoarece puteți introduce codul manual sau utilizați un editor grafic bazat pe limbajul de programare Scratch. Pentru a face acest lucru, faceți clic pe pictograma la care este indicată săgeata.

Espruino Web IDE

După aceea, partea dreaptă a ecranului, care cu codul, se va schimba la cealaltă reprezentare a acestuia:

Editor grafic

Interfața este intuitivă, în panoul central de sus în jos: deschideți un nou fișier, salvați schița, încărcați-l în microcontroler.


concluzie

Plăcile Espruino și altele asemenea sunt o placă de circuit imprimat cu atașamente necesare și un microcontroler, cu un interpret javascript, care prelucrează codul și își traduce comenzile în limbajul celor și a zerourilor direct la timpul de execuție. În forma clasică, programul pentru microcontrolere este încărcat în acesta din urmă, sub formă de cod de mașină.

Această abordare oferă performanțe în multe sarcini, cum ar fi Arduino.


Revizuirea liniei oficiale Espruino

Espruino original

Specificații ale acestui dispozitiv:

  • 54x41 mm (jumătate de card de credit);

  • STM32F103RCT6 CPU 32MHz 32MHz ARM Cortex M3

  • 256KB Flash, 48 KB RAM;

  • Port micro USB

  • Tensiunea de intrare este cuprinsă între 3,6 și 15 V;

  • Conector pentru baterie (JST PHR-2 2 Pin);

  • Slot încorporat pentru card SD;

  • Trei LED-uri (verde roșu și albastru);

  • Platforme pentru instalarea modulului Bluetooth HC-05;

  • Distanța dintre minele - 0,1 "(2,54 mm);

  • 44 de pini GPIO, dintre care 26 PWM (PWM), 16 ADC (ADC), 3 USARTs, 2 SPI, 2 I2C și 2 DAC (DAC);

  • Zona de pe placă poate fi utilizată pentru a conecta o serie de dispozitive, cum ar fi module Wi-Fi, servos, extensibile la 14 ieșiri cu un curent de până la 500 mA.

Placa de microcontroler Espruino

Aspectul tabloului și împărțirea condiționată a nodurilor sale în zone

Pentru mulți, consiliul poate părea neatrăgător și incomplet, dar aceasta a fost doar prima opțiune, apoi arată mai familiar și progresiv. Puck.JS este o placă în miniatură în carcasă, are la bord Bluetooth și un transmițător cu infraroșu.

Puck.JS

Conform informațiilor de pe site-ul oficial, specificațiile tehnice și caracteristicile sale sunt următoarele:

  • Bluetooth Low Energy;

  • Interpret javascript Espruino preinstalat;

  • Inima placii este nRF52832 SoC - 64MHz ARM Cortex M4, 64kB RAM, 512kB Flash;

  • Porturi GPIO de 8 x 0,1 "(inclusiv PWM (PWM), SPI, I2C, UART, intrare analogică);

  • 9 x porturi SMD GPIO (inclusiv PWM, SPI, I2C, UART);

  • Șaibă de carcasă din plastic ABS;

  • Capac din silicon cu cheie;

  • Magnetometru MAG3110 - contor de câmp magnetic cu trei axe;

  • Transmițător IR

  • Termometru, senzor de lumină și nivel de baterie;

  • Trei LED-uri (roșu, verde și albastru);

  • Programabil prin etichetă JS NFC.

  • Pinii pot percepe atingerea după capacitate (principiul funcționării ecranelor tactile ale smartphone-urilor);

  • Greutate 14 g;

  • Dimensiunile carcasei din plastic: diametru 36mm, grosime - 12,5 mm;

  • Dimensiuni tablă: diametru 29mm, grosime 9mm.

Demonstrație de lucru:

Următoarea placă este Wi-Fi Espruino, după cum îi spune și numele, caracteristica sa este un modul wireless integrat pentru Wi-Fi.

Wi-Fi Espruino

Caracteristicile sale tehnice:

  • Dimensiuni placă: 30x23 mm;

  • Placa are un conector Micro USB;

  • 21 GPIO: 8 intrări analogice, 20 PWM, 1 port serial, 3 SPI, 3 I2C;

  • Placa are 3 LED-uri, 2 dintre ele sunt programabile pentru utilizator, iar 1 afișează activitate Wi-Fi;

  • Porturile sunt compatibile cu Arduino din punct de vedere al tensiunii și suportă un semnal de 5 Volți;

  • 1 buton;

  • Construit pe un microcontroler STM32F411CEU6 32-bit 100MHz ARM Cortex M4 CPU;

  • Memorie: flash de 512kb, 128kb RAM;

  • Comunicare Wi-Fi cu ESP8266 (802.11 b / g / n);

  • RTC (ceas în timp real cu un generator extern).

  • Pe placă este instalat un stabilizator de 3,3 V cu un curent de până la 250 mA, o tensiune de alimentare de 3,5 până la 5 V este acceptată.

  • Consumul curent în modul de repaus este de până la 0,05 mA, ceea ce vă permite să lucrați 2,5 ani pe o baterie de 2500mAh (deși este mai mult un marketing, dar bateria în sine este mai probabil să se descarce mai repede).

Wi-Fi Espruino

Demonstrația consiliului:


Espruino Pico - microcontroller pentru javascript în format USB stick

O vom lua în considerare într-o secțiune separată, deoarece este cea mai frecventă în Rusia și în apropierea străinătății, poate mulți datorită companiei Amperka. Placa este convenabilă pentru instruirea și implementarea proiectelor finite, o placă în miniatură care este introdusă direct în portul USB al computerului pentru programare.

Espruino Pico

Specificații:

  • Dimensiuni: 33x15 - ținând cont de mufa USB;

  • 22 porturi GPIO, inclusiv: 9 intrări analogice, 21 PWM, 2 Seriale (porturi seriale), 3 SPI, 3 I2C;

  • Pinii GPIO acceptă niveluri de semnal de 5 V, ceea ce vă permite să combinați placa cu scuturi și dispozitive pentru arduino;

  • Mufa USB de tip A face parte din placă.

  • Două LED-uri și un buton programabil

  • Construit pe microcontroler STM32F401CDU6 CPU 32MHz 84MHz ARM Cortex M4

  • Memorie: 384kb flash, 96kb RAM

  • Un regulator de tensiune de 3,3 V 250mA este lipit pe placă și îi permite să fie alimentat între 3,5 și 16 V.

  • În modul de repaus, consumă curent până la 0,05 mA, iar producătorul de aici solicită 2,5 ani de funcționare de la 1 baterie la 2500mAh;

  • Tranzistor cu efect de câmp încorporat pentru controlul circuitelor cu curenți mari.

Acesta este cel mai mic tablou din linie. De-a lungul marginilor sale sunt porturi de I / O. În acest caz, stratul de metalizare este prezent atât pe găurile în sine, cât și de-a lungul capătului plăcii de circuit imprimat.

Espruino Pico

Pasul de contact este standard, acest lucru vă permite să lipiți linii PLS standard la acesta (acesta este numele pe care îl poartă).

Pls linie

Revizuirea detaliată a acestui consiliu:


Magazinul online Amperka și linia sa de plăci cu Javascript

Îți place sau nu, dar cel mai mare popularizator al programării non-tradiționale de microcontrolere, în special în javascript este site-ul Amperka. Au un canal YouTube unde învață cum să folosească și să își programeze produsele și arată, de asemenea, implementarea proiectelor folosind propria linie de plăci de la microcontrolere.

Linia de marcă a producătorului autohton este ISKRA JS, al cărui nume citește numele limbii discutate. Caracteristicile sale tehnice:

  • Microcontroller: STM32F405RG (ARM Cortex M4 pe 32 de biți);

  • Frecvența ceasului: 168 MHz;

  • Memorie flash: 1024 kB;

  • SRAM: 192 kB;

  • Tensiune operațională nominală: 3.3V;

  • Tensiunea de intrare recomandată: 7–15 V sau 3,6–12 V;

  • Curent maxim de la autobuzul de 5V: 1000 mA;

  • Curent maxim de la autobuzul 3.3V: 300 mA (inclusiv alimentarea microcontrolerului);

  • Curent maxim de la pin sau pin: 25 mA;

  • Curent total maxim de la ace sau pini: 240 mA;

  • Porturi I / O cu scop general: 26;

  • Porturi cu suport PWM: 22;

  • Porturi cu ADC: 12 (12 biți);

  • Porturi cu DAC: 2 (12 biți);

  • Interfețe hardware disponibile: 4 × UART / Serial, 3 × I²C / TWI, 2 × SPI;

  • Dimensiuni: 69 × 53 mm.

ISKRA JS

Din punct de vedere structural, placa este foarte aproape de Arduino Uno R3 - asta înseamnă că puteți utiliza cardurile de expansiune pentru aceasta.Ce lucruri interesante vedem în specificațiile tehnice? Să le comparăm cu tot arduino-ul tău preferat.

Comparație între Iskra JS și Arduino UNO r3

Ele sunt diferite în ceea ce privește memoria și capacitățile și fiecare își va găsi aplicația. Deși arduino în cele mai multe cazuri este de preferat, pentru că poate fi cumpărat pentru câteva sute de ruble, și o scânteie - nu.

Amperka vinde și microcontrolere și microcomputere precum Raspberry Pi, precum și kituri de instruire pentru lucrul cu ei. Există, de asemenea, o linie de carduri de expansiune pentru microcontrolere, acestea sunt așa-numitele module Troyka. Sunt fabricate în aceeași culoare albă ca restul produselor acestei companii.

Ca orice alte scuturi, produsele de la Amperka sunt conținute pe plăci de circuite imprimate ca unitate funcțională principală - un senzor, un dispozitiv de comutare, un maestru sau un actuator și atașamentele necesare la acesta. Am făcut deja o trecere în revistă a modulelor tipice pentru Arduino - Cele mai populare scuturi pentru Arduino, aici totul este prin analogie. Pe site-ul web sau în comunitatea Amperka, puteți găsi biblioteci pentru utilizarea cu module cu Iskra JS sau Arduino.

Printre cele trei module există:

  • joystick;

  • codificator;

  • Modul cu releu;

  • Carduri de extindere port (scut Troyka);

  • Accelerometre și alți senzori de poziție;

  • Senzori de lumină, proximitate, curent, temperatură, hală, zgomot, gaze, alcool și alte lucruri;

  • Receptoare pentru citirea etichetelor NFC;

  • Echipamente pentru managementul motorului (poduri H, drivere) și multe altele.

La vânzare există un kit interesant pentru începători „IODO”.

Un cuvânt separat despre un singur element din configurație este # constructorul. Acestea sunt piese pentru asamblarea carcasei și părți ale structurilor dvs., sunt conectate ca un designer al copilului și vă permit să realizați un aspect normal stabil, cu posibilitatea de a transporta în siguranță, precum și o soluție la cheie pentru utilizarea de zi cu zi.

Struktor

Apropo, vă puteți asambla trusa de pregătire, iar broșura de pregătire din kit este disponibilă pe site-ul oficial în format electronic și disponibilă gratuit.


concluzie

Pentru a programa microcontrolerele în javascript, trebuie doar să instalați shell-ul corespunzător pe eșantion. Cu toate acestea, nu fiecare copie are un firmware corespunzător, însă pentru dispozitivele populare pot fi găsite pe forumuri tematice. De exemplu, pe micro-computerul BBC Micro: bit, procesul de lucru cu mediul înconjurător este descris în următorul videoclip, iar instalarea se efectuează în doar câțiva pași.

Este nevoie de javascript pe microcontrolere? Absolut da! Pentru majoritatea sarcinilor amatorilor, do-it-yourself nu au nevoie de precizie sau viteză de răspuns, iar pentru o serie de sarcini profesionale, capacitățile acestor platforme sunt suficiente. O astfel de abordare a programării face posibilă începerea dezvoltării dispozitivelor fără practic studiul structurii și comenzilor microcontrolerului. Dar în metoda clasică de programare, a fost necesar să se țină seama de o serie de lucruri, cum ar fi diverse tipuri de variabile, adrese de memorie ș.a.

Consultați și la i.electricianexp.com:

  • Microcontrolere PIC pentru începători
  • Tipuri și aranjament de microcontrolere AVR
  • Ce bord Arduino să aleagă
  • Ce sunt afișările Nextion și cum să lucrați cu ele?
  • Conectarea și programarea Arduino pentru începători

  •