kategorier: Mikrokontrollkretser
Antall visninger: 6809
Kommentarer til artikkelen: 0
Programmerbare mikrokontrollere i JavaScript: hvilken du skal velge, funksjoner og muligheter
I vårt land, etter cirka 2010, fikk radiointeresserte hobbyen en ny vind med ankomsten av muligheten til å programmere mikrokontrollere på høye nivå programmeringsspråk, langt fjernet fra jern. Det første masseprosjektet var Arduino Board Family. Vi har gjentatte ganger undersøkt disse mikrokontrollene i artikler, men i dag skal vi snakke om mikrokontrollere som er programmert i javascript. Ja! Det samme språket som hovedsakelig ble brukt når jeg skrev WEB-sider.

Omfang eller er det behov for slike mikrokontrollere i det hele tatt?
Hvis vi vurderer fra elektronisk synspunkt på de enhetene som vi vil vurdere nedenfor, brukes standard mikrokontrollere. Forskjellen fra produktene fra produsenten er bare at de har et forhåndsinstallert lasterprogram, selv om du kaller det hva du vil, som lar deg utføre programkoden som er lastet ned til deg, og i noen tilfeller kommunisere med datamaskinen via USB, hvis den ikke er implementert i maskinvare.
Hva er mikrokontrollere for javascript for og andre ikke-tradisjonelle språk for? Det er debatter blant amatører og fagfolk innen utvikling av elektronikk i spesialiserte fora, der noen berømmer prosjekter som "Arduino", mens andre ydmyker og latterliggjør dem på alle mulige måter for enkelheten og abstraktheten til utvikleren fra de fleste problemer med jern.
Viktig: I denne delen av artikkelen sier vi: "Arduino", fordi det har blitt utgangspunktet for de fleste fans å designe elektroniske enheter.
Arduins kan programmeres i C. Men er dette nødvendig? La oss se på hvorfor reaksjonshastigheten til mikrokontrollere i de fleste tilfeller ikke er nødvendig. Arduino-arbeidere liker ofte å sette sammen kontrollere for automatisk vanning og inkludering av belysning for "belysning" av planter. En slik kombinert enhet vil være en utmerket hjelp for de som liker å dyrke noe i leiligheter eller drivhus.
Men hvilken hastighet på kontrollenheten trengs her? For 15-20 år siden var det ingen som ville bruke det her mikrokontroller - En amatørdesigner ville lykkes med et par driftsforsterkere eller logiske elementer. Men hvis vi snakker om egnetheten til de diskuterte mikrokontrollene for disse prosjektene, så er det her likegyldig etter hvor mange millisekunder bakgrunnsbelysningen slås på eller jorden begynner å vanne vannet.

Det neste populære prosjektet er hjemme-værstasjonen, og det viser seg at for slike formål de grunnleggende egenskapene til arduins er nok til å lese informasjon fra sensorer og vise dem på en karaktersyntetiserende skjerm.
I ledelseseksempler RGB LED-stripe vanlige eller smarte lysdioder med "piksel-for-piksel" -kontroll (et eksempel på et slikt SMART-bånd og merkingen du ser på figuren nedenfor) har også nok ressurser.

Men hvor trenger du hastighet og er ikke egnet til å bruke forenklede programmeringsspråk som Scratch eller javascript? Alt er veldig enkelt:
-
I presisjonskretser;
-
I alarmer og sikkerhetssystemer;
-
I høye presisjon måleinstrumenter med behov for å raskt ta data fra ADC, inkludert for normale oscilloskoper;
-
På enheter med krav til langsiktig autonomt arbeid i hvilemodus;
-
I tilfeller hvor du må "skyve" så mange funksjoner og kode som mulig inn i mikrokontrolleren, men dette har ikke blitt en veldig presserende oppgave i det siste i forbindelse med reduksjon i kostnadene for de fleste enheter på markedet.
I de fleste av disse oppgavene er snublesteinen hastighet og minne.For optimale resultater er det i dette tilfellet rimeligere å bruke ikke engang C / C ++, men Assembler (ASM). Hvis du sikter mot slike prosjekter, betyr det faktisk at du har en viss kunnskap, noe som betyr at det ikke er behov.
Konklusjonen?
Mikrokontrollere med enkle språk er nødvendige der det ikke er strenge krav som hastighet eller målenøyaktighet, men selv i noen situasjoner vil de gi nøyaktighet for ikke-spesialiserte enheter beregnet på amatørbruk.
Espruino - en kraftig mikrokontroller og et enkelt javascript-språk
Espruino-plattformen er et sett med programvare og maskinvare for programmering av mikrokontrollere på javascript-språket, den inneholder tre elementer:
1. Firmware for en mikrokontroller med en JS-tolk.
2. Utviklingsmiljø for Espruino Web IDE.
3. Et brett med en mikrokontroller med firmware selv for å jobbe direkte med Espruino.

