kategorier: Mikrokontrollkretsar
Antal visningar: 6809
Kommentarer till artikeln: 0

Programmerbara mikrokontroller i JavaScript: vilken man ska välja, funktioner och funktioner

 

I vårt land, efter cirka 2010, fick radioentusiasternas hobby en andra vind med tillkomsten av förmågan att programmera mikrokontroller på högnivå programmeringsspråk, långt borta från järn. Det första massprojektet var Arduino Board Family. Vi har upprepade gånger granskat dessa mikrokontroller i artiklar, men idag kommer vi att prata om mikrokontroller som är programmerade i javascript. Yes! Samma språk som användes främst när man skrev WEB-sidor.

Mikrokontroller programmerbar i javascript

Omfattning eller behövs sådana mikrokontroller alls?

Om vi ​​betraktar ur elektronikens synvinkel i de enheter som vi kommer att överväga nedan används standardmikrokontroller. Skillnaden från produkterna från tillverkaren är bara att de har ett förinstallerat loader-program, även om det kallas vad du vill, vilket gör att du kan köra programkoden som laddats ner till dig och i vissa fall kommunicera med datorn via USB om den inte är implementerad i hårdvara.

Vad är mikrokontroller för javascript för och andra icke-traditionella språk för? Det finns debatter bland amatörer och proffs inom utvecklingen av elektronik i specialiserade forum, där vissa berömmer projekt som "Arduino", medan andra förödmjukar och förlöjligar dem på alla möjliga sätt för enkelhet och abstrakthet för utvecklaren från de flesta problem med järn.

Viktigt: I den här delen av artikeln säger vi: "Arduino", eftersom det har blivit utgångspunkten för de flesta älskare av elektroniska apparater.

Arduins kan programmeras i C. Men är detta nödvändigt? Låt oss titta på varför reaktionshastigheten för mikrokontroller i de flesta fall inte behövs. Arduino-arbetare gillar ofta att montera styrenheter för automatisk bevattning och inkludering av belysning för "belysning" av växter. En sådan kombinerad enhet kommer att vara en utmärkt hjälp för dem som gillar att odla något i lägenheter eller växthus.

Men vilken hastighet på styrenheten behövs här? För 15-20 år sedan skulle ingen använda det här mikrokontroller - En amatördesigner skulle ha lyckats hantera ett par operativa förstärkare eller logiska element. Men om vi talar om de diskuterade mikrokontrollernas lämplighet för dessa projekt, är det här likgiltigt efter hur många millisekunder bakgrundsbelysningen tänds eller jorden börjar bevattna vattnet.

Automatisk vattningssystem

Nästa populära projekt är hemmaväderstationen, och det visar sig att för sådana ändamål är de grundläggande kapaciteterna för arduinerna tillräckliga för att läsa information från sensorerna och visa dem på en karaktärssyntesskärm.

I ledningsexempel RGB LED-remsa vanliga eller smarta lysdioder med "pixel-för-pixel" -kontroll (ett exempel på ett sådant SMART-band och dess märkning som du ser i figuren nedan) har också tillräckligt med resurser.

SMART tejp

Men var behöver du hastighet och passar inte för att använda förenklade programmeringsspråk som Scratch eller javascript? Allt är väldigt enkelt:

  • I precisionskretsar;

  • Vid larm och säkerhetssystem;

  • I mätinstrument med hög precision med behov av att snabbt ta data från ADC, inklusive för normala oscilloskop;

  • På enheter med krav på långsiktigt autonomt arbete i viloläge;

  • I de fall du behöver "skjuta" så många funktioner och kod som möjligt till mikrokontrollern, men detta har inte blivit en mycket brådskande uppgift nyligen i samband med kostnadsminskningen för de flesta enheter på marknaden.

I de flesta av dessa uppgifter är snubblan hastighet och minne.För optimalt resultat är det i detta fall rimligare att inte ens använda C / C ++, utan Assembler (ASM). Om du siktar på sådana projekt betyder det faktiskt att du har en viss kunskap, vilket betyder att det inte finns något behov.


Slutsatsen?

Mikrokontroller med enkla språk behövs där det inte finns några stränga krav som hastighet eller mätnoggrannhet, men även i vissa situationer kommer de att ge noggrannhet för icke-specialiserade enheter avsedda för amatörsbruk.



Espruino - en kraftfull mikrokontroller och ett enkelt javascript-språk

