categorieën: Microcontroller-circuits
Aantal keer bekeken: 6809
Reacties op het artikel: 0

Programmeerbare microcontrollers in JavaScript: welke te kiezen, functies en mogelijkheden

 

Na 2010 kreeg de amateurradiohobby in ons land een tweede wind met de komst van de mogelijkheid om microcontrollers te programmeren in programmeertalen op hoog niveau, ver verwijderd van het strijkijzer. Het eerste massaproject was Arduino Board familie. We hebben deze microcontrollers herhaaldelijk in artikelen onderzocht, maar vandaag zullen we het hebben over microcontrollers die zijn geprogrammeerd in javascript. Yes! Dezelfde taal die voornamelijk werd gebruikt bij het schrijven van WEB-pagina's.

Microcontroller programmeerbaar in javascript

Scope of zijn dergelijke microcontrollers überhaupt nodig?

Als we vanuit het oogpunt van elektronica kijken naar die apparaten die we hieronder zullen beschouwen, worden standaard microcontrollers gebruikt. Het verschil met de producten van de fabrikant is alleen dat ze een vooraf geïnstalleerd laadprogramma hebben, hoewel je het noemt wat je wilt, waarmee je de gedownloade programmacode kunt uitvoeren en in sommige gevallen via USB met de computer kunt communiceren, als deze niet in hardware is geïmplementeerd.

Waarvoor zijn microcontrollers voor JavaScript en andere niet-traditionele talen bedoeld? Er zijn debatten onder amateurs en professionals in de ontwikkeling van elektronica in gespecialiseerde forums, waar sommige projecten zoals "Arduino" prijzen, terwijl anderen hen op alle mogelijke manieren vernederen en belachelijk maken voor de eenvoud en abstractheid van de meeste problemen met ijzer.

Belangrijk: in dit deel van het artikel zeggen we: "Arduino", omdat dit voor de meeste fans het beginpunt is geworden om elektronische apparaten te ontwerpen.

Arduins kunnen worden geprogrammeerd in C. Maar is dit noodzakelijk? Laten we eens kijken waarom in de meeste gevallen de reactiesnelheid van microcontrollers niet nodig is. Arduino-werknemers assembleren vaak graag controllers voor automatische irrigatie en het opnemen van verlichting voor de "verlichting" van planten. Een dergelijk gecombineerd apparaat zal een uitstekende hulp zijn voor diegenen die graag iets laten groeien in appartementen of kassen.

Maar welke snelheid van besturingsapparaat is hier nodig? 15-20 jaar geleden zou niemand het hier gebruiken microcontroller - een amateur-ontwerper zou met succes een paar operationele versterkers of logische elementen hebben beheerd. Maar als we het hebben over de geschiktheid van de besproken microcontrollers voor deze projecten, dan is het hier volledig onverschillig na hoeveel milliseconden de achtergrondverlichting aangaat of de aarde het water begint te irrigeren.

Automatisch sproeisysteem

Het volgende populaire project is het weerstation thuis, en het blijkt dat voor dergelijke doeleinden de basismogelijkheden van arduins voldoende zijn om informatie van sensoren te lezen en deze weer te geven op een karakter-synthetiserend scherm.

In managementvoorbeelden RGB LED-strip gewone of slimme LED's met "pixel-voor-pixel" -besturing (een voorbeeld van een dergelijke SMART-tape en de markering ervan zie je in de onderstaande afbeelding) hebben ook voldoende bronnen.

SMART-tape

Maar waar heb je snelheid nodig en zijn niet geschikt voor het gebruik van vereenvoudigde programmeertalen zoals Scratch of JavaScript? Alles is heel eenvoudig:

  • In precisiecircuits;

  • In alarmen en beveiligingssystemen;

  • In uiterst nauwkeurige meetinstrumenten waarbij snel gegevens uit de ADC moeten worden gehaald, ook voor normale oscilloscopen;

  • In apparaten met een vereiste voor langdurig autonoom werken in slaapmodus;

  • In gevallen waarin u zoveel mogelijk functies en code in de microcontroller moet "stoppen", maar dit is recent geen erg urgente taak geworden in verband met de verlaging van de kosten van de meeste apparaten op de markt.

Bij de meeste van deze taken is snelheid en geheugen het struikelblok.Voor een optimaal resultaat is het in dit geval redelijker om niet eens C / C ++, maar Assembler (ASM) te gebruiken. Inderdaad, als u op dergelijke projecten mikt, betekent dit dat u een bepaalde hoeveelheid kennis hebt, wat betekent dat er geen behoefte is.


De conclusie?

Microcontrollers met eenvoudige talen zijn nodig waar er geen strikte vereisten zijn zoals snelheid of meetnauwkeurigheid, maar zelfs in sommige situaties bieden ze nauwkeurigheid voor niet-gespecialiseerde apparaten die bedoeld zijn voor amateurgebruik.



