ObnizとjQuaryでLED点灯/消灯
・目次
1.目的
・obnizeを使用して、DFplayerとUART通信を行う。
・obnizを使用して、LEDのON/OFFを行う。
2.動作説明
・起動時に、LEDがONし、1秒wait、LEDがOFFする。
・その後UART通信を行い、フォルダ01のファイル001を再生する。
・ボタンを表示:
・ボタン1:クリックするとLEDをON/OFFする。
(今後、ソレノイドを使用する予定の為、名前はソレノイドになっている。)
・ボタン2:クリックすると、DFplayer内の次の曲を再生する。
3.使用機器
個数 | 部品名 | 型番 |
---|---|---|
1 | USBケーブル(obniz付属品) | USBtypeC |
1 | obniz | obniz Board 1Y |
1 | ブレッドボード・ジャンパーワイヤ(オス-オス) | B094ML2RLP |
1 | ブレッドボード | LEOBROJP043 |
1 | 発光ダイオード(LED) | LEOBROJP043 |
1 | 抵抗(100Ω程度) | B077N1BV3Y |
回路とは別にmicroSD及びmicroSDを書き込むPCや変換が必要
microSD:マイクロsdカード 32GB SDカード マイクロSDカード 高速Class10 UHS-I U3
これを使用し、PCにmicroSDを接続し、再生する音楽ファイルを書き込む。
32GBまでのマイクロSDに対応している。
4.ピン接続
obniz | DFplayer | ||
---|---|---|---|
pin0 | UART_TX | pin2 | UART_RX |
pin1 | UART_RX | pin3 | UART_TX |
pin2 | GND | GND | |
LED接続 | |||
pin4 | sole_out | 長い足側 | LEDアノード |
pin3 | sole_gnd | 短い足側 | LEDカソード |
5.接続回路図(DFplayerとobnizの接続部分)
6.プログラム作成
・プログラムはindex.htmlとmain.jsファイルを作成する。
・cssファイル(style.css)も作成しインクルードしているが、特に何も記載していない。
HTML側(index.html)
<!-- 日付:2022/11/19 目的:obnizを使用し、ソレノイドとDFplayerを操作するプログラム 概要:obnizを使用し下記動作をするプログラム ・起動時にソレノイドをON ・1秒wait ・ソレノイドをOFF ・DFplayerに次の曲を再生する指示をUART通信で送る。 ・ボタンにより、ソレノイドのON/OFF,次の曲の再生 --> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <!-- タブタイトル --> <title>お休みなさい</title> <!-- ファイルのインクルード --> <!-- CSSの設定 --> <link rel="stylesheet" href="style.css" /> <!-- Bootstrapを使用 --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" /> <!-- JQuaryを使用 --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <!-- obnizを使用 --> <script src="https://unpkg.com/obniz@3.x/obniz.js" crossorigin="anonymous" ></script> </head> <body> <div id="obniz-debug"></div> <button class="btn btn-primary" id="button1"> ボタン1(ソレノイドON/OFF) </button> <button class="btn btn-primary" id="button2"> ボタン2(次の音楽を再生) </button> <!-- main.js(javascript)ファイルの読み込み --> <script type="text/javascript" src="./main.js"></script> </body> </html>
javascript側(main.js)
///javascriptプログラム ///ファイル名:main.js /* 機能: obniz動作 ボタンのクリック動作 ・ソレノイドON/OFF ・音楽再生 使用ピン: ・pin0:UART_TX ・pin1:UART_RX ・pin2:UART_GND ・pin3:ソレノイド_GND ・pin4:ソレノイド_3.3V */ //obniz ID入力 var obniz = new Obniz("OBNIZ_ID_HERE"); ///obniz動作処理開始 obniz.onconnect = async function(){ //デバック確認:コンソールにobniz開始を表示 console.log("obniz開始"); //変数宣言 let solenoidf; //solenoid ON/OFF監視フラグ solenoidf = false; //ソレノイド状態フラグ //定数宣言 const WAITSEC = 1000; //1秒wait //UART通信コマンド //Start(0x7E),VER,Len,CMD,Feedback,para1,para2,$O(End bit:0xEF) //checksumは除く。 //UART通信用:次の曲を再生 let data_send = [0x7E,0xFF,0x06,0x01,0x00,0x00,0x00,0xEF]; //UART通信用:ファイル001を再生 //let data_send2 = [0x7E,0xFF,0x06,0x03,0x00,0x00,0x01,0xEF];
//UART通信用:フォルダ01のファイル001を再生 let data_send2 = [0x7E,0xFF,0x06,0x0F,0x00,0x01,0x01,0xEF]; console.log(data_send); //ソレノイド出力宣言 var sole = obniz.wired("Solenoid",{gnd:3,signal:4}); //UART宣言 var uart = obniz.getFreeUart(); ///ボーレート9600でUART通信開始, pin0:tx,pin1:rx,pin2:gnd obniz.uart0.start({tx:0,rx:1,gnd:2,baud:9600}); //obniz.uart0.start({tx:7,rx:6,gnd:2,baud:9600}); //起動時動作処理 sole.on(); //ソレノイドON solenoidf = true; await obniz.wait(WAITSEC); //1000ms wait sole.off(); //ソレノイドOFF solenoidf = false; //UARTコマンド送信:フォルダ01のファイル001を再生 obniz.uart0.send(data_send2); //コマンド送信 //ボタン1クリック処理 $("#button1").click(function(){ if(solenoidf == false){ //ソレノイドOFF時 //ソレノイドON処理 sole.on(); solenoidf = true;
}else{ //ソレノイドON時 //ソレノイドOFF処理 sole.off(); solenoidf = false; } }); //ボタン2クリック処理 $("#button2").click(function(){ //UARTコマンド送信:次の曲を再生する。 obniz.uart0.send(data_send); //コマンド送信 console.log("uartコマンド送信"); //コンソールにuartコマンド送信を表示 }); }
5.プログラム説明
→参照:jQuary、javascript学習_1
・obnizの動作について
・let solenoidf; //solenoid ON/OFF監視フラグ
→LEDON/OFFを管理する用の変数を作成
→trueの時:LEDがONの状態
→falseの時:LEDがOFFの状態
を示す。
・ const WAITSEC = 1000; //1秒wait
→wait用定数を設定
→waitを複数使う場合、wait時間を一斉に変える時など定数として設定しておくと楽
・let data_send = [0x7E,0xFF,0x06,0x01,0x00,0x00,0x00,0xEF];
let data_send2 = [0x7E,0xFF,0x06,0x0F,0x00,0x01,0x01,0xEF];
→DFplayerにUART通信で送るコマンド
→コマンドの説明は、DFplayerの説明に記載(予定)
→データシート参照
→data_send2は、フォルダ01のファイル001を再生する。
・var sole = obniz.wired("Solenoid",{gnd:3,signal:4});
→pin3をGND、pin4を信号出力に設定
→参照:Solenoid | JS Parts Library | obniz
・ var uart = obniz.getFreeUart();
→空いているUART通信ポートを検索
・obniz.uart0.start({tx:0,rx:1,gnd:2,baud:9600});
→設定した内容でUART通信を開始する。
→設定内容
pin0をUART_TX
pin1をUART_RX
pin2をGND
ボーレート9600
でUART通信を開始。
・sole.on(); //ソレノイドON
→ソレノイドをONに設定する。
→関数の参照:obniz/index.js at master · obniz/obniz · GitHub
・await obniz.wait(WAITSEC); //1000ms wait
→1000ms待つ。
→参照:Wait and Repeat - obniz Docs
・ obniz.uart0.send(data_send2); //コマンド送信
→上記で設定したコマンド(配列:data_send2)を送信する。
・ $("#button1").click(function(){
→id:button1をクリックした時処理する。