Espruino-plattformen är en uppsättning programvara och hårdvara för programmering av mikrokontroller på javascript-språket, den innehåller tre element:

1. Firmware för en mikrokontroller med en JS-språktolk.

2. Utvecklingsmiljö för Espruino Web IDE.

3. Ett kort med en mikrokontroller med själva firmware för att arbeta direkt med Espruino.

Espruino

Idén utvecklades och implementerades av Gordon Williams 2013, och han samlade in pengar för den med hjälp av crowdfunding-plattformen (Kickstarter). I själva verket var kärnan i utvecklingen att utveckla Espruino firmware (motor) för att ladda den till mikrokontroller. Det används främst på mikrokontroller från STM32-familjen med ARM-cortex-arkitektur. Mer praktiska enheter för drift kommer vi att överväga nedan.

Espruino mikrokontroller

För att skriva program för mikrokontrollern i javascript måste du installera Espruino Web IDE. Detta är ett program eller tillägg för den populära webbläsaren Google Chrome som installeras med bara ett klick.

När du har klickat på knappen "Installera" i menyn "tjänster" visas ett program och du kan komma in i den här menyn genom att skriva i adressfältet: chrome: // apps /

När du klickar på ikonen med en kopp kaffe öppnas utvecklingsmiljön, vilket inte är anmärkningsvärt inte i webbläsaren utan i ett separat fönster.

Denna miljö är intressant för både barn och nybörjare, eftersom du kan ange koden manuellt eller använda en grafisk redigerare baserad på Scratch-programmeringsspråket. För att göra detta, klicka på ikonen som pilen pekar på.

Espruino Web IDE

Efter det kommer höger sida av skärmen, som med koden, att ändras till dess andra representation:

Grafisk redaktör

Gränssnittet är intuitivt i den centrala panelen från topp till botten: öppna en ny fil, spara skissen, ladda den i mikrokontrollern.


slutsats

Espruino-kort och liknande är ett tryckt kretskort med nödvändiga bilagor och en mikrokontroller, med en javascript-tolk, som bearbetar koden och översätter sina kommandon till språket för nollor och nollor direkt vid körning. Medan det är i den klassiska formen, laddas programmet för mikrokontroller in i det senare redan i form av maskinkod.

Denna strategi ger prestanda i många uppgifter, som Arduino.


Granskning av den officiella Espruino-linjen

Original Espruino

Specifikationer för den här enheten:

  • 54x41 mm (ett halvt kreditkort);

  • STM32F103RCT6 32-bitars 72MHz ARM Cortex M3 CPU

  • 256 kB flash, 48 kb RAM;

  • Micro USB-port

  • Ingångsspänning från 3,6 till 15 V;

  • Batterikontakt (JST PHR-2 2 Pin);

  • Inbyggt SD-kortplats;

  • Tre lysdioder (rödgrön och blå);

  • Plattformar för installation av HC-05 Bluetooth-modulen;

  • Avståndet mellan gruvorna - 0,1 "(2,54 mm);

  • 44 GPIO-stift, varav 26 PWM (PWM), 16 ADC (ADC), 3 USARTs, 2 SPI, 2 I2C och 2 DAC (DAC);

  • Området på kortet kan användas för att ansluta ett antal enheter, till exempel Wi-Fi-moduler, servon, utbyggbara till 14 utgångar med en ström på upp till 500 mA.

Espruino mikrokontrollerkort

Styrelsens utseende och den villkorade uppdelningen av dess noder i zoner

För många kan styrelsen verka oattraktiv och ofullständig, men detta var bara dess första alternativ, då ser de mer bekanta ut och progressiva. Puck.JS är en miniatyrbräda i fallet, den har ombord Bluetooth och en infraröd sändare.

Puck.JS

Enligt information från den officiella sajten är dess tekniska specifikationer och funktioner följande:

  • Bluetooth Low Energy;

  • Förinstallerad Espruino javascript-tolk;

  • Kortets hjärta är nRF52832 SoC - 64MHz ARM Cortex M4, 64 kB RAM, 512 kB Flash;

  • 8 x 0,1 "GPIO-portar (inklusive PWM (PWM), SPI, I2C, UART, analog ingång);

  • 9 x SMD GPIO-portar (inklusive PWM, SPI, I2C, UART);

  • Husbricka tillverkad av ABS-plast;

  • Silikonskydd med nyckel;

  • MAG3110 Magnetometer - magnetisk fältmätare med tre axlar;

  • IR-sändare

  • Termometer, ljusgivare och batterinivå;

  • Tre lysdioder (röd, grön och blå);

  • Programmerbar via JS NFC-tagg.

  • Stift kan uppleva beröring efter kapacitet (principen om drift av pekskärmar på smartphones);

  • Vikt 14 g;

  • Storlekar på plasthöljet: diameter 36 mm, tjocklek - 12,5 mm;

  • Kortets mått: diameter 29 mm, tjocklek 9 mm.

Demonstration av arbete:

Nästa styrelse är Espruino Wi-Fi, som namnet antyder, dess funktion är en inbyggd trådlös modul för Wi-Fi.

Espruino Wi-Fi

Dess tekniska egenskaper:

  • Kortets mått: 30x23 mm;

  • Kortet har ett Micro USB-kontakt;

  • 21 GPIO: 8 analoga ingångar, 20 PWM, 1 serieport, 3 SPI, 3 I2C;

  • Brädet har 3 lysdioder, varav två är programmerbara för användare och 1 visar Wi-Fi-aktivitet;

  • Portarna är kompatibla med Arduino när det gäller spänning och stöder en 5 Volt signal;

  • 1 knapp;

  • Byggt på en mikrokontroller STM32F411CEU6 32-bitars 100MHz ARM Cortex M4 CPU;

  • Minne: 512 kb blixt, 128 kb RAM;

  • Wi-Fi-kommunikation med ESP8266 (802.11 b / g / n);

  • RTC (realtidsklocka med en extern generator).

  • En 3,3V stabilisator med en ström på upp till 250 mA är installerad på kortet, en matningsspänning på 3,5 till 5 V stöds.

  • Den nuvarande förbrukningen i viloläge är upp till 0,05 mA, vilket gör att du kan arbeta 2,5 år från ett 2500mAh-batteri (även om det här är mer av en marknadsföring, men batteriet i sig är mer troligt att ladda ur snabbare).

Espruino Wi-Fi

Styrelsens demonstration:


Espruino Pico - mikrokontroller för javascript i USB-stickformat

Vi kommer att överväga det i ett separat avsnitt, eftersom det är vanligast i Ryssland och i närheten av utlandet, kanske många tack vare Amperka-företaget. Brädet är bekvämt för utbildning och implementering av färdiga projekt, en miniatyrbräda som sätts direkt in i din USB-port för din programmering.

Espruino Pico

specifikationer:

  • Mått: 33x15 - med hänsyn till USB-kontakten;

  • 22 GPIO-portar, inklusive: 9 analoga ingångar, 21 PWM, 2 seriella (seriella portar), 3 SPI, 3 I2C;

  • GPIO-stift stöder 5 V-signalnivåer, vilket gör att du kan kombinera kortet med sköldar och enheter för arduino;

  • USB-typ A-kontakten är en del av kortet.

  • Två lysdioder och en programmerbar knapp

  • Byggt på en STM32F401CDU6 32-bitars 84MHz ARM Cortex M4 CPU-mikrokontroller

  • Minne: 384 kb blixt, 96 kb RAM

  • En spänningsregulator på 3,3 V 250mA är lödd på kortet och gör att den kan drivas från 3,5 till 16 V.

  • I viloläge förbrukar den ström upp till 0,05 mA, och tillverkaren hävdar här 2,5 års drift från 1 batteri vid 2500 mAh;

  • Inbyggd fälteffekttransistor för styrning av högströmskretsar.

Detta är den minsta brädan i linjen. Längs kanterna finns I / O-portar. I detta fall finns metalliseringsskiktet både på själva hålen och längs änden av det tryckta kretskortet.

Espruino Pico

Kontaktsteget är standard, detta gör att du kan lodda vanliga PLS-linjer till den (detta är namnet de bär).

Pls linje

Detaljerad granskning av detta styrelse:


Amperka onlinebutik och dess kortsortiment med Javascript

Gilla det eller inte, men den största populariseraren av icke-traditionell programmering av mikrokontroller, särskilt i javascript är Amperka-webbplatsen. De har en kanal på YouTube där de lär sig att använda och programmera sina produkter, och visar också genomförandet av projekt med hjälp av sin egen rad av mikrokontroller.

Den inhemska tillverkarens märkeslinje är ISKRA JS, vars namn läser namnet på det språk som diskuteras. Dess tekniska egenskaper:

  • Mikrokontroller: STM32F405RG (32-bitars ARM Cortex M4);

  • Klockfrekvens: 168 MHz;

  • Flashminne: 1024 kB;

  • SRAM: 192 kB;

  • Nominell driftsspänning: 3,3V;

  • Rekommenderad ingångsspänning: 7–15 V eller 3,6–12 V;

  • Maximal ström från 5V-bussen: 1000 mA;

  • Maximal ström från 3,3V-bussen: 300 mA (inklusive strömförsörjning för mikrokontroller);

  • Maximal ström från stift eller stift: 25 mA;

  • Maximal total ström från stift eller stift: 240 mA;

  • Allmänna I / O-portar: 26;

  • Portar med PWM-stöd: 22;

  • ADC-portar: 12 (12 bitar);

  • Portar med DAC: 2 (12 bitar);

  • Tillgängliga hårdvarugränssnitt: 4 × UART / Seriell, 3 × I²C / TWI, 2 × SPI;

  • Mått: 69 × 53 mm.

ISKRA JS

Strukturellt sett ligger brädet mycket nära Arduino Uno R3 - det betyder att du kan använda expansionskorten för det.Vilka intressanta saker ser vi i de tekniska specifikationerna? Låt oss jämföra dem med alla dina favorit arduino.

Jämförelse av Iskra JS och Arduino UNO r3

De är olika vad gäller minne och kapacitet, och var och en kommer att hitta sin applikation. Även om arduino i de flesta fall är att föredra, eftersom det kan köpas för ett par hundra rubel, men en gnista är det inte.

Amperka säljer också mikrokontroller och mikrodatorer som Raspberry Pi, samt träningssatser för att arbeta med dem. Det finns också en rad utvidgningskort för mikrokontroller, det är de så kallade Troyka-modulerna. De är tillverkade i samma vita färg som resten av produkterna i detta företag.

Liksom alla andra sköldar innehåller produkter från Amperka tryckta kretskort som huvudfunktionsenhet - en sensor, en omkopplarenhet, en master eller ställdon och de nödvändiga fästena på det. Vi har redan gjort en grov granskning av typiska moduler för Arduino - De mest populära sköldarna för Arduino, här är allt analogt. På webbplatsen eller i Amperka-samhället kan du hitta bibliotek för användning med moduler med Iskra JS eller Arduino.

Bland de tre modulerna finns:

  • joystick;

  • kodare;

  • Modul med relä;

  • Port-utvidgningskort (Troyka-sköld);

  • Accelerometrar och andra positionssensorer;

  • Ljusgivare, närhet, ström, temperatur, hall, buller, gas, alkohol och andra saker;

  • Mottagare för att läsa NFC-taggar;

  • Utrustning för motorhantering (H-broar, förare) och mer.

Till salu finns det ett intressant kit för nybörjare "IODO".

Ett separat ord om ett enda objekt i konfigurationen är # konstruktören. Det här är delar för montering av fodral och bärande delar av dina strukturer, de är anslutna som en barns designer och gör att du kan skapa en normalt stabil layout med möjlighet till säker bärning, samt en nyckelfärdig lösning för vardagsbruk.

struktör

Förresten kan du sätta ihop ditt träningssats, och träningsbroschyren från satsen är tillgänglig på den officiella webbplatsen i elektronisk form och fritt tillgängligt.


slutsats

För att programmera mikrokontroller i javascript behöver du bara installera rätt skal på ditt prov. Men inte alla kopior har motsvarande firmware, men för populära enheter finns dock tematiska forum. Till exempel på BBC Micro: bit-mikrodatorn visas processen för att arbeta med miljön i följande video, och installationen utförs i bara några steg.

Behövs javascript på mikrokontroller? Absolut ja! För de flesta amatöruppgifter behöver gör-det-själv-spelare inte noggrannhet eller svarhastighet, och för ett antal professionella uppgifter räcker det med sådana plattformar. En sådan inställning till programmering gör det möjligt att börja utveckla enheter med praktiskt taget ingen studie av strukturen och kommandona för mikrokontrollern. Men i den klassiska metoden för programmering var det nödvändigt att ta hänsyn till ett antal saker, såsom olika typer av variabler, minnesadresser och så vidare.

Se även på elektrohomepro.com:

  • PIC-mikrokontroller för nybörjare
  • Typer och arrangemang av AVR-mikrokontroller
  • Vilket Arduino-bräde att välja
  • Vad är Nextion-skärmar och hur man arbetar med dem?
  • Ansluta och programmera Arduino för nybörjare

  •