kategorier: Microcontroller kredsløb
Antal visninger: 6809
Kommentarer til artiklen: 0

Programmerbare mikrokontrollere i JavaScript: hvilken man skal vælge, funktioner og muligheder

 

Efter 2010, i vores land, fik amatørradiohobbyen en anden vind med ankomsten af ​​muligheden for at programmere mikrokontrollere i programmeringssprog på højt niveau, langt væk fra jernet. Det første masseprojekt var Arduino Board Family. Vi har gentagne gange undersøgt disse mikrokontrollere i artikler, men i dag vil vi tale om mikrokontrollere, der er programmeret i javascript. Ja! Det samme sprog, der hovedsageligt blev brugt ved skrivning af WEB-sider.

Mikrocontroller programmerbar i javascript

Omfang eller er der behov for sådanne mikrokontrollere overhovedet?

Hvis vi overvejer fra elektronisk synspunkt på de enheder, som vi vil overveje nedenfor, bruges standardmikrokontrollere. Forskellen fra produkterne fra producenten er kun, at de har et forudinstalleret loader-program, selvom kalder det, hvad du vil, hvilket giver dig mulighed for at udføre den programkode, der er downloadet til dig, og i nogle tilfælde kommunikere med computeren via USB, hvis den ikke er implementeret i hardware.

Hvad er mikrokontrollere til javascript til og andre ikke-traditionelle sprog til? Der er debatter blandt amatører og fagfolk inden for udvikling af elektronik i specialiserede fora, hvor nogle roser projekter som "Arduino", mens andre ydmyger og latterliggør dem på enhver mulig måde for enkeltheden og abstraktion af udvikleren fra de fleste problemer med jern.

Vigtigt: I denne del af artiklen siger vi: “Arduino”, fordi det er blevet udgangspunktet for de fleste fans at designe elektroniske enheder.

Arduiner kan programmeres i C. Men er det nødvendigt? Lad os se på, hvorfor mikrokontrollers reaktionshastighed i de fleste tilfælde ikke er nødvendig. Arduino-arbejdere kan ofte lide at samle controllere til automatisk kunstvanding og inkludering af belysning til "belysning" af planter. En sådan kombineret enhed vil være en fremragende hjælp for dem, der kan lide at dyrke noget i lejligheder eller drivhuse.

Men hvilken hastighed af kontrolenheden er nødvendig her? For 15-20 år siden ville ingen bruge det her mikrocontroller - En amatørdesigner ville med succes have styret et par operationelle forstærkere eller logiske elementer. Men hvis vi taler om de diskuterede mikrokontrollers egnethed til disse projekter, så er det her ligeglad efter hvor mange millisekunder baggrundslyset tændes, eller jorden begynder at skylle vandet.

Automatisk vandingssystem

Det næste populære projekt er hjemmevejrstationen, og det viser sig, at til sådanne formål er de grundlæggende kapaciteter hos arduins nok til at læse information fra sensorer og vise dem på en tegnesyntetiserende skærm.

I ledelseseksempler RGB LED strip almindelige eller smarte LED'er med "pixel-for-pixel" -kontrol (et eksempel på et sådant SMART-bånd og dets markering, som du ser i figuren nedenfor) har også nok ressourcer.

SMART tape

Men hvor har du brug for hastighed og er ikke egnet til at bruge forenklede programmeringssprog som Scratch eller javascript? Alt er meget enkelt:

  • I præcisionskredsløb;

  • I alarmer og sikkerhedssystemer;

  • I høj præcision måleinstrumenter med behov for hurtigt at tage data fra ADC, inklusive til normale oscilloskoper;

  • I enheder med et krav til langsigtet autonomt arbejde i dvaletilstand;

  • I tilfælde, hvor du er nødt til at "skubbe" så mange funktioner og kode som muligt ind i mikrokontrolleren, men dette er ikke blevet en meget presserende opgave for nylig i forbindelse med reduktion i omkostningerne for de fleste enheder på markedet.

I de fleste af disse opgaver er snublesten hastighed og hukommelse.For optimale resultater er det i dette tilfælde mere rimeligt at bruge ikke engang C / C ++, men Assembler (ASM). Hvis du sigter mod sådanne projekter, betyder det faktisk, at du har en vis mængde viden, hvilket betyder, at der ikke er behov for det.


Konklusionen?

Mikrokontrollere med enkle sprog er nødvendige, hvor der ikke er nogen strenge krav, såsom hastighed eller målenøjagtighed, men selv i nogle situationer giver de nøjagtighed for ikke-specialiserede enheder beregnet til amatørbrug.



