Kategori: Litar mikropengawal
Bilangan pandangan: 6809
Komen pada artikel: 0

Pemrogram mikrokontroler dalam JavaScript: yang mana satu untuk dipilih, ciri dan keupayaan

 

Di negara kita, selepas tahun 2010, hobi peminat radio menerima angin kedua dengan kemunculan keupayaan untuk program mikrokontroler dalam bahasa pengaturcaraan peringkat tinggi, jauh dari besi. Projek besar pertama adalah Keluarga Lembaga Arduino. Kami telah berulang kali meneliti mikrokontroler ini dalam artikel, tetapi hari ini kita akan membincangkan tentang mikrokontroler yang diprogramkan dalam javascript. Ya! Bahasa yang sama sekali digunakan terutamanya semasa menulis halaman WEB.

Mikrokontroler boleh diprogramkan dalam javascript

Skop atau mikrokontroler sedemikian diperlukan sama sekali?

Sekiranya kita mempertimbangkan dari segi pandangan elektronik dalam peranti-peranti yang akan kita pertimbangkan di bawah ini, mikropagulator standard digunakan. Perbezaan dari produk dari pengeluar hanya mempunyai program loader yang dipasang sebelumnya, walaupun memanggilnya apa yang anda inginkan, yang membolehkan anda menjalankan kod program yang dimuat turun kepada anda, dan dalam beberapa keadaan, berkomunikasi dengan komputer melalui USB, jika tidak dilaksanakan dalam perkakasan.

Apakah mikrokontroler untuk javascript dan bahasa bukan tradisional lain? Terdapat perdebatan di kalangan amatur dan profesional dalam pembangunan elektronik di forum khusus, di mana beberapa projek pujian seperti "Arduino", sementara yang lain memalukan dan mengejek mereka dalam setiap cara yang mungkin untuk kesederhanaan dan abstrak pemaju dari kebanyakan isu dengan besi.

Penting: Di bahagian artikel ini kita katakan: "Arduino", kerana ia telah menjadi titik permulaan bagi kebanyakan pencinta peranti elektronik.

Arduin boleh diprogramkan dalam C. Tapi ini perlu? Mari lihat mengapa dalam kebanyakan kes kelajuan reaksi mikrokontroler tidak diperlukan. Pekerja Arduino sering suka memasang pengawal untuk pengairan automatik dan kemasukan pencahayaan untuk "pencahayaan" tumbuhan. Peranti gabungan sedemikian akan menjadi bantuan yang sangat baik bagi mereka yang suka menanam sesuatu di pangsapuri atau rumah hijau.

Tetapi apa kelajuan alat kawalan diperlukan di sini? 15-20 tahun yang lalu tidak akan menggunakannya di sini mikropengawal - pereka amatur akan berjaya menguruskan sepasang penguat operasi atau elemen logik. Tetapi jika kita bercakap tentang kesesuaian mikrokontroler yang dibincangkan untuk projek-projek ini, maka di sini ia benar-benar acuh tak acuh selepas berapa banyak milisaat cahaya latar menghidupkan atau bumi mula mengairi air.

Sistem penyiraman automatik

Projek popular yang akan datang adalah stesen cuaca rumah, dan ternyata bahawa untuk tujuan tersebut keupayaan dasar arduin cukup untuk membaca maklumat dari sensor dan memaparkannya pada paparan sintesis karakter.

Dalam contoh pengurusan Jalur LED RGB LED biasa atau pintar dengan kawalan "pixel-by-pixel" (contoh pita SMART seperti ini dan tanda yang anda lihat dalam gambar di bawah) juga mempunyai sumber yang mencukupi.

Pita SMART

Tetapi di mana anda memerlukan kelajuan dan tidak sesuai untuk menggunakan bahasa pengaturcaraan yang mudah seperti Scratch atau javascript? Semuanya sangat mudah:

  • Dalam litar ketepatan;

  • Dalam sistem penggera dan keselamatan;

  • Dalam instrumen pengukur ketepatan tinggi dengan keperluan untuk mengambil data dengan cepat dari ADC, termasuk untuk oscilloscopes biasa;

  • Dalam peranti dengan keperluan untuk kerja autonomi jangka panjang dalam mod tidur;

  • Dalam kes-kes di mana anda perlu "mendorong" sebagai banyak fungsi dan kod yang mungkin ke dalam mikrokontroler, tetapi ini tidak menjadi tugas yang sangat penting baru-baru ini berkaitan dengan pengurangan kos kebanyakan peranti di pasaran.

Dalam kebanyakan tugas ini, penghalang adalah kelajuan dan memori.Untuk keputusan yang optimum, dalam hal ini lebih masuk akal untuk menggunakan bahkan C / C ++, tetapi Assembler (ASM). Sesungguhnya, jika anda bertujuan untuk projek-projek sedemikian, ini bermakna anda mempunyai pengetahuan tertentu, yang bermaksud tidak ada keperluan.


Kesimpulannya?

Mikrokontroler dengan bahasa mudah diperlukan di mana tidak ada keperluan yang ketat seperti ketepatan atau ketepatan pengukuran, tetapi walaupun dalam sesetengah keadaan, mereka akan memberikan ketepatan untuk peranti bukan khusus yang dimaksudkan untuk kegunaan amatur.



Espruino - mikrokontroler yang kuat dan bahasa javascript mudah

Platform Espruino adalah satu set perisian dan perkakasan untuk pemrograman mikrokontroler dalam bahasa javascript, termasuk tiga elemen:

1. Firmware untuk mikropengawal dengan penterjemah bahasa JS.

2. Persekitaran pembangunan untuk IDE Web Espruino.

3. Lembaga dengan mikrokontroler dengan firmware itu sendiri untuk bekerja secara langsung dengan Espruino.

Espruino

Idea itu dibangunkan dan dilaksanakan oleh Gordon Williams pada tahun 2013, dan dia mengumpul dana untuk menggunakan platform crowdfunding (Kickstarter). Malah intipati pembangunan adalah untuk membangunkan firmware Espruino (enjin) untuk memuatkannya kepada mikrokontroler. Ia digunakan terutamanya pada mikrokontroler keluarga STM32, dengan seni bina ARM-korteks. Alat yang lebih mudah untuk operasi, kami akan mempertimbangkan di bawah.

Mikrocontroller Espruino

Untuk menulis program untuk mikropengawal dalam javascript, anda perlu memasang Espruino Web IDE. Ini adalah program atau pelanjutan untuk penyemak imbas Internet Google Chrome yang popular yang hanya dipasang dalam satu klik.

Selepas mengklik pada butang "Pasang" dalam menu "perkhidmatan", aplikasi akan muncul, dan anda boleh masuk ke dalam menu ini dengan menaip dalam bar alamat: chrome: // apps /

Apabila anda mengklik pada ikon dengan secawan kopi, persekitaran pembangunan dibuka, yang penting bukan dalam penyemak imbas, tetapi dalam tetingkap berasingan.

Persekitaran ini menarik untuk kedua-dua kanak-kanak dan pengguna pemula, kerana anda boleh memasukkan kod secara manual atau menggunakan editor grafik, berdasarkan bahasa pengaturcaraan Scratch. Untuk melakukan ini, klik pada ikon yang ditunjukkan oleh anak panah.

IDE Web Espruino

Selepas itu, sebelah kanan skrin, yang dengan kod, akan berubah kepada perwakilannya yang lain:

Editor grafik

Antara muka adalah intuitif, dalam panel tengah dari atas ke bawah: buka fail baru, simpan lakaran, muatkannya ke mikrokontroler.


Kesimpulannya

Papan Espruino dan sebagainya adalah papan litar bercetak dengan lampiran yang diperlukan dan mikrokontroler, dengan penterjemah javascript, yang memproses kod dan menerjemahkan perintahnya ke dalam bahasa yang dan nol secara langsung semasa runtime. Semasa dalam bentuk klasik, program untuk mikrokontroler dimuatkan ke dalam yang sudah ada dalam bentuk kod mesin.

Pendekatan ini memberikan prestasi dalam banyak tugas, seperti Arduino.


Semak semula garis Espruino rasmi

Original Espruino

Spesifikasi peranti ini:

  • 54x41 mm (separuh kad kredit);

  • STM32F103RCT6 32Mbz 72MHz ARM Cortex M3 CPU

  • 256KB Flash, 48KB RAM;

  • Port USB mikro

  • Julat voltan input dari 3.6 hingga 15V;

  • Penyambung bateri (JST PHR-2 2 Pin);

  • Slot kad SD terbina dalam;

  • Tiga LED (merah hijau dan biru);

  • Platform untuk memasang modul Bluetooth HC-05;

  • Jarak antara lombong - 0.1 "(2.54 mm);

  • 44 pin GPIO, yang mana 26 PWM (PWM), 16 ADC (ADC), 3 USART, 2 SPI, 2 I2C dan 2 DAC (DAC);

  • Kawasan di papan boleh digunakan untuk menyambung beberapa peranti, seperti modul Wi-Fi, servos, diperluas kepada 14 output dengan arus sehingga 500 mA.

Papan mikrokontroler Espruino

Kemunculan papan dan pembahagian bersyarat nodnya ke dalam zon

Kepada ramai, lembaga mungkin kelihatan tidak menarik dan tidak lengkap, tetapi ini hanya pilihan pertama, maka mereka kelihatan lebih akrab dan progresif. Puck.JS adalah papan kecil dalam kes itu, ia mempunyai Bluetooth dan pemancar inframerah.

Puck.js

Mengikut maklumat dari tapak rasmi, spesifikasi teknikal dan ciri-cirinya adalah seperti berikut:

  • Tenaga Rendah Bluetooth;

  • Interpreter javascript Espruino yang telah dipasang terlebih dahulu;

  • Jantung papan adalah nRF52832 SoC - 64MHz ARM Cortex M4, 64kB RAM, Flash 512kB;

  • 8 x 0.1 "port GPIO (termasuk PWM (PWM), SPI, I2C, UART, input analog);

  • 9 x port SMD GPIO (termasuk PWM, SPI, I2C, UART);

  • Mesin basuh perumahan yang diperbuat daripada plastik ABS;

  • Sarung silikon dengan kunci;

  • MAG3110 Magnetometer - meter medan magnet paksi tiga;

  • Pemancar IR

  • Thermometer, sensor cahaya dan tahap bateri;

  • Tiga LED (merah, hijau dan biru);

  • Boleh program melalui tag JS NFC.

  • Pins boleh melihat sentuhan dengan kapasiti (prinsip operasi skrin sentuh telefon pintar);

  • Berat 14 g;

  • Saiz kes plastik: diameter 36mm, ketebalan - 12.5mm;

  • Dimensi papan: diameter 29mm, ketebalan 9mm.

Menunjukkan kerja:

Papan seterusnya adalah Espruino Wi-Fi, seperti namanya, cirinya adalah modul tanpa wayar terbina dalam untuk Wi-Fi.

Espruino Wi-Fi

Ciri teknikalnya:

  • Dimensi papan: 30x23 mm;

  • Papan mempunyai penyambung Mikro USB;

  • 21 GPIO: 8 input analog, 20 PWM, 1 port Serial, 3 SPI, 3 I2C;

  • Papan mempunyai 3 LED, 2 daripadanya adalah pengguna boleh diprogramkan, dan 1 memaparkan aktiviti Wi-Fi;

  • Port adalah serasi dengan Arduino dari segi voltan dan menyokong isyarat 5 Volt;

  • 1 butang;

  • Dibina pada mikrokontroler STM32F411CEU6 32-bit 100MHz ARM Cortex M4 CPU;

  • Memori: kilat 512kb, 128kb RAM;

  • Komunikasi Wi-Fi dengan ESP8266 (802.11 b / g / n);

  • RTC (jam masa nyata dengan penjana luaran).

  • Penstabil 3.3V dengan arus sehingga 250 mA dipasang di papan, voltan bekalan 3.5 hingga 5 V disokong.

  • Penggunaan semasa dalam mod tidur adalah sehingga 0.05 mA, yang membolehkan anda bekerja 2.5 tahun dari bateri 2500mAh (walaupun ini adalah lebih banyak pemasaran, tetapi baterinya sendiri lebih cenderung untuk melepaskan lebih cepat).

Espruino Wi-Fi

Demonstrasi Lembaga:


Espruino Pico - mikrokontroler untuk javascript dalam format kayu USB

Kami akan menganggapnya dalam bahagian yang berasingan, kerana ia adalah yang paling biasa di Rusia dan di luar negara, mungkin banyak terima kasih kepada syarikat Amperka. Lembaga adalah mudah untuk latihan dan melaksanakan projek siap, papan mini yang dimasukkan terus ke port USB komputer anda untuk pengaturcaraan.

Espruino Pico

Spesifikasi:

  • Dimensi: 33x15 - dengan mengambil palam USB;

  • 22 port GPIO, termasuk: 9 input analog, 21 PWM, 2 Serial (port serial), 3 SPI, 3 I2C;

  • PIN GPIO menyokong tahap isyarat 5 V, yang membolehkan anda menggabungkan papan dengan perisai dan peranti untuk arduino;

  • Palam USB Type A adalah sebahagian daripada papan.

  • Dua LED dan satu butang diprogramkan

  • Dibina pada mikrokontroler CPU 84MHz ARM Cortex M4 32-bit STM32F401CDU6

  • Memori: 384kb flash, RAM 96kb

  • Pengatur voltan 3.3 V 250mA disolder di papan dan membolehkan ia dikuasakan dari 3.5 ke 16 V.

  • Dalam mod tidur, ia menggunakan arus sehingga 0.05 mA, dan pengilang di sini mendakwa 2.5 tahun beroperasi dari 1 bateri pada 2500mAh;

  • Transistor kesan medan terbina dalam untuk mengawal litar arus tinggi.

Ini adalah lembaga terkecil dalam talian. Sepanjang tepinya adalah port I / O. Dalam kes ini, lapisan metalisasi hadir pada lubang sendiri dan di sepanjang hujung papan litar bercetak.

Espruino Pico

Lapangan sentuh adalah standard, ini membolehkan anda untuk memakai piawaian PLS standard solder kepadanya (ini adalah nama yang mereka bawa).

Pls line

Kajian terperinci tentang papan ini:


Kedai dalam talian Amperka dan barisannya dengan Javascript

Suka atau tidak, tetapi popularizer terbesar pengaturcaraan mikrokontroler bukan tradisional, khususnya dalam javascript adalah tapak Amperka. Mereka mempunyai saluran di YouTube di mana mereka mengajar bagaimana untuk menggunakan dan mempromosi produk mereka, dan juga menunjukkan pelaksanaan projek menggunakan barisan sendiri papan dari mikrokontroler.

Baris berjenama pengeluar domestik ialah ISKRA JS, yang namanya membaca nama bahasa yang dibincangkan. Ciri teknikalnya:

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

  • Kekerapan jam: 168 MHz;

  • Memori kilat: 1024 kB;

  • SRAM: 192 kB;

  • Nilai Voltan Operasi: 3.3V;

  • Voltan masukan yang disyorkan: 7-15 V atau 3.6-12 V;

  • Arus maksimum dari bas 5V: 1000 mA;

  • Arus maksimum dari bas 3.3V: 300 mA (termasuk bekalan kuasa mikrokontroler);

  • Arus maksimum dari pin atau pin: 25 mA;

  • Jumlah maksimum semasa dari pin atau pin: 240 mA;

  • Tujuan Am I / O: 26;

  • Pelabuhan dengan sokongan PWM: 22;

  • Pelabuhan ADC: 12 (12 bit);

  • Pelabuhan dengan DAC: 2 (12 bit);

  • Antara muka perkakasan yang ada: 4 × UART / Serial, 3 × I²C / TWI, 2 × SPI;

  • Dimensi: 69 × 53 mm.

ISKRA JS

Struktural, lembaga sangat dekat dengan Arduino Uno R3 - ini bermakna anda boleh menggunakan kad pengembangan untuknya.Apa perkara yang menarik yang kita lihat dalam spesifikasi teknikal? Mari bandingkan mereka dengan semua arduino kegemaran anda.

Perbandingan Iskra JS dan Arduino UNO r3

Mereka berbeza dari segi ingatan dan keupayaan, dan masing-masing akan menemui aplikasinya. Walaupun arduino dalam kebanyakan kes adalah lebih baik, kerana ia boleh dibeli untuk beberapa ratus rubel, tetapi percikan tidak.

Amperka juga menjual mikrokontroler dan mikrokomputer seperti Raspberry Pi, serta kit latihan untuk bekerja dengan mereka. Terdapat juga garis pengembangan kad untuk mikrokontroler, ini adalah modul Troyka yang dipanggil. Mereka dibuat dalam warna putih yang sama seperti yang lain daripada produk syarikat ini.

Seperti mana-mana perisai lain, produk dari Amperka mengandungi papan litar bercetak sebagai unit berfungsi utama - sensor, alat ganti, tuan atau penggerak dan lampiran yang diperlukan untuknya. Kami telah melakukan kajian kasar modul tipikal untuk Arduino - Perisai yang paling popular untuk Arduino, di sini semuanya adalah analogi. Di laman web atau di komuniti Amperka, anda boleh mencari perpustakaan untuk digunakan dengan modul dengan Iskra JS atau Arduino.

Antara tiga modul ini ialah:

  • Joystick

  • Pengekod

  • Modul dengan penyampai;

  • Kad pengembangan pelabuhan (perisai Troyka);

  • Pemecut, dan pendirian kedudukan lain;

  • Sensor cahaya, kedekatan, arus, suhu, Hall, bising, gas, alkohol dan lain-lain;

  • Penerima untuk membaca tag NFC;

  • Peralatan untuk pengurusan enjin (H-jambatan, pemandu) dan banyak lagi.

Dijual ada kit menarik untuk pemula "IODO".

Kata yang berasingan mengenai satu item dalam konfigurasi ialah # pembina. Ini adalah bahagian-bahagian untuk memasang kes-kes dan bahagian bearing struktur anda, ia disambungkan seperti pereka kanak-kanak dan membolehkan anda membuat susun atur yang stabil dengan kemungkinan membawa selamat, serta penyelesaian turnkey untuk kegunaan harian.

Pembina

Dengan cara ini, anda boleh memasang kit latihan anda dan buklet latihan dari kit boleh didapati di laman web rasmi dalam bentuk elektronik dan tersedia secara percuma.


Kesimpulannya

Untuk program mikrokontroler dalam javascript, anda hanya perlu memasang shell sesuai pada sampel anda. Walau bagaimanapun, tidak semua salinan mempunyai firmware yang sama, namun untuk peranti popular boleh didapati di forum tema. Sebagai contoh, pada microcomputer BBC Micro: proses kerja dengan persekitaran digambarkan dalam video berikut, dan pemasangan dilakukan dalam beberapa langkah.

Adakah javascript diperlukan pada mikrokontroler? Sudah tentu ya! Untuk tugas amatur yang paling, do-it-yourselfers tidak memerlukan ketepatan atau kelajuan tindak balas, dan untuk beberapa tugas profesional, keupayaan platform sedemikian cukup. Pendekatan seperti pengaturcaraan menjadikannya mungkin untuk memulakan membangunkan peranti dengan hampir tidak ada kajian mengenai struktur dan arahan mikrokontroler. Tetapi dalam kaedah pengaturcaraan klasik, perlu mengambil kira beberapa perkara, seperti pelbagai jenis pembolehubah, alamat memori, dan sebagainya.

Lihat juga di i.electricianexp.com:

  • PIC microcontrollers untuk pemula
  • Jenis dan perkiraan mikrokontroler AVR
  • Papan Arduino yang mana untuk dipilih
  • Apakah paparan Nextion dan bagaimana untuk bekerja dengan mereka?
  • Menyambung dan pengaturcaraan Arduino untuk pemula

  •