Thể loại: Mạch vi điều khiển
Số lượt xem: 6809
Bình luận về bài viết: 0

Các bộ vi điều khiển có thể lập trình trong JavaScript: chọn loại nào, tính năng và khả năng

 

Sau năm 2010, ở nước ta, sở thích phát thanh nghiệp dư đã có một cơn gió thứ hai với sự ra đời của khả năng lập trình vi điều khiển bằng các ngôn ngữ lập trình cấp cao, khác xa với bàn ủi. Dự án đại chúng đầu tiên là Hội đồng quản trị gia đình Arduino. Chúng tôi đã nhiều lần kiểm tra các bộ vi điều khiển này trong các bài viết, nhưng hôm nay chúng tôi sẽ nói về các bộ vi điều khiển được lập trình trong javascript. Vâng Ngôn ngữ rất giống nhau được sử dụng chủ yếu khi viết các trang WEB.

Vi điều khiển có thể lập trình trong javascript

Phạm vi hoặc là vi điều khiển như vậy cần thiết ở tất cả?

Nếu chúng ta xem xét từ quan điểm của thiết bị điện tử trong các thiết bị mà chúng ta sẽ xem xét dưới đây, vi điều khiển tiêu chuẩn được sử dụng. Sự khác biệt so với các sản phẩm từ nhà sản xuất chỉ là chúng có chương trình tải được cài đặt sẵn, mặc dù gọi đó là những gì bạn muốn, cho phép bạn thực thi mã chương trình được tải xuống cho bạn và trong một số trường hợp, giao tiếp với máy tính qua USB, nếu nó không được triển khai trong phần cứng.

Vi điều khiển cho javascript cho và các ngôn ngữ phi truyền thống khác là gì? Có những cuộc tranh luận giữa những người nghiệp dư và chuyên gia trong việc phát triển điện tử trên các diễn đàn chuyên ngành, trong đó một số dự án khen ngợi như "Arduino", trong khi những người khác làm nhục và chế giễu họ theo mọi cách có thể vì sự đơn giản và trừu tượng của nhà phát triển từ hầu hết các vấn đề với sắt.

Quan trọng: Trong phần này của bài viết, chúng tôi nói: Arduino Arduino, bởi vì nó đã trở thành điểm khởi đầu cho hầu hết những người yêu thích các thiết bị điện tử.

Arduins có thể được lập trình trong C. Nhưng điều này có cần thiết không? Hãy xem tại sao trong hầu hết các trường hợp, tốc độ phản ứng của vi điều khiển là không cần thiết. Công nhân Arduino thường thích lắp ráp các bộ điều khiển để tưới tự động và bao gồm ánh sáng để "chiếu sáng" cho cây. Một thiết bị kết hợp như vậy sẽ là một trợ giúp tuyệt vời cho những người thích trồng một cái gì đó trong căn hộ hoặc nhà kính.

Nhưng tốc độ của thiết bị điều khiển là cần thiết ở đây? 15-20 năm trước không ai sử dụng nó ở đây vi điều khiển - một nhà thiết kế nghiệp dư sẽ quản lý thành công một cặp bộ khuếch đại hoạt động hoặc các yếu tố logic. Nhưng nếu chúng ta nói về sự phù hợp của các bộ vi điều khiển được thảo luận cho các dự án này, thì ở đây nó hoàn toàn không quan tâm sau bao nhiêu mili giây đèn nền bật hoặc trái đất bắt đầu tưới nước.

Hệ thống tưới nước tự động

Dự án phổ biến tiếp theo là trạm thời tiết gia đình, và hóa ra với những mục đích như vậy, các khả năng cơ bản của arduin đủ để đọc thông tin từ các cảm biến và hiển thị chúng trên màn hình tổng hợp ký tự.

Trong ví dụ quản lý Dải LED RGB Đèn LED thông thường hoặc thông minh có điều khiển "pixel-by-pixel" (một ví dụ về băng SMART như vậy và dấu của nó mà bạn nhìn thấy trong hình bên dưới) cũng có đủ tài nguyên.

Băng thông minh