Ideen ble utviklet og implementert av Gordon Williams i 2013, og han samlet inn midler til den ved hjelp av crowdfunding-plattformen (Kickstarter). Faktisk var essensen i utviklingen å utvikle Espruino firmware (motor) for å laste den inn i mikrokontrollere. Den brukes hovedsakelig på mikrokontrollere av STM32-familien, med ARM-cortex-arkitektur. Mer praktiske enheter for drift, vil vi vurdere nedenfor.

For å skrive programmer for mikrokontrolleren i javascript, må du installere Espruino Web IDE. Dette er et program eller utvidelse for den populære Google Chrome-nettleseren som installeres med bare ett klikk.
Etter å ha klikket på "Install" -knappen i "tjenester" -menyen, vises et program, og du kan komme inn i denne menyen ved å skrive inn adressefeltet: chrome: // apps /
Når du klikker på ikonet med en kopp kaffe, åpnes utviklingsmiljøet, som ikke er kjent i nettleseren, men i et eget vindu.
Dette miljøet er interessant for både barn og nybegynnere, fordi du kan skrive inn koden manuelt eller bruke den grafiske editoren, basert på Scratch-programmeringsspråket. For å gjøre dette, klikk på ikonet som pilen peker på.

Etter det vil høyre side av skjermen, som med koden, endres til den andre representasjonen:

Grensesnittet er intuitivt, i det sentrale panelet fra topp til bunn: åpne en ny fil, lagre skissen, last den inn i mikrokontrolleren.
konklusjon
Espruino-brett og lignende er et trykt kretskort med nødvendige vedlegg og en mikrokontroller, med en javascript-tolk, som behandler koden og oversetter kommandoene til språket til disse og nuller direkte ved kjøretid. Mens det er i den klassiske formen, lastes programmet for mikrokontrollere inn i sistnevnte allerede i form av maskinkode.
Denne tilnærmingen gir ytelse i mange oppgaver, som Arduino.
Gjennomgang av den offisielle Espruino-linjen