Espruino - en kraftfuld mikrocontroller og et simpelt javascript-sprog

Espruino-platformen er et sæt software og hardware til programmering af mikrokontrollere på javascript-sproget, den indeholder tre elementer:

1. Firmware til en mikrocontroller med en JS-sprogtolk.

2. Udviklingsmiljø for Espruino Web IDE.

3. Et bord med en mikrocontroller med firmwaren selv til at arbejde direkte med Espruino.

Espruino

Ideen blev udviklet og implementeret af Gordon Williams i 2013, og han skaffede penge til den ved hjælp af crowdfunding-platformen (Kickstarter). Faktisk var essensen af ​​udviklingen at udvikle Espruino firmware (motor) til at indlæse den i mikrokontrollere. Det bruges hovedsageligt på mikrokontrollere af STM32-familien med ARM-cortex-arkitektur. Mere praktiske enheder til betjening vil vi overveje nedenfor.

Espruino mikrocontroller

For at skrive programmer til mikrokontrolleren i javascript skal du installere Espruino Web IDE. Dette er et program eller en udvidelse til den populære Google Chrome internetbrowser, der installeres med et enkelt klik.

Når du har klikket på knappen "Installer" i menuen "tjenester", vises et program, og du kan komme ind i denne menu ved at skrive i adresselinjen: chrome: // apps /

Når du klikker på ikonet med en kop kaffe, åbnes udviklingsmiljøet, hvilket ikke kan bemærkes ikke i browseren, men i et separat vindue.

Dette miljø er interessant for både børn og begyndere, fordi du kan indtaste koden manuelt eller bruge en grafisk editor, der er baseret på Scratch-programmeringssprog. For at gøre dette skal du klikke på det ikon, som pilen peger på.

Espruino Web IDE

Derefter skifter højre side af skærmen, som med koden, til en anden repræsentation af den:

Grafisk redaktør

Grænsefladen er intuitiv i det centrale panel fra top til bund: åbn en ny fil, gem skitsen, indlæs den i mikrokontrolleren.


konklusion

Espruino-tavler og lignende er et trykt kredsløbskort med de nødvendige vedhæftede filer og en mikrokontroller, med en javascript-tolk, der behandler koden og oversætter dens kommandoer til sproget for disse og nuller direkte under kørsel. Mens det er i den klassiske form, indlæses programmet for mikrokontrollere i sidstnævnte allerede i form af maskinkode.

Denne tilgang giver ydeevne i mange opgaver, ligesom Arduino.


Gennemgang af den officielle Espruino-linje

Original Espruino

Specifikationer for denne enhed:

  • 54x41 mm (et halvt kreditkort);

  • STM32F103RCT6 32-bit 72MHz ARM Cortex M3 CPU

  • 256 kB flash, 48 kb RAM;

  • Micro USB-port

  • Indgangsspænding fra 3,6 til 15V;

  • Batterikontakt (JST PHR-2 2 Pin);

  • Indbygget SD-kortstik;

  • Tre lysdioder (rød grøn og blå);

  • Platforme til installation af HC-05 Bluetooth-modul;

  • Afstanden mellem miner - 2,54 mm (0,1 ");

  • 44 GPIO-stifter, hvoraf 26 PWM (PWM), 16 ADC (ADC), 3 USARTs, 2 SPI, 2 I2C og 2 DACs (DAC);

  • Området på tavlen kan bruges til at forbinde et antal enheder, såsom Wi-Fi-moduler, servoer, der kan udvides til 14 udgange med en strøm på op til 500 mA.

Espruino mikrokontrolplade

Boardets udseende og den betingede opdeling af dets knudepunkter i zoner

For mange kan bestyrelsen virke uattraktiv og ufuldstændig, men dette var kun dens første mulighed, så ser de mere kendte og progressive ud. Puck.JS er et miniature-kort i sagen, det har ombord Bluetooth og en infrarød sender.

Puck.JS

I henhold til information fra det officielle websted er dets tekniske specifikationer og funktioner som følger:

  • Bluetooth lav energi;

  • Forudinstalleret Espruino javascript-tolk;

  • Kortets hjerte er nRF52832 SoC - 64MHz ARM Cortex M4, 64 kB RAM, 512 kB Flash;

  • 8 x 0,1 "GPIO-porte (inklusive PWM (PWM), SPI, I2C, UART, analog indgang);

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

  • Husvaskemaskine fremstillet af ABS-plast;

  • Silikonafdækning med en nøgle;

  • MAG3110 Magnetometer - magnetisk feltmåler med tre akser;

  • IR-sender

  • Termometer, lyssensor og batteriniveau;

  • Tre lysdioder (rød, grøn og blå);

  • Programmerbar via JS NFC-tag.

  • Pins kan opfatte berøring efter kapacitet (princippet om betjening af berøringsskærme på smartphones);

  • Vægt 14 g;

  • Størrelser på plastkassen: diameter 36 mm, tykkelse - 12,5 mm;

  • Bordmål: diameter 29 mm, tykkelse 9 mm.

Demonstration af arbejde:

Det næste bord er Espruino Wi-Fi, som navnet antyder, dens funktion er et indbygget trådløst modul til Wi-Fi.

Espruino Wi-Fi

Dets tekniske egenskaber:

  • Kortmål: 30x23 mm;

  • Brættet har et Micro USB-stik;

  • 21 GPIO: 8 analoge indgange, 20 PWM, 1 Seriel port, 3 SPI, 3 I2C;

  • Brættet har 3 lysdioder, hvoraf 2 er programmerbare af brugeren, og 1 viser Wi-Fi-aktivitet;

  • Portene er kompatible med Arduino med hensyn til spænding og understøtter et 5-volt signal;

  • 1 knap;

  • Bygget på en mikrokontroller STM32F411CEU6 32-bit 100MHz ARM Cortex M4 CPU;

  • Hukommelse: 512 kb flash, 128 kb RAM;

  • Wi-Fi-kommunikation ved hjælp af ESP8266 (802.11 b / g / n);

  • RTC (realtidsur med en ekstern generator).

  • En 3,3V stabilisator med en strøm på op til 250 mA er installeret på tavlen, en forsyningsspænding på 3,5 til 5 V understøttes.

  • Det aktuelle forbrug i dvaletilstand er op til 0,05 mA, hvilket giver dig mulighed for at arbejde 2,5 år på et 2500mAh-batteri (selvom dette er mere markedsføring, men selve batteriet er mere tilbøjeligt til at aflade hurtigere).

Espruino Wi-Fi

Bestyrelsesdemonstration:


Espruino Pico - mikrokontroller til javascript i USB-stickformat

Vi vil overveje det i et separat afsnit, da det er mest almindeligt i Rusland og det nærliggende udland, måske mange tak til Amperka-virksomheden. Brættet er praktisk til træning og implementering af færdige projekter, et miniatyrkort, der indsættes direkte i USB-porten på din computer til programmering.

Espruino Pico

Specifikationer:

  • Dimensioner: 33x15 - under hensyntagen til USB-stikket;

  • 22 GPIO-porte, herunder: 9 analoge indgange, 21 PWM, 2 serielle (serielle porte), 3 SPI, 3 I2C;

  • GPIO-stifter understøtter 5 V-signalniveauer, som giver dig mulighed for at kombinere brættet med skærme og enheder til arduino;

  • USB Type A-stikket er en del af tavlen.

  • To lysdioder og en programmerbar knap

  • Bygget på mikrokontroller STM32F401CDU6 32-bit 84MHz ARM Cortex M4 CPU

  • Hukommelse: 384 kb flash, 96 kb RAM

  • En spændingsregulator på 3,3 V 250mA loddes på brættet og tillader det at blive drevet fra 3,5 til 16 V.

  • I dvaletilstand forbruger det strøm op til 0,05 mA, og producenten hævder her 2,5 års drift fra 1 batteri ved 2500 mAh;

  • Indbygget felteffekttransistor til styring af højstrømskredsløb.

Dette er det mindste bræt i linjen. Langs kanterne er I / O-porte. I dette tilfælde er metalliseringslaget til stede både på selve hullerne og langs enden af ​​det trykte kredsløbskort.

Espruino Pico

Kontakthøjden er standard, dette giver dig mulighed for at lodde standard PLS-linjer til den (dette er navnet de bærer).

Pls linje

Detaljeret gennemgang af dette bord:


Amperka onlinebutik og dets bræt med Javascript

Synes godt om det eller ej, men den største popularisering af ikke-traditionel programmering af mikrokontrollere, især i javascript, er Amperka-webstedet. De har en YouTube-kanal, hvor de lærer, hvordan man bruger og programmerer deres produkter, og viser også gennemførelsen af ​​projekter ved hjælp af deres egen linje af tavler fra mikrokontrollere.

Den indenlandske producents mærkevarer er ISKRA JS, hvis navn læser navnet på det sprog, der diskuteres. Dets tekniske egenskaber:

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

  • Urfrekvens: 168 MHz;

  • Flashhukommelse: 1024 kB;

  • SRAM: 192 kB;

  • Nominel driftsspænding: 3,3V;

  • Anbefalet indgangsspænding: 7–15 V eller 3,6–12 V;

  • Maksimal strøm fra 5V-bussen: 1000 mA;

  • Maksimal strøm fra 3,3V-bus: 300 mA (inkl. Mikrokontrollereffekt);

  • Maksimal strøm fra pin eller pin: 25 mA;

  • Maksimal samlet strøm fra stifter eller stifter: 240 mA;

  • Generelle formål I / O-porte: 26;

  • Porte med PWM-support: 22;

  • ADC-porte: 12 (12 bit);

  • Porte med DAC: 2 (12 bit);

  • Tilgængelige hardware-grænseflader: 4 × UART / Serial, 3 × I²C / TWI, 2 × SPI;

  • Mål: 69 × 53 mm.

ISKRA JS

Strukturelt set er brættet meget tæt på Arduino Uno R3 - det betyder, at du kan bruge udvidelseskort til det.Hvilke interessante ting ser vi i de tekniske specifikationer? Lad os sammenligne dem med alle dine foretrukne arduino.

Sammenligning af Iskra JS og Arduino UNO r3

De er forskellige med hensyn til hukommelse og kapacitet, og hver finder deres anvendelse. Selvom arduino i de fleste tilfælde foretrækkes, fordi det kan købes for et par hundrede rubler, men en gnist er det ikke.

Amperka sælger også mikrokontrollere og mikrocomputere som Raspberry Pisamt træningssæt til at arbejde sammen med dem. Der er også en række udvidelseskort til mikrokontrollere, dette er de såkaldte Troyka-moduler. De er lavet i den samme hvide farve som resten af ​​produkterne fra dette firma.

Som alle andre afskærmninger indeholder produkter fra Amperka trykte kredsløb som den vigtigste funktionelle enhed - en sensor, en omskifter, en master eller aktuator og de nødvendige tilslutninger til det. Vi har allerede foretaget en grov gennemgang af typiske moduler til Arduino - De mest populære skjolde til Arduino, her er alt analogt. På webstedet eller i Amperka-samfundet kan du finde biblioteker til brug med moduler med Iskra JS eller Arduino.

Blandt de tre moduler er der:

  • joystick;

  • enkoder;

  • Modul med relæ;

  • Portudvidelseskort (Troyka-skjold);

  • Accelerometre og andre positionssensorer;

  • Sensorer for lys, nærhed, strøm, temperatur, hall, støj, gas, alkohol og andre ting;

  • Modtagere til at læse NFC-tags;

  • Udstyr til motorstyring (H-broer, drivere) og mere.

Til salg er der et interessant sæt til begyndere "IODO".

Et separat ord om et enkelt element i konfigurationen er # konstruktøren. Dette er dele til montering af etuier og opbevaring af dele af dine strukturer, de er forbundet som et børns designer og giver dig mulighed for at lave et normalt stabilt layout med mulighed for sikker bære samt en nøglefærdig løsning til daglig brug.

Struktor

For øvrig kan du samle dit træningssæt, og træningsbogen fra sættet er tilgængelig på det officielle websted i elektronisk form og frit tilgængeligt.


konklusion

Hvis du vil programmere mikrokontrollere i javascript, skal du blot installere den passende skal på din prøve. Imidlertid har ikke hver kopi en tilsvarende firmware. Ikke desto mindre findes der populære emner på temaforum. For eksempel på BBC Micro: bit-mikrocomputer er processen med at arbejde med miljøet afbildet i den følgende video, og installationen udføres i blot et par trin.

Er der brug for javascript på mikrokontrollere? Absolut ja! For de fleste amatøropgaver har gør-det-selv-brugere ikke brug for nøjagtighed eller responshastighed, og for en række professionelle opgaver er sådanne platformers muligheder nok. En sådan tilgang til programmering gør det muligt at begynde at udvikle enheder uden praktisk taget undersøgelse af mikrokontrollerens struktur og kommandoer. Men i den klassiske programmeringsmetode var det nødvendigt at tage et antal ting i betragtning, såsom forskellige typer variabler, hukommelsesadresser osv.

Se også på elektrohomepro.com:

  • PIC-mikrokontrollere til begyndere
  • Typer og arrangement af AVR-mikrokontrollere
  • Hvilket Arduino bord skal vælge
  • Hvad er Nextion-skærme, og hvordan man arbejder med dem?
  • Tilslutning og programmering af Arduino til begyndere

  •