Espruino - een krachtige microcontroller en een eenvoudige javascript-taal

Het Espruino-platform is een set software en hardware voor het programmeren van microcontrollers in de javascript-taal, het bevat drie elementen:

1. Firmware voor een microcontroller met een JS-taalinterpreter.

2. Ontwikkelingsomgeving voor de Espruino Web IDE.

3. Een bord met een microcontroller met de firmware zelf om rechtstreeks met Espruino te werken.

Espruino

Het idee is ontwikkeld en geïmplementeerd door Gordon Williams in 2013 en hij heeft er geld voor ingezameld via het crowdfunding-platform (Kickstarter). In feite was de essentie van de ontwikkeling het ontwikkelen van de Espruino-firmware (engine) voor het laden in microcontrollers. Het wordt voornamelijk gebruikt op microcontrollers van de STM32-familie, met ARM-cortex-architectuur. Handiger apparaten voor bediening, zullen we hieronder overwegen.

Espruino microcontroller

Om programma's voor de microcontroller in javascript te schrijven, moet u de Espruino Web IDE installeren. Dit is een programma of extensie voor de populaire Google Chrome-internetbrowser die met slechts één klik wordt geïnstalleerd.

Nadat u op de knop "Installeren" in het menu "Services" hebt geklikt, verschijnt een toepassing en kunt u dit menu openen door de adresbalk in te typen: chrome: // apps /

Wanneer u met een kopje koffie op het pictogram klikt, wordt de ontwikkelomgeving geopend, wat niet in de browser, maar in een apart venster opmerkelijk is.

Deze omgeving is interessant voor zowel kinderen als beginnende gebruikers, omdat u de code handmatig kunt invoeren of de grafische editor kunt gebruiken, gebaseerd op de programmeertaal Scratch. Klik hiervoor op het pictogram waarnaar de pijl wijst.

Espruino Web IDE

Hierna zal de rechterkant van het scherm, die met de code verandert naar zijn andere weergave:

Grafische editor

De interface is intuïtief, in het centrale paneel van boven naar beneden: open een nieuw bestand, sla de schets op, laad het in de microcontroller.


conclusie

Espruino-kaarten en dergelijke zijn een printplaat met de benodigde bijlagen en een microcontroller, met een javascript-interpreter, die de code verwerkt en zijn opdrachten direct tijdens runtime in de taal van enen en nullen vertaalt. In de klassieke vorm is het programma voor microcontrollers al in de vorm van machinecode in de laatste geladen.

Deze aanpak geeft prestaties in veel taken, zoals Arduino.


Overzicht van de officiële Espruino-lijn

Originele Espruino

Specificaties van dit apparaat:

  • 54x41 mm (halve creditcard);

  • STM32F103RCT6 32-bit 72MHz ARM Cortex M3 CPU

  • 256 KB Flash, 48 KB RAM;

  • Micro USB-poort

  • Ingangsspanningsbereik van 3,6 tot 15V;

  • Batterijconnector (JST PHR-2 2-pins);

  • Ingebouwde SD-kaartsleuf;

  • Drie LED's (rood groen en blauw);

  • Platforms voor het installeren van de HC-05 Bluetooth-module;

  • De afstand tussen de mijnen - 0,1 "(2,54 mm);

  • 44 GPIO-pinnen, waarvan 26 PWM (PWM), 16 ADC (ADC), 3 USART's, 2 SPI, 2 I2C en 2 DAC's (DAC);

  • Het gebied op het bord kan worden gebruikt om een ​​aantal apparaten aan te sluiten, zoals Wi-Fi-modules, servo's, uitbreidbaar tot 14 uitgangen met een stroom tot 500 mA.

Espruino microcontroller bord

Het uiterlijk van het bord en de voorwaardelijke verdeling van de knooppunten in zones

Voor velen lijkt het bord onaantrekkelijk en onvolledig, maar dit was slechts de eerste optie, dan zien ze er meer bekend en progressief uit. Puck.JS is een miniatuurbord in de behuizing, het heeft Bluetooth aan boord en een infraroodzender.

Puck.JS

Volgens informatie van de officiële site zijn de technische specificaties en functies als volgt:

  • Bluetooth Low Energy;

  • Vooraf geïnstalleerde Espruino javascript-interpreter;

  • Het hart van het bord is nRF52832 SoC - 64MHz ARM Cortex M4, 64kB RAM, 512kB Flash;

  • 8 x 0,1 "GPIO-poorten (inclusief PWM (PWM), SPI, I2C, UART, analoge ingang);

  • 9 x SMD GPIO-poorten (inclusief PWM, SPI, I2C, UART);

  • Behuizingring van ABS-kunststof;

  • Siliconen hoes met een sleutel;

  • MAG3110 Magnetometer - drie-assige magnetische veldmeter;

  • IR zender

  • Thermometer, lichtsensor en batterijniveau;

  • Drie LED's (rood, groen en blauw);

  • Programmeerbaar via JS NFC-tag.

  • Pinnen kunnen aanraking per capaciteit waarnemen (het werkingsprincipe van aanraakschermen van smartphones);

  • Gewicht 14 g;

  • Afmetingen van de plastic behuizing: diameter 36 mm, dikte - 12,5 mm;

  • Bordafmetingen: diameter 29 mm, dikte 9 mm.

Demonstratie van werk:

Het volgende bord is Espruino Wi-Fi, zoals de naam al aangeeft, de functie is een ingebouwde draadloze module voor Wi-Fi.

Espruino Wi-Fi

Zijn technische kenmerken:

  • Afmetingen bord: 30x23 mm;

  • Het bord heeft een Micro USB-connector;

  • 21 GPIO: 8 analoge ingangen, 20 PWM, 1 seriële poort, 3 SPI, 3 I2C;

  • Het bord heeft 3 LED's, 2 ervan zijn door de gebruiker programmeerbaar en 1 geeft Wi-Fi-activiteit weer;

  • De poorten zijn qua spanning compatibel met Arduino en ondersteunen een signaal van 5 Volt;

  • 1 knop;

  • Gebouwd op een microcontroller STM32F411CEU6 32-bit 100MHz ARM Cortex M4 CPU;

  • Geheugen: 512 kb flash, 128 kb RAM;

  • Wi-Fi-communicatie met ESP8266 (802.11 b / g / n);

  • RTC (realtime klok met een externe generator).

  • Een 3,3 V-stabilisator met een stroom tot 250 mA is op de kaart geïnstalleerd, een voedingsspanning van 3,5 tot 5 V wordt ondersteund.

  • Het huidige verbruik in de slaapmodus is maximaal 0,05 mA, waardoor u 2,5 jaar kunt werken vanaf een 2500mAh-batterij (hoewel dit meer een marketing is, maar de batterij zelf sneller zal ontladen).

Espruino Wi-Fi

Board demonstratie:


Espruino Pico - microcontroller voor javascript in USB-stick-formaat

We zullen het in een apart gedeelte bespreken, omdat het het meest voorkomt in Rusland en in het buitenland, misschien veel dank aan het bedrijf Amperka. Het bord is handig voor het trainen en uitvoeren van voltooide projecten, een miniatuurbord dat rechtstreeks in de USB-poort van uw computer wordt geplaatst om te programmeren.

Espruino Pico

specificaties:

  • Afmetingen: 33x15 - rekening houdend met de USB-stekker;

  • 22 GPIO-poorten, waaronder: 9 analoge ingangen, 21 PWM, 2 serieel (seriële poorten), 3 SPI, 3 I2C;

  • GPIO-pinnen ondersteunen 5 V-signaalniveaus, waardoor u het bord kunt combineren met schilden en apparaten voor Arduino;

  • De USB Type A-stekker maakt deel uit van het bord.

  • Twee LED's en een programmeerbare knop

  • Gebouwd op een STM32F401CDU6 32-bits 84 MHz ARM Cortex M4 CPU-microcontroller

  • Geheugen: 384 kb flash, 96 kb RAM

  • Een spanningsregelaar van 3,3 V 250 mA is op de kaart gesoldeerd en kan worden gevoed van 3,5 tot 16 V.

  • In de slaapstand verbruikt hij stroom tot 0,05 mA en de fabrikant claimt hier 2,5 jaar werking vanaf 1 batterij bij 2500 mAh;

  • Ingebouwde veldeffecttransistor voor het regelen van hoogstroomcircuits.

Dit is het kleinste bord in de rij. Langs de randen bevinden zich I / O-poorten. In dit geval is de metallisatielaag aanwezig zowel op de gaten zelf als langs het einde van de printplaat.

Espruino Pico

De contactpitch is standaard, hiermee kunt u standaard PLS-lijnen eraan solderen (dit is de naam die ze dragen).

Pls lijn

Gedetailleerde beoordeling van dit bord:


Amperka online winkel en de lijn van boards met Javascript

Leuk vinden of niet, maar de grootste popularisator van niet-traditionele programmering van microcontrollers, met name in javascript, is de Amperka-site. Ze hebben een kanaal op YouTube waar ze leren hoe ze hun producten moeten gebruiken en programmeren, en ook de implementatie van projecten laten zien met behulp van hun eigen lijn van boards van microcontrollers.

De merklijn van de binnenlandse fabrikant is ISKRA JS, waarvan de naam de naam van de te bespreken taal luidt. Zijn technische kenmerken:

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

  • Klokfrequentie: 168 MHz;

  • Flash-geheugen: 1024 kB;

  • SRAM: 192 kB;

  • Nominale operationele spanning: 3.3V;

  • Aanbevolen ingangsspanning: 7-15 V of 3,6 - 12 V;

  • Maximale stroom van de 5V-bus: 1000 mA;

  • Maximale stroom van de 3.3V-bus: 300 mA (inclusief voeding van de microcontroller);

  • Maximale stroom van pin of pin: 25 mA;

  • Maximale totale stroom van pinnen of pinnen: 240 mA;

  • I / O-poorten voor algemeen gebruik: 26;

  • Poorten met PWM-ondersteuning: 22;

  • ADC-poorten: 12 (12 bit);

  • Poorten met DAC: 2 (12 bit);

  • Beschikbare hardware-interfaces: 4 × UART / Serieel, 3 × I²C / TWI, 2 × SPI;

  • Afmetingen: 69 × 53 mm.

ISKRA JS

Structureel ligt het bord heel dicht bij de Arduino Uno R3 - dit betekent dat u de uitbreidingskaarten ervoor kunt gebruiken.Welke interessante dingen zien we in de technische specificaties? Laten we ze vergelijken met al je favoriete Arduino.

Vergelijking van Iskra JS en Arduino UNO r3

Ze verschillen qua geheugen en mogelijkheden, en elk vindt zijn toepassing. Hoewel Arduino in de meeste gevallen de voorkeur verdient, omdat het voor een paar honderd roebel kan worden gekocht, maar een vonk niet.

Amperka verkoopt ook microcontrollers en microcomputers zoals Raspberry Pi, evenals trainingskits om ermee te werken. Er is ook een reeks uitbreidingskaarten voor microcontrollers, dit zijn de zogenaamde Troyka-modules. Ze zijn gemaakt in dezelfde witte kleur als de rest van de producten van dit bedrijf.

Net als alle andere schermen bevatten producten van Amperka printplaten als de belangrijkste functionele eenheid - een sensor, een schakelapparaat, een master of actuator en de nodige bevestigingen daarop. We hebben al een ruwe beoordeling gedaan van typische modules voor Arduino - De meest populaire schilden voor Arduino, hier is alles naar analogie. Op de website of in de Amperka-gemeenschap kunt u bibliotheken vinden voor gebruik met modules met Iskra JS of Arduino.

Onder de drie modules zijn er:

  • joystick;

  • encoder;

  • Module met relais;

  • Poortuitbreidingskaarten (Troyka-schild);

  • Versnellingsmeters en andere positiesensoren;

  • Sensoren van licht, nabijheid, stroom, temperatuur, hal, geluid, gas, alcohol en andere dingen;

  • Ontvangers voor het lezen van NFC-tags;

  • Uitrusting voor motormanagement (H-bruggen, chauffeurs) en meer.

In de uitverkoop is er een interessante kit voor beginners "IODO".

Een afzonderlijk woord over een enkel item in de configuratie is # de constructor. Dit zijn onderdelen voor het samenstellen van kisten en dragende delen van uw structuren, ze zijn verbonden als een kinderontwerper en stellen u in staat om een ​​normaal stabiele lay-out te maken met de mogelijkheid om veilig te dragen, evenals een kant-en-klare oplossing voor dagelijks gebruik.

Struktor

Trouwens, je kunt je trainingskit samenstellen en het trainingsboekje uit de kit is op de officiële website in elektronische vorm en gratis beschikbaar.


conclusie

Om microcontrollers in javascript te programmeren, moet u gewoon de juiste shell op uw monster installeren. Niet elke kopie heeft echter een bijbehorende firmware, toch zijn populaire apparaten te vinden op thematische forums. Op de BBC Micro: bit-microcomputer wordt het proces van werken met de omgeving bijvoorbeeld weergegeven in de volgende video en wordt de installatie in slechts enkele stappen uitgevoerd.

Is Javascript nodig op microcontrollers? Absoluut ja! Voor de meeste amateur-taken hebben doe-het-zelvers geen nauwkeurigheid of reactiesnelheid nodig, en voor een aantal professionele taken zijn de mogelijkheden van dergelijke platforms voldoende. Een dergelijke benadering van programmeren maakt het mogelijk om apparaten te ontwikkelen zonder de structuur en commando's van de microcontroller te bestuderen. Maar bij de klassieke programmeermethode moest rekening worden gehouden met een aantal dingen, zoals verschillende soorten variabelen, geheugenadressen, enzovoort.

Zie ook op i.electricianexp.com:

  • PIC-microcontrollers voor beginners
  • Typen en opstelling van AVR-microcontrollers
  • Welk Arduino-bord te kiezen
  • Wat zijn Nextion-displays en hoe ermee te werken?
  • Arduino verbinden en programmeren voor beginners

  •