Spesifikasjoner for denne enheten:
-
54x41 mm (et halvt kredittkort);
-
STM32F103RCT6 32-bit 72MHz ARM Cortex M3 CPU
-
256 kB flash, 48 kb RAM;
-
Micro USB-port
-
Inngangsspenning varierer fra 3,6 til 15V;
-
Batterikontakt (JST PHR-2 2 Pin);
-
Innebygd SD-kortspor;
-
Tre lysdioder (rød grønn og blå);
-
Plattformer for installasjon av HC-05 Bluetooth-modul;
-
Avstanden mellom gruvene - 2,54 mm (0,1 ");
-
44 GPIO-pinner, hvorav 26 PWM (PWM), 16 ADC (ADC), 3 USARTs, 2 SPI, 2 I2C og 2 DACs (DAC);
-
Området på brettet kan brukes til å koble til en rekke enheter, for eksempel Wi-Fi-moduler, servoer, som kan utvides til 14 utganger med en strøm på opptil 500 mA.

Utseendet til styret og den betingede inndelingen av knutepunktene i soner
For mange kan styret virke lite attraktivt og ufullstendig, men dette var bare det første alternativet, da ser de mer kjent og progressiv ut. Puck.JS er et miniatyrkort i saken, det har ombord Bluetooth og en infrarød sender.

I følge informasjon fra det offisielle nettstedet, er det tekniske spesifikasjoner og funksjoner som følger:
-
Bluetooth lav energi;
-
Forhåndsinstallert Espruino javascript-tolk;
-
Hjertet til brettet er nRF52832 SoC - 64MHz ARM Cortex M4, 64 kB RAM, 512 kB Flash;
-
8 x 0,1 "GPIO-porter (inkludert PWM (PWM), SPI, I2C, UART, analog inngang);
-
9 x SMD GPIO-porter (inkludert PWM, SPI, I2C, UART);
-
Husvaskemaskin laget av ABS-plast;
-
Silikon deksel med nøkkel;
-
MAG3110 Magnetometer - tre-akset magnetfeltmåler;
-
IR-sender
-
Termometer, lyssensor og batterinivå;
-
Tre lysdioder (rød, grønn og blå);
-
Programmerbar via JS NFC-tag.
-
Pins kan oppfatte berøring etter kapasitet (prinsippet om drift av berøringsskjermer på smarttelefoner);
-
Vekt 14 g;
-
Størrelser på plastkassen: diameter 36 mm, tykkelse - 12,5 mm;
-
Bordmål: diameter 29mm, tykkelse 9mm.
Demonstrasjon av arbeid:
Det neste brettet er Espruino Wi-Fi, som navnet tilsier, funksjonen er en innebygd trådløs modul for Wi-Fi.

Dens tekniske egenskaper:
-
Bordmål: 30x23 mm;
-
Brettet har en Micro USB-kontakt;
-
21 GPIO: 8 analoge innganger, 20 PWM, 1 serieport, 3 SPI, 3 I2C;
-
Brettet har 3 lysdioder, 2 av dem kan programmeres av brukeren, og 1 viser Wi-Fi-aktivitet;
-
Portene er kompatible med Arduino når det gjelder spenning og støtter et 5 Volt signal;
-
1 knapp;
-
Bygget på en mikrokontroller STM32F411CEU6 32-bit 100MHz ARM Cortex M4 CPU;
-
Minne: 512 kb flash, 128 kb RAM;
-
Wi-Fi-kommunikasjon med ESP8266 (802.11 b / g / n);
-
RTC (sanntidsklokke med en ekstern generator).
-
En 3,3V stabilisator med strøm opp til 250 mA er installert på tavlen, en forsyningsspenning på 3,5 til 5 V støttes.
-
Det nåværende forbruket i hvilemodus er opp til 0,05 mA, noe som gjør at du kan jobbe 2,5 år på et 2500 mAh-batteri (selv om dette er mer markedsføring, men det er mer sannsynlig at selve batteriet blir utladet raskere).

Styredemonstrasjon:
Espruino Pico - mikrokontroller for javascript i USB-pinne-format
Vi vil vurdere det i et eget avsnitt, siden det er mest vanlig i Russland og i utlandet, kanskje mange takk til Amperka-selskapet. Brettet er praktisk for trening og implementering av ferdige prosjekter, et miniatyrkort som settes direkte inn i USB-porten på datamaskinen din for programmering.

spesifikasjoner:
-
Mål: 33x15 - under hensyntagen til USB-pluggen;
-
22 GPIO-porter, inkludert: 9 analoge innganger, 21 PWM, 2 serie (serielle porter), 3 SPI, 3 I2C;
-
GPIO-pinner støtter 5 V-signalnivåer, som lar deg kombinere brettet med skjold og enheter for arduino;
-
USB Type A-pluggen er en del av brettet.
-
To lysdioder og en programmerbar knapp
-
Bygget på en STM32F401CDU6 32-bit 84MHz ARM Cortex M4 CPU-mikrokontroller
-
Minne: 384 kb flash, 96 kb RAM
-
En spenningsregulator på 3,3 V 250mA er loddet på brettet og lar den drives fra 3,5 til 16 V.
-
I hvilemodus bruker den strøm opp til 0,05 mA, og produsenten hevder her 2,5 års drift fra 1 batteri ved 2500 mAh;
-
Innebygd felteffekttransistor for styring av høystrømskretser.
Dette er det minste brettet på linjen. Langs kantene er I / O-porter. I dette tilfellet er metalliseringslaget tilstede både på hullene og langs enden av kretskortet.

Kontakthøyden er standard, dette lar deg lodde vanlige PLS-linjer til den (dette er navnet de har).

Detaljert gjennomgang av dette styret:
Amperka nettbutikk og brettet med Javascript
Liker det eller ikke, men Amperka-siden er den største popularisereren av ikke-tradisjonell programmering av mikrokontrollere, spesielt i javascript. De har en YouTube-kanal der de lærer hvordan man bruker og programmerer produktene sine, og viser også gjennomføringen av prosjekter ved å bruke sin egen linje av brett fra mikrokontrollere.
Den merkede linjen til den innenlandske produsenten er ISKRA JS, hvis navn leser navnet på språket som blir diskutert. Dens tekniske egenskaper:
-
Mikrokontroller: STM32F405RG (32-bit ARM Cortex M4);
-
Klokkefrekvens: 168 MHz;
-
Flash-minne: 1024 kB;
-
SRAM: 192 kB;
-
Nominell driftsspenning: 3,3V;
-
Anbefalt inngangsspenning: 7–15 V eller 3,6–12 V;
-
Maksimal strøm fra 5V-bussen: 1000 mA;
-
Maksimal strøm fra 3,3V-bussen: 300 mA (inkludert strømforsyning til mikrokontroller);
-
Maksimal strøm fra stift eller stift: 25 mA;
-
Maksimal total strøm fra pinner eller pinner: 240 mA;
-
Generelle formål I / O-porter: 26;
-
Porter med PWM-støtte: 22;
-
ADC-porter: 12 (12 bit);
-
Porter med DAC: 2 (12 bit);
-
Tilgjengelige maskinvaregrensesnitt: 4 × UART / Serial, 3 × I²C / TWI, 2 × SPI;
-
Mål: 69 × 53 mm.

Strukturelt sett er brettet veldig nær Arduino Uno R3 - dette betyr at du kan bruke utvidelseskortene til det.Hvilke interessante ting ser vi i de tekniske spesifikasjonene? La oss sammenligne dem med alle favorittarduinoene dine.

De er forskjellige med tanke på minne og evner, og hver finner sin applikasjon. Selv om arduino i de fleste tilfeller er å foretrekke, fordi det kan kjøpes for et par hundre rubler, og en gnist - nei.
Amperka selger også mikrokontrollere og mikrodatamaskiner som Raspberry Pi, samt treningssett for å jobbe med dem. Det finnes også en rekke utvidelseskort for mikrokontrollere, dette er de såkalte Troyka-modulene. De er laget i den samme hvite fargen som resten av produktene til dette selskapet.
Som alle andre skjold, inneholder produkter fra Amperka kretskort som hovedfunksjonell enhet - en sensor, en koblingsenhet, en master eller aktuator og de nødvendige festene til den. Vi har allerede gjort en grov gjennomgang av typiske moduler for Arduino - De mest populære skjoldene for Arduino, her er alt analogt. På nettstedet eller i Amperka-samfunnet kan du finne biblioteker for bruk med moduler med Iskra JS eller Arduino.
Blant de tre modulene er det:
-
joystick;
-
encoder;
-
Modul med stafett;
-
Port utvidelseskort (Troyka-skjold);
-
Akselerometre og andre posisjonssensorer;
-
Sensorer for lys, nærhet, strøm, temperatur, hall, støy, gass, alkohol og andre;
-
Mottakere for å lese NFC-koder;
-
Utstyr for motorstyring (H-broer, drivere) og mer.
Til salgs er det et interessant sett for nybegynnere "IODO".
Et eget ord om et enkelt element i konfigurasjonen er # konstruktøren. Dette er deler for montering av etuier og for å dele deler av strukturene dine, de er koblet til som et barns designer og lar deg lage et normalt stabilt oppsett med mulighet for sikker bæring, samt en nøkkelferdig løsning til daglig bruk.

For øvrig kan du sette sammen treningssettet ditt, og treningsheftet fra settet er tilgjengelig på den offisielle hjemmesiden i elektronisk form og fritt tilgjengelig.
konklusjon
For å programmere mikrokontrollere i javascript, trenger du bare å installere riktig skall på prøven. Imidlertid har ikke hver kopi en tilsvarende firmware, men for populære enheter kan du finne på tematiske fora. For eksempel, på BBC Micro: bit-mikrodatamaskin, er prosessen med å jobbe med miljøet avbildet i følgende video, og installasjonen utføres på bare noen få trinn.
Trengs javascript på mikrokontrollere? Absolutt ja! For de fleste amatøroppgaver trenger ikke gjør-det-selv-arbeidere nøyaktighet eller responshastighet, og for en rekke profesjonelle oppgaver er mulighetene til slike plattformer nok. En slik tilnærming til programmering gjør det mulig å begynne å utvikle enheter uten praktisk talt å studere strukturen og kommandoene til mikrokontrolleren. Men i den klassiske metoden for programmering var det nødvendig å ta hensyn til en rekke ting, for eksempel forskjellige typer variabler, minneadresser og så videre.
Se også på elektrohomepro.com
: