kategoriler: Mikrodenetleyici devreleri
Görüntülenme sayısı: 6809
Makaleye Yorumlar: 0
JavaScript'te programlanabilir mikrodenetleyiciler: hangisini seçeceğiniz, özellikleri ve yetenekleri
Ülkemizde, yaklaşık 2010'dan sonra, radyo meraklıları hobisi, mikrodenetleyicileri demirden uzak, yüksek seviyeli programlama dillerinde programlama yeteneğinin ortaya çıkmasıyla ikinci bir rüzgar aldı. İlk kitle projesi Arduino Board Ailesi. Bu mikrodenetleyicileri makalelerde tekrar tekrar inceledik, ancak bugün javascript'te programlanan mikrodenetleyiciler hakkında konuşacağız. Evet! Esas olarak WEB sayfaları yazarken kullanılan dil.

Kapsam veya bu mikrodenetleyicilere hiç ihtiyaç var mı?
Aşağıda ele alacağımız cihazlarda elektronik açısından bakarsak, standart mikrodenetleyiciler kullanılır. Üreticiden gelen ürünlerden farkı, önceden yüklenmiş bir yükleyici programına sahip olmalarıdır, ancak istediğinizi çağırın, bu da size indirilen program kodunu yürütmenizi sağlar ve bazı durumlarda, donanımda uygulanmadığında bilgisayarla USB ile iletişim kurar.
Javascript ve diğer geleneksel olmayan diller için mikro denetleyiciler ne işe yarar? Amatörler ve profesyoneller arasında, "Arduino" gibi bazı övgü projelerinin yapıldığı özel forumlarda elektronik geliştirilmesinde tartışmalar var, diğerleri ise demir ile ilgili birçok sorundan geliştiricinin sadeliği ve soyutluğu için onları mümkün olan her şekilde aşağılıyor ve alay ediyor.
Önemli: Makalenin bu bölümünde diyoruz: “Arduino”, çünkü çoğu elektronik cihaz sevenler için başlangıç noktası haline geldi.
Arduinler C'de programlanabilir. Ama bu gerekli mi? Çoğu durumda mikrodenetleyicilerin reaksiyon hızına neden ihtiyaç duyulmadığına bakalım. Arduino işçileri genellikle otomatik sulama ve bitkileri "aydınlatmak" için aydınlatma dahil etmek için kontrolörler monte etmeyi sever. Böyle bir kombine cihaz, apartmanlarda veya seralarda bir şey yetiştirmek isteyenler için mükemmel bir yardımcı olacaktır.
Peki burada hangi hız kontrol cihazına ihtiyaç var? 15-20 yıl önce kimse burada kullanmaz mikrodenetleyici - amatör bir tasarımcı bir çift operasyonel amplifikatörü veya mantık elemanını başarıyla yönetebilirdi. Ancak, tartışılan mikrodenetleyicilerin bu projeler için uygunluğu hakkında konuşursak, burada, arka ışığın kaç milisaniyenin açılmasından veya dünyanın suyu sulamaya başlamasından sonra tamamen kayıtsızdır.

Bir sonraki popüler proje ev hava istasyonu ve bu amaçlar için arduins'in temel yeteneklerinin sensörlerden bilgileri okumak ve bunları bir karakter sentezleme ekranında görüntülemek için yeterli olduğu ortaya çıkıyor.
Yönetim örneklerinde RGB LED şerit "piksel piksel" kontrolüne sahip normal veya akıllı LED'ler (böyle bir SMART bant örneği ve aşağıdaki şekilde gördüğünüz işaretleme) da yeterli kaynağa sahiptir.

Ancak hıza nerede ihtiyacınız var ve Scratch veya javascript gibi basitleştirilmiş programlama dillerini kullanmak için uygun değil misiniz? Her şey çok basit:
-
Hassas devrelerde;
-
Alarmlarda ve güvenlik sistemlerinde;
-
Normal osiloskoplar da dahil olmak üzere ADC'den hızlı bir şekilde veri alma ihtiyacı olan yüksek hassasiyetli ölçüm cihazlarında;
-
Uyku modunda uzun süreli otonom çalışma gereksinimi olan cihazlarda;
-
Mikrodenetleyiciye olabildiğince çok işlev ve kod göndermeniz gerektiğinde, ancak bu, piyasadaki çoğu cihazın maliyetinin azaltılmasıyla bağlantılı olarak son zamanlarda çok acil bir görev haline gelmemiştir.
Bu görevlerin çoğunda, tökezleyen blok hız ve bellektir.En iyi sonuçlar için, bu durumda C / C ++ değil, Assembler (ASM) bile kullanmak daha mantıklıdır. Gerçekten de, eğer bu tür projeleri hedefliyorsanız, belli bir bilgiye sahip olduğunuz anlamına gelir, yani ihtiyaç yoktur.
Sonuç?
Hız veya ölçüm hassasiyeti gibi katı gereksinimlerin bulunmadığı durumlarda basit dillere sahip mikrodenetleyicilere ihtiyaç vardır, ancak bazı durumlarda bile amatör kullanım için özel olmayan cihazlar için doğruluk sağlarlar.
Espruino - güçlü bir mikrodenetleyici ve basit bir javascript dili
Espruino platformu, javascript dilinde mikrodenetleyicileri programlamak için bir yazılım ve donanım kümesidir, üç öğe içerir:
1. JS dil yorumlayıcılı bir mikrodenetleyici için yazılım.
2. Espruino Web IDE için geliştirme ortamı.
3. Doğrudan Espruino ile çalışmak için bellenimin bulunduğu bir mikro denetleyiciye sahip bir kart.

Bu fikir 2013 yılında Gordon Williams tarafından geliştirildi ve uygulandı ve crowdfunding platformunu (Kickstarter) kullanarak fon yarattı. Aslında, geliştirmenin özü, Espruino ürün yazılımını (motoru) mikrodenetleyicilere yüklemek için geliştirmekti. Esas olarak ARM-korteks mimarisine sahip STM32 ailesinin mikrodenetleyicilerinde kullanılır. Operasyon için daha uygun cihazlar, aşağıda ele alacağız.

Javascript mikrodenetleyici için programlar yazmak için Espruino Web IDE yüklemeniz gerekir. Bu, tek bir tıklamayla yüklenen popüler Google Chrome İnternet tarayıcısı için bir program veya uzantıdır.
"Hizmetler" menüsündeki "Yükle" düğmesini tıkladıktan sonra bir uygulama görünür ve adres çubuğuna yazarak bu menüye girebilirsiniz: chrome: // apps /
Bir fincan kahve ile simgeye tıkladığınızda, tarayıcıda değil, ayrı bir pencerede dikkat çeken geliştirme ortamı açılır.
Bu ortam hem çocuklar hem de yeni başlayanlar için ilginçtir, çünkü Scratch programlama diline göre kodu manuel olarak girebilir veya grafik düzenleyiciyi kullanabilirsiniz. Bunu yapmak için, okun işaret ettiği simgeye tıklayın.

Bundan sonra, kodla birlikte ekranın sağ tarafı diğer temsiline dönüşür:

Arayüz sezgiseldir, orta panelde yukarıdan aşağıya: yeni bir dosya açın, çizimi kaydedin, mikro denetleyiciye yükleyin.
Sonuç
Espruino kartları ve benzerleri, gerekli ekleri olan bir baskılı devre kartı ve kodu işleyen ve komutlarını doğrudan çalışma zamanında doğrudan ve sıfırların diline çeviren bir javascript yorumlayıcıya sahip bir mikro denetleyicidir. Klasik formdayken, mikrodenetleyici programı ikincisine zaten makine kodu biçiminde yüklenir.
Bu yaklaşım Arduino gibi birçok görevde performans sağlar.
Resmi Espruino hattının gözden geçirilmesi

Bu cihazın özellikleri:
-
54x41 mm (yarım kredi kartı);
-
STM32F103RCT6 32 bit 72MHz ARM Cortex M3 CPU
-
256 KB Flash, 48 KB RAM;
-
Mikro USB bağlantı noktası
-
Giriş voltajı aralığı 3.6 ila 15V;
-
Pil konektörü (JST PHR-2 2 Pimli);
-
Dahili SD kart yuvası;
-
Üç LED (kırmızı yeşil ve mavi);
-
HC-05 Bluetooth modülünü kurmak için platformlar;
-
Madenler arasındaki mesafe - 0,4 "(2,54 mm);
-
26 adet PWM (PWM), 16 ADC (ADC), 3 USART, 2 SPI, 2 I2C ve 2 DAC (DAC) olan 44 GPIO pini;
-
Kart üzerindeki alan, 500 mA'ya kadar akımla 14 çıkışa genişletilebilen Wi-Fi modülleri, servolar gibi bir dizi cihazı bağlamak için kullanılabilir.

Tahtanın görünümü ve düğümlerinin koşullara bölünmesi
Birçoğu için tahta çekici ve eksik görünebilir, ancak bu sadece ilk seçeneğiydi, o zaman daha tanıdık ve ilerici görünüyorlar. Puck.JS durumda bir minyatür tahta, yerleşik Bluetooth ve bir kızılötesi verici vardır.

Resmi siteden edinilen bilgilere göre, teknik özellikleri ve özellikleri aşağıdaki gibidir:
-
Bluetooth Düşük Enerji;
-
Önceden yüklenmiş Espruino javascript yorumlayıcısı;
-
Kartın kalbi nRF52832 SoC - 64MHz ARM Cortex M4, 64kB RAM, 512kB Flash;
-
8 x 0,1 inç GPIO bağlantı noktası (PWM (PWM), SPI, I2C, UART, analog giriş dahil);
-
9 x SMD GPIO bağlantı noktası (PWM, SPI, I2C, UART dahil);
-
ABS plastik gövde yıkayıcı;
-
Anahtarlı silikon kapak;
-
MAG3110 Manyetometre - üç eksenli manyetik alan ölçer;
-
IR vericisi
-
Termometre, ışık sensörü ve pil seviyesi;
-
Üç LED (kırmızı, yeşil ve mavi);
-
JS NFC etiketi ile programlanabilir.
-
Pinler kapasiteye göre dokunuşu algılayabilir (akıllı telefonların dokunmatik ekranlarının çalışma prensibi);
-
Ağırlık 14 g;
-
Plastik kasanın boyutları: çap 36mm, kalınlık - 12.5mm;
-
Tahta boyutları: çap 29mm, kalınlık 9mm.
İşin gösterilmesi:
Bir sonraki kart Espruino Wi-Fi'dir, adından da anlaşılacağı gibi, özelliği Wi-Fi için yerleşik bir kablosuz modüldür.

Teknik özellikleri:
-
Levha boyutları: 30x23 mm;
-
Kartın bir Mikro USB konektörü vardır;
-
21 GPIO: 8 analog giriş, 20 PWM, 1 Seri bağlantı noktası, 3 SPI, 3 I2C;
-
Kartta 3 LED vardır, bunlardan 2'si kullanıcı tarafından programlanabilir ve 1'i Wi-Fi etkinliğini gösterir;
-
Bağlantı noktaları voltaj açısından Arduino ile uyumludur ve 5 Volt sinyali destekler;
-
1 düğme;
-
Mikrodenetleyici STM32F411CEU6 32-bit 100MHz ARM Cortex M4 CPU üzerine kurulu;
-
Bellek: 512kb flaş, 128kb RAM;
-
ESP8266 ile kablosuz iletişim (802.11 b / g / n);
-
RTC (harici jeneratörlü gerçek zamanlı saat).
-
Kartta 250 mA'ya kadar akımla 3.3V sabitleyici monte edilir, 3.5 ila 5 V besleme gerilimi desteklenir.
-
Uyku modunda geçerli tüketim 0,05 mA'ya kadar, bu da 2500mAh pilden 2,5 yıl çalışmanıza izin veriyor (bu daha fazla pazarlama olmasına rağmen, pilin kendisinin daha hızlı boşalması daha olasıdır).

Kurul tanıtımı:
Espruino Pico - USB stick formatında javascript için mikrodenetleyici
Bunu ayrı bir bölümde ele alacağız, çünkü Rusya'da ve yurtdışında en yaygın olanı, belki de Amperka şirketi sayesinde çok teşekkürler. Kart, programlama için doğrudan bilgisayarınızın USB bağlantı noktasına takılan minyatür bir kart olan bitmiş projeleri eğitmek ve uygulamak için uygundur.

Özellikler:
-
Boyutlar: 33x15 - USB fişini dikkate alarak;
-
22 GPIO portu, bunlardan bazıları: 9 analog giriş, 21 PWM, 2 Seri (seri port), 3 SPI, 3 I2C;
-
GPIO pinleri, kartı arduino için kalkanlar ve cihazlarla birleştirmenizi sağlayan 5 V sinyal seviyelerini destekler;
-
USB Tip A fişi kartın bir parçasıdır.
-
İki LED ve bir programlanabilir düğme
-
STM32F401CDU6 32-bit 84MHz ARM Cortex M4 CPU mikrodenetleyici üzerine inşa edilmiştir
-
Bellek: 384kb flaş, 96kb RAM
-
3.3 V 250mA'lık bir voltaj regülatörü panoya lehimlenmiştir ve 3.5 ila 16 V arasında beslenmesini sağlar.
-
Uyku modunda, 0.05 mA'ya kadar akım tüketir ve burada üretici 2500mAh'de 1 pilden 2.5 yıl çalıştığını iddia eder;
-
Yüksek akım devrelerini kontrol etmek için dahili alan etkili transistör.
Bu hattaki en küçük tahta. Kenarları boyunca G / Ç bağlantı noktaları vardır. Bu durumda, metalizasyon tabakası hem deliklerin kendisinde hem de baskılı devre kartının ucu boyunca bulunur.

Temas aralığı standarttır, bu da standart PLS hatlarını lehimlemenize izin verir (bu, taşıdıkları addır).

Bu kurulun ayrıntılı incelemesi:
Amperka online mağazası ve Javascript ile panoları
İster beğenin ister beğenmeyin, ancak özellikle javascript'te mikrodenetleyicilerin geleneksel olmayan programlamasının en büyük popülerleştiricisi Amperka sitesidir. YouTube'da ürünlerinin nasıl kullanılacağını ve programlanacağını öğrettikleri bir kanal var ve ayrıca mikrodenetleyicilerden kendi panolarını kullanarak projelerin uygulanmasını gösteriyorlar.
Yerli üreticinin markalı hattı, adı tartışılan dilin adını okuyan ISKRA JS'dir. Teknik özellikleri:
-
Mikrodenetleyici: STM32F405RG (32 bit ARM Cortex M4);
-
Saat frekansı: 168 MHz;
-
Flash bellek: 1024 kB;
-
SRAM: 192 kB;
-
Nominal Çalışma Gerilimi: 3.3V;
-
Önerilen giriş voltajı: 7–15 V veya 3,6–12 V;
-
5V veriyolundan maksimum akım: 1000 mA;
-
3.3V veriyolundan maksimum akım: 300 mA (mikrodenetleyici güç kaynağı dahil);
-
Pim veya pimden maksimum akım: 25 mA;
-
Pimlerden veya pimlerden maksimum toplam akım: 240 mA;
-
Genel Amaçlı G / Ç Bağlantı Noktaları: 26;
-
PWM destekli bağlantı noktaları: 22;
-
ADC Bağlantı Noktaları: 12 (12 bit);
-
DAC bulunan bağlantı noktaları: 2 (12 bit);
-
Kullanılabilir donanım arabirimleri: 4 × UART / Seri, 3 × I²C / TWI, 2 × SPI;
-
Boyutlar: 69 × 53 mm.

Yapısal olarak, kart Arduino Uno R3'e çok yakın - bu, bunun için genişletme kartlarını kullanabileceğiniz anlamına gelir.Teknik özelliklerde ne gibi ilginç şeyler görüyoruz? En sevdiğiniz arduino ile karşılaştıralım.

Bellek ve yetenekler açısından farklıdırlar ve her biri uygulamasını bulacaktır. Çoğu durumda arduino tercih edilmesine rağmen, birkaç yüz ruble için satın alınabilir, ancak bir kıvılcım değildir.
Amperka ayrıca mikrodenetleyiciler ve Raspberry Pi gibi mikrobilgisayarlarve onlarla çalışmak için eğitim kitleri. Mikrodenetleyiciler için bir dizi genişletme kartı da var, bunlar Troyka modülleri. Bu şirketin diğer ürünleri ile aynı beyaz renkte yapılırlar.
Diğer kalkanlar gibi Amperka ürünleri de ana fonksiyonel ünite olarak bir baskılı devre kartları içerir - bir sensör, bir anahtarlama cihazı, bir master veya aktüatör ve buna gerekli ataşmanlar. Arduino için tipik modüllerin kaba bir incelemesini yaptık - Arduino için en popüler kalkanlar, burada her şey analoji ile. Web sitesinde veya Amperka topluluğunda, Iskra JS veya Arduino ile modüllerle kullanım için kütüphaneler bulabilirsiniz.
Üç modül arasında:
-
joystik;
-
kodlayıcı;
-
Röleli modül;
-
Bağlantı noktası genişletme kartları (Troyka-kalkan);
-
İvmeölçerler ve diğer konum sensörleri;
-
Işık, yakınlık, akım, sıcaklık, Hall, gürültü, gaz, alkol ve diğer şeylerin sensörleri;
-
NFC etiketlerini okumak için alıcılar;
-
Motor yönetimi ekipmanları (H-köprüler, sürücüler) ve daha fazlası.
Satışta yeni başlayanlar için ilginç bir kit var "IODO".
Yapılandırmadaki tek bir öğe hakkında ayrı bir kelime # yapıcıdır. Bunlar, kasaların montajı ve yapılarınızın yatak parçaları için parçalardır, bir çocuk tasarımcısı gibi bağlanırlar ve güvenli taşıma imkanı ile normalde istikrarlı bir düzen ve günlük kullanım için anahtar teslimi bir çözüm yapmanıza izin verir.

Bu arada, eğitim kitinizi bir araya getirebilirsiniz ve kitin eğitim kitapçığı resmi web sitesinde elektronik formda ve serbestçe bulunabilir.
Sonuç
Mikro denetleyicileri javascript içinde programlamak için, sadece örneğinize uygun kabuğu yüklemeniz gerekir. Bununla birlikte, her kopyanın karşılık gelen bir ürün yazılımı yoktur, ancak popüler cihazlar için tematik forumlarda bulunabilir. Örneğin, BBC Micro: bit mikrobilgisayarda, çevre ile çalışma süreci aşağıdaki videoda gösterilmektedir ve kurulum sadece birkaç adımda gerçekleştirilir.
Mikrodenetleyicilerde javascript gerekli mi? Kesinlikle evet! Çoğu amatör görevler için, kendin yap özelliklerinin doğruluğa veya yanıt hızına ihtiyaç duymaz ve bir dizi profesyonel görev için bu tür platformların yetenekleri yeterlidir. Programlamaya böyle bir yaklaşım, mikrodenetleyicinin yapısı ve komutları üzerinde neredeyse hiç çalışma yapılmadan cihaz geliştirmeye başlamayı mümkün kılar. Ancak klasik programlama yönteminde, çeşitli değişken türleri, bellek adresleri ve benzeri gibi bir dizi şeyi hesaba katmak gerekiyordu.
Ayrıca bkz. electro-tr.tomathouse.com
: