Arduino'ya JavaScript: Hafif olacak

semaver

New member


  1. Arduino'ya JavaScript: Hafif olacak

IoT serisinin önceki bölümünde, Shifregister 74HC595 tartışıldı ve yardımı, birçok LED'in doğrudan Arduino'ya bağlamak zorunda kalmadan kontrol edilebildi. Bu proje artık devreyi JavaScript ve Node.js ile kontrol etmek için değiştirildi.



Şimdiye kadar ana amaç elektroniklerdi. Ancak Nesnelerin İnterneti için iletişimin görünümüne de ihtiyacımız var. Bilindiği gibi, JavaScript sunucu tarafında seçim araçlarıdır. Peki bir Arduino JavaScript ile nasıl kontrol edilebilir? Bu makalede, SHIF kaydına bağlı LED'leri ilgili bir programla kontrol etmek istiyoruz. Bunun başlangıç noktası son bölümün devresidir.

Devreye ek






Önceki devremiz



Önceki bölümün devresini kullanıyoruz




Arduino'yu bilgisayardan kontrol etmek için seri iletişim için standart bir protokol kullanıyoruz. Şirketin tam olarak farklı kartları ve programlama dillerini destekleyen bir protokol sunduğu şeydir. Arduino ile şirket aracılığıyla karşılaşmadan önce, şirketin protokolünü konseyimize aktarmalıyız. Neyse ki, bu çok kolay.

  • Arduino fikrinde menü yolu altında bulabilirsiniz Dosya/Örnekler/Şirket Taslak Standart şirket.
  • Eskiz'i sekmenizdeki kimlik üzerinden indirin.
Node.js kurulumu


Node.js, İnternet ve Arduino arasında bir arayüz olarak kullanılır. Node.js, eşzamansız iletişim için ölçeklenebilir bir zaman ortamıdır ve olaylar tarafından yönlendirilir. HTTP'yi desteklediğinden, IoT uygulamaları için bir temel oluşturabilir. Node.js.'nin geçerli sürümünü alın Windows, OS X, Linux ve diğer işletim sistemleri için sürümler mevcuttur. Çerçeveye daha yakından bakmak istiyorsanız kaynak kodunu oradan da alabilirsiniz. Paketi hedef hesap makinesine yükleyin. Bu, bir sunucu çerçevesinin mevcut olduğu anlamına gelir.



Johnny-Five canlı


Ancak Arduino ile iletişim nasıl entegre edilebilir? IoT ve Robotics için bir JavaScript çerçevesi olan Johnny-Five ile çalışıyor. Node.js'de, Düğüm Paket Yönetimi'ni (NPM) kullanırsanız Johnny-Five'ın eklenmesi oldukça basittir.

Sadece bir komut satırı olarak

npm install johnny-five

Zaten arayın ve yer al ve yükleyin.

Johnny-Five'ın belgesel API'sinde, Shifmisters'ın kontrolü hakkında bilgi bulacaksınız. Web sitesinde bir dizi örnek belge ve program da vardır.

Koşmanın basit bir ışığı


Örneğimizde, her yarım saniyede bir yarışan bir yarış ışığı yapılmalıdır. İfadesi 1 p>
// Program: j5-lauflicht-demo.js
var five = require("johnny-five"); // Einbinden der Bibliothek
var board = new five.Board(); // Board initialisieren
board.on("ready", function() { // function() => auszuführender Code
var register = new five.ShiftRegister({ // Shiftregister initialisieren
pins: {
data: 11, // Arduino Pin 11 an Data-Pin des Shiftregisters
clock: 12, // Arduino Pin 12 an Takt-Pin des Shiftregisters
latch: 8, // Arduino-Pin 8 an Latch-Pin des Shiftregisters
reset: 9 // wird hier nicht verwendet
}
}); // end ShiftRegister

this.loop(500, function() { // alle 500 msecs wird der Block aufgerufen
for (i = 0; i < 8; i++) register.send(1 << i); // Lauflicht erzeugen
}); // end loop
}); // end board.on


JSON Türü Program Kodunda mevcuttur çam 74HC595 bağlantılarının yapılandırması. Veri alanı sıfırlamak Kod kullanmıyor. Ancak, JavaScript RESET-EN aracılığıyla kaydı istiyorsanız bu yararlıdır. Programda, bir bağlantı ipliğinin Arduino'nun Digital Exit 9'daki Shypregister restorasyon pimine yol açtığını düşündüm. Dediğim gibi, bu bağlantı mevcut program için aslında gerekli değildir.

Yukarıdaki programı başlatmak için komut satırında aşağıdakileri arayın:

node j5-lauflicht-demo.js

Not: Yukarıda belirtildiği gibi, Arduino del Sketch kartındaki başarılı iletişim için Standart şirket yüklenecek. Aksi takdirde, JavaScript sürümünde bir istisna vardır.

Sınırlar


@Josefx'in son yayındaki yorumlarda doğru bir şekilde fark ettiği gibi, devrelerin bir mikrodenetleyici sistemine bağlantısı fiziksel sınırları vardır. Bir Arduino kartı maksimum 200 ancak elektrik ve tüketimi bireysel dijital pimlerde 20 mA sunabilir. Bu nedenle, bu sınırların bir devrede gözlemlendiğinden emin olmak önemlidir. Teknik kartlar tarafından kullanılan tuğlaların incelenmesi bu amaç için önemlidir.

Bir LED yaklaşık 20 mA tüketir. Bu nedenle, LED'leri doğrudan Arduino'da yönetirsek, söz konusu sınırların altındayız. Ancak, Shif kaydı en fazla 70 ancak tüm geziler için tolere edilir. Bu, yukarıdaki programda bir sorun değil, çünkü her zaman sadece bir LED parlak yapıyoruz. Daha büyük yükler için pil veya güç kaynağı yoluyla ayrı bir güç kaynağına ihtiyacımız var. Bu, Arduino devresinden ayrılmalıdır. Ayrı bir bölüm olacak.

@MevanseuDonym1234 bu konuda ilginç bir bağlantıya atıfta bulundu.

Değerli bilgiler için @josefx ve @mevansaunymonym1234'e çok teşekkürler.

Özet


Arduino'yu JavaScript aracılığıyla ana bilgisayar bilgisayara başarıyla bağladık ve Node.js, Johnny-Five ve Standard Company sayesinde iletebiliriz. Sunucu tarafında bir JavaScript kullanarak, IoT cihazı artık web siteleri aracılığıyla, örneğin bir akıllı telefonda JQuery Mobile ile de kontrol edilebilir. Bir web sunucusu ayarlamak için Node.js ile de mümkündür – bazı program satırlarıyla kesinlikle çok basit.

İlk deneyler için hazırlanırlar. Gösterilen devrede, aktüatörleri Arduino'nun dijital çıkışları yoluyla kontrol ediyoruz. Bir sonraki blog yazısından sensörlerin konusuna dönüyorum.


()
 
Üst