Nhưng bạn cần tốc độ ở đâu và không phù hợp để sử dụng các ngôn ngữ lập trình đơn giản như Scratch hay javascript? Mọi thứ rất đơn giản:

  • Trong các mạch chính xác;

  • Trong hệ thống báo động và an ninh;

  • Trong các dụng cụ đo có độ chính xác cao với nhu cầu lấy nhanh dữ liệu từ ADC, bao gồm cả máy hiện sóng thông thường;

  • Trong các thiết bị có yêu cầu làm việc tự chủ lâu dài ở chế độ ngủ;

  • Trong trường hợp bạn cần chuyển sang shove, càng nhiều chức năng và mã càng tốt vào vi điều khiển, nhưng điều này gần đây không phải là một nhiệm vụ rất cấp bách liên quan đến việc giảm chi phí của hầu hết các thiết bị trên thị trường.

Trong hầu hết các nhiệm vụ này, khối vấp ngã là tốc độ và bộ nhớ.Để có kết quả tối ưu, trong trường hợp này sẽ hợp lý hơn khi không sử dụng ngay cả C / C ++, mà là Trình biên dịch (ASM). Thật vậy, nếu bạn đang nhắm đến các dự án như vậy, điều đó có nghĩa là bạn có một lượng kiến ​​thức nhất định, điều đó có nghĩa là không có nhu cầu.


Kết luận?

Cần có bộ vi điều khiển với các ngôn ngữ đơn giản khi không có yêu cầu nghiêm ngặt như tốc độ hoặc độ chính xác đo, nhưng ngay cả trong một số trường hợp, chúng sẽ cung cấp độ chính xác cho các thiết bị không chuyên dùng cho mục đích nghiệp dư.



Espruino - một vi điều khiển mạnh mẽ và ngôn ngữ javascript đơn giản

Nền tảng Espruino là một bộ phần mềm và phần cứng để lập trình vi điều khiển bằng ngôn ngữ javascript, nó bao gồm ba yếu tố:

1. Chương trình cơ sở cho một vi điều khiển có trình thông dịch ngôn ngữ JS.

2. Môi trường phát triển cho IDE Web Espruino.

3. Một bo mạch có vi điều khiển với phần sụn chính để làm việc trực tiếp với Espruino.

Espruino

Ý tưởng được Gordon Williams phát triển và thực hiện vào năm 2013, và ông đã gây quỹ cho nó bằng cách sử dụng nền tảng gây quỹ cộng đồng (Kickstarter). Trên thực tế, bản chất của sự phát triển là phát triển phần mềm Espruino (động cơ) để tải nó vào vi điều khiển. Nó chủ yếu được sử dụng trên các bộ vi điều khiển thuộc họ STM32, với kiến ​​trúc ARM-cortex. Thiết bị thuận tiện hơn cho hoạt động, chúng tôi sẽ xem xét dưới đây.

Vi điều khiển Espruino

Để viết chương trình cho vi điều khiển trong javascript, bạn cần cài đặt Espruino Web IDE. Đây là chương trình hoặc tiện ích mở rộng cho trình duyệt Google Chrome Internet phổ biến, cài đặt chỉ bằng một cú nhấp chuột.

Sau khi nhấp vào nút "Cài đặt" trong menu "dịch vụ", một ứng dụng sẽ xuất hiện và bạn có thể vào menu này bằng cách nhập vào thanh địa chỉ: chrome: // apps /

Khi bạn nhấp vào biểu tượng với một tách cà phê, môi trường phát triển sẽ mở ra, điều đáng chú ý không phải trong trình duyệt, mà là trong một cửa sổ riêng biệt.

Môi trường này thú vị cho cả trẻ em và người dùng mới bắt đầu, bởi vì bạn có thể nhập mã theo cách thủ công hoặc sử dụng trình chỉnh sửa đồ họa dựa trên ngôn ngữ lập trình Scratch. Để làm điều này, nhấp vào biểu tượng mà mũi tên chỉ vào.

Ý tưởng web Espruino

Sau đó, phía bên phải của màn hình, với mã, sẽ thay đổi thành đại diện khác của nó:

Biên tập đồ họa

Giao diện trực quan, trong bảng điều khiển trung tâm từ trên xuống dưới: mở một tệp mới, lưu bản phác thảo, tải nó vào vi điều khiển.


Kết luận

Các bảng Espruino và tương tự là một bảng mạch in với các tệp đính kèm và vi điều khiển cần thiết, với trình thông dịch javascript, xử lý mã và dịch các lệnh của nó sang ngôn ngữ của các số và số 0 trực tiếp khi chạy. Trong khi ở dạng cổ điển, chương trình cho vi điều khiển được tải vào cái sau đã ở dạng mã máy.

Cách tiếp cận này mang lại hiệu suất trong nhiều nhiệm vụ, như Arduino.


Đánh giá về dòng Espruino chính thức

Espruino gốc

Thông số kỹ thuật của thiết bị này:

  • 54x41 mm (một nửa thẻ tín dụng);

  • STM32F103RCT6 CPU ARM Cortex M3 32-bit 72 MHz

  • Flash 256KB, RAM 48KB;

  • Cổng micro USB

  • Dải điện áp đầu vào từ 3,6 đến 15V;

  • Đầu nối pin (Pin JST PHR-2 2);

  • Khe cắm thẻ SD tích hợp;

  • Ba đèn LED (đỏ xanh và xanh);

  • Nền tảng để cài đặt mô-đun Bluetooth HC-05;

  • Khoảng cách giữa các mỏ - 0,1 "(2,54 mm);

  • 44 chân GPIO, trong đó 26 chân (PWM), 16 ADC (ADC), 3 USART, 2 SPI, 2 I2C và 2 DAC (DAC);

  • Khu vực trên bảng có thể được sử dụng để kết nối một số thiết bị, chẳng hạn như các mô-đun Wi-Fi, servo, có thể mở rộng thành 14 đầu ra với dòng điện lên tới 500 mA.

Bảng vi điều khiển Espruino

Sự xuất hiện của bảng và sự phân chia có điều kiện của các nút của nó thành các vùng

Đối với nhiều người, bảng có vẻ không hấp dẫn và không đầy đủ, nhưng đây chỉ là lựa chọn đầu tiên của họ, sau đó họ trông quen thuộc và tiến bộ hơn. Puck.JS là một bảng thu nhỏ trong trường hợp, nó có trên bo mạch Bluetooth và một bộ phát hồng ngoại.

Puck.js

Theo thông tin từ trang web chính thức, thông số kỹ thuật và tính năng của nó như sau:

  • Bluetooth năng lượng thấp;

  • Trình thông dịch javascript Espruino được cài đặt sẵn;

  • Trái tim của bo mạch là nRF52832 SoC - ARM Cortex M4 64 MHz, RAM 64kB, Flash 512kB;

  • Các cổng GPIO 8 x ​​0,1 "(bao gồm cả PWM (PWM), SPI, I2C, UART, đầu vào tương tự);

  • 9 cổng SM GPIO (bao gồm cả PWM, SPI, I2C, UART);

  • Máy giặt vỏ làm bằng nhựa ABS;

  • Vỏ silicon có chìa khóa;

  • Từ kế MAG3110 - máy đo từ trường ba trục;

  • Máy phát hồng ngoại

  • Nhiệt kế, cảm biến ánh sáng và mức pin;

  • Ba đèn LED (đỏ, xanh lá cây và xanh dương);

  • Lập trình thông qua thẻ NFC NFC.

  • Ghim có thể cảm nhận cảm ứng theo dung lượng (nguyên tắc hoạt động của màn hình cảm ứng của điện thoại thông minh);

  • Trọng lượng 14 g;

  • Kích thước của vỏ nhựa: đường kính 36mm, độ dày - 12,5mm;

  • Kích thước bảng: đường kính 29mm, độ dày 9mm.

Trình diễn công việc:

Bảng tiếp theo là Espruino Wi-Fi, đúng như tên gọi, tính năng của nó là một mô-đun không dây tích hợp cho Wi-Fi.

Espruino Wi-Fi

Đặc tính kỹ thuật của nó:

  • Kích thước bảng: 30x23 mm;

  • Bảng mạch có đầu nối Micro USB;

  • 21 GPIO: 8 đầu vào tương tự, 20 PWM, 1 cổng nối tiếp, 3 SPI, 3 I2C;

  • Bảng mạch có 3 đèn LED, 2 trong số chúng có thể lập trình được cho người dùng và 1 màn hình hiển thị hoạt động Wi-Fi;

  • Các cổng tương thích với Arduino về điện áp và hỗ trợ tín hiệu 5 Volt;

  • 1 nút;

  • Được xây dựng trên bộ vi điều khiển STM32F411CEU6 CPU ARM Cortex M4 32 bit 100 bit;

  • Bộ nhớ: flash 512kb, RAM 128kb;

  • Giao tiếp Wi-Fi với ESP8266 (802.11 b / g / n);

  • RTC (đồng hồ thời gian thực với một máy phát bên ngoài).

  • Một bộ ổn định 3,3V với dòng điện lên đến 250 mA được lắp đặt trên bo mạch, điện áp cung cấp 3,5 đến 5 V được hỗ trợ.

  • Mức tiêu thụ hiện tại ở chế độ ngủ lên tới 0,05 mA, cho phép bạn hoạt động 2,5 năm với pin 2500mAh (mặc dù điều này mang tính tiếp thị nhiều hơn, nhưng bản thân pin có khả năng xả nhanh hơn).

Espruino Wi-Fi

Ban trình diễn:


Espruino Pico - vi điều khiển cho javascript ở định dạng thanh USB

Chúng tôi sẽ xem xét nó trong một phần riêng biệt, vì nó phổ biến nhất ở Nga và gần nước ngoài, có lẽ nhiều người cảm ơn công ty Amperka. Bảng này thuận tiện cho việc đào tạo và thực hiện các dự án đã hoàn thành, một bảng thu nhỏ được cắm trực tiếp vào cổng USB trên máy tính của bạn để lập trình.

Espruino Pico

Thông số kỹ thuật:

  • Kích thước: 33x15 - có tính đến phích cắm USB;

  • 22 cổng GPIO, bao gồm: 9 đầu vào analog, 21 PWM, 2 serial (cổng nối tiếp), 3 SPI, 3 I2C;

  • Các chân GPIO hỗ trợ các mức tín hiệu 5 V, cho phép bạn kết hợp bảng với các tấm chắn và thiết bị cho arduino;

  • Đầu cắm USB loại A là một phần của bo mạch.

  • Hai đèn LED và một nút lập trình

  • Được xây dựng trên bộ vi điều khiển CPU ARM Cortex M4 32-bit 84 MHz STM32F401CDU6

  • Bộ nhớ: flash 384kb, RAM 96kb

  • Một bộ điều chỉnh điện áp 3,3 V 250mA được hàn trên bảng và cho phép nó được cấp nguồn từ 3,5 đến 16 V.

  • Ở chế độ ngủ, nó tiêu thụ dòng điện lên tới 0,05 mA và nhà sản xuất ở đây tuyên bố 2,5 năm hoạt động từ 1 pin ở 2500mAh;

  • Transitor hiệu ứng trường tích hợp để điều khiển các mạch điện cao.

Đây là bảng nhỏ nhất trong dòng. Dọc theo các cạnh của nó là các cổng I / O. Trong trường hợp này, lớp kim loại hóa có mặt cả trên các lỗ và dọc theo phần cuối của bảng mạch in.

Espruino Pico

Cao độ tiếp xúc là tiêu chuẩn, điều này cho phép bạn hàn các dòng PLS tiêu chuẩn cho nó (đây là tên họ mang theo).

Xin vui lòng

Đánh giá chi tiết của hội đồng này:


Cửa hàng trực tuyến Amperka và dòng bảng với Javascript

Dù muốn hay không, nhưng phổ biến lớn nhất về lập trình vi điều khiển phi truyền thống, đặc biệt trong javascript là trang Amperka. Họ có một kênh YouTube nơi họ dạy cách sử dụng và lập trình các sản phẩm của họ và cũng cho thấy việc triển khai các dự án bằng cách sử dụng dòng bảng của riêng họ từ các bộ vi điều khiển.

Dòng thương hiệu của nhà sản xuất trong nước là ISKRA JS, tên của nó đọc tên của ngôn ngữ đang được thảo luận. Đặc tính kỹ thuật của nó:

  • Vi điều khiển: STM32F405RG (ARM Cortex M4 32 bit);

  • Tần số xung nhịp: 168 MHz;

  • Bộ nhớ flash: 1024 kB;

  • SRAM: 192 kB;

  • Điện áp hoạt động định mức: 3,3V;

  • Điện áp đầu vào được đề xuất: 7 mộc15 V hoặc 3,6.;

  • Dòng tối đa từ bus 5V: 1000 mA;

  • Dòng tối đa từ bus 3,3V: 300 mA (bao gồm cả nguồn cung cấp vi điều khiển);

  • Dòng tối đa từ pin hoặc pin: 25 mA;

  • Tổng dòng tối đa từ chân hoặc chân: 240 mA;

  • Cổng I / O mục đích chung: 26;

  • Các cổng có hỗ trợ PWM: 22;

  • Cổng ADC: 12 (12 bit);

  • Cổng có DAC: 2 (12 bit);

  • Giao diện phần cứng khả dụng: 4 × UART / serial, 3 × I²C / TWI, 2 × SPI;

  • Kích thước: 69 × 53 mm.

ISKRA JS

Về mặt cấu trúc, bo mạch rất gần với Arduino Uno R3 - điều này có nghĩa là bạn có thể sử dụng các thẻ mở rộng cho nó.Những điều thú vị chúng ta thấy trong các thông số kỹ thuật? Hãy so sánh chúng với tất cả các arduino yêu thích của bạn.

So sánh Iskra JS và Arduino UNO r3

Chúng khác nhau về bộ nhớ và khả năng, và mỗi loại sẽ tìm thấy ứng dụng của nó. Mặc dù arduino trong hầu hết các trường hợp là thích hợp hơn, bởi vì nó có thể được mua với giá vài trăm rúp, và một tia lửa - không.

Amperka cũng bán vi điều khiển và máy vi tính như Raspberry Pi, cũng như bộ dụng cụ đào tạo để làm việc với họ. Ngoài ra còn có một dòng thẻ mở rộng cho vi điều khiển, đây là những mô-đun được gọi là mô-đun Troyka. Chúng được làm với màu trắng giống như các sản phẩm còn lại của công ty này.

Giống như bất kỳ tấm khiên nào khác, các sản phẩm từ Amperka chứa bảng mạch in là đơn vị chức năng chính - cảm biến, thiết bị chuyển mạch, thiết bị chính hoặc thiết bị truyền động và các phụ kiện cần thiết cho nó. Chúng tôi đã thực hiện đánh giá sơ bộ các mô-đun điển hình cho Arduino - Các lá chắn phổ biến nhất cho Arduino, ở đây mọi thứ là tương tự. Trên trang web hoặc trong cộng đồng Amperka, bạn có thể tìm thấy các thư viện để sử dụng với các mô-đun với Iskra JS hoặc Arduino.

Trong số ba mô-đun có:

  • Cần điều khiển

  • Bộ mã hóa

  • Module có rơle;

  • Thẻ mở rộng cảng (khiên Troyka);

  • Gia tốc kế, và các cảm biến vị trí khác;

  • Các cảm biến của ánh sáng, độ gần, dòng điện, nhiệt độ, Hội trường, tiếng ồn, khí, rượu và những thứ khác;

  • Máy thu để đọc thẻ NFC;

  • Thiết bị quản lý động cơ (cầu H, trình điều khiển) và nhiều hơn nữa.

Đang bán có một bộ thú vị cho người mới bắt đầu "IODO".

Một từ riêng biệt về một mục duy nhất trong cấu hình là # hàm tạo. Đây là những bộ phận để lắp ráp vỏ và các bộ phận của cấu trúc của bạn, chúng được kết nối như một nhà thiết kế trẻ con và cho phép bạn bố trí ổn định bình thường với khả năng mang theo an toàn và giải pháp chìa khóa trao tay để sử dụng hàng ngày.

Người xây dựng

Nhân tiện, bạn có thể tập hợp các bộ huấn luyện của bạn, và tập sách đào tạo từ bộ này có sẵn trên trang web chính thức ở dạng điện tử và có sẵn miễn phí.


Kết luận

Để lập trình vi điều khiển trong javascript, bạn chỉ cần cài đặt shell thích hợp trên mẫu của bạn. Tuy nhiên, không phải mọi bản sao đều có phần sụn tương ứng, tuy nhiên đối với các thiết bị phổ biến có thể được tìm thấy trên các diễn đàn chuyên đề. Ví dụ, trên máy vi tính BBC Micro: bit, quá trình làm việc với môi trường được mô tả trong video sau và quá trình cài đặt được thực hiện chỉ trong vài bước.

Là javascript cần thiết trên vi điều khiển? Hoàn toàn có! Đối với hầu hết các tác vụ nghiệp dư, những người tự làm không cần độ chính xác hoặc tốc độ phản hồi và đối với một số nhiệm vụ chuyên nghiệp, khả năng của các nền tảng đó là đủ. Cách tiếp cận lập trình như vậy cho phép bắt đầu phát triển các thiết bị mà hầu như không cần nghiên cứu về cấu trúc và các lệnh của vi điều khiển. Nhưng trong phương pháp lập trình cổ điển, cần phải tính đến một số thứ, chẳng hạn như nhiều loại biến, địa chỉ bộ nhớ, v.v.

Xem thêm tại electro-vi.tomathouse.com:

  • Vi điều khiển PIC cho người mới bắt đầu
  • Các loại và sự sắp xếp của vi điều khiển AVR
  • Nên chọn bo mạch Arduino nào
  • Màn hình Nextion là gì và làm việc với chúng như thế nào?
  • Kết nối và lập trình Arduino cho người mới bắt đầu

  •