obnizを使って子供用の小学校教材のモーターカーをパックして、ラジコン化してみました。
#はじめに
obnizとは、Javascriptと、HTMLで組んだプログラムが、クラウド経由で簡単に実装できるマイコンで、接続した機器やセンサーを操作できるIoT端末です。
#教材
子供用の小学校教材であるモーターカーは電池駆動で、スイッチをオンにすることにより前進します。
それを、obnizでサーボモーターとモーターを操作することによりラジコン化させます。
#使用機器
・obniz
・サーボモーターSG-90
※秋月電子で購入するも3個中2個不良…
・ミニ四駆などの普通のモーター
#仕様
obnizのクラウドで、サーボモーターやモーター用のSDKがあるため、これを使用します。
0,1,2ピンをサーボモーターとし、3,4ピンをモーターとします。
画面はHTMLで記載し、全身後退、左右を操作できるようにします。
#画像
前輪と後輪の間に強引にサーボモーターを組み込み、モーターは電池駆動を止めobniz直接駆動とします。
サーボは後輪部分に接続し、前輪とは棒で接続して左右に動かせるようになっています(つまようじ・・・)
前輪には滑り止めのガムテープを貼っています。
#ソース
<!-- HTML Example -->
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://obniz.io/js/jquery-3.2.1.min.js"></script>
<script src="https://unpkg.com/obniz@1.16.1/obniz.js"></script>
</head>
<body>
<div id="obniz-debug"></div>
<h1>ラジコン</h1>
<button id="susumu">進む</button><br>
<button id="modoru">戻る</button><br>
<button id="stop">止める</button><br>
左右<input id="slider1" type="range" min="0" max="180" /><br>
パワー<input id="power" type="range" min="0" max="200" value="100" /><input id="powertxt" type ="text"><br>
<script>
var power = 100;
var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function () {
var motor = obniz.wired("DCMotor",{"forward":3, "back":4});
var servo1 = obniz.wired("ServoMotor", {gnd:0, vcc:1, signal:2});
$("#slider1").on('input', function() {
servo1.angle($("#slider1").val());
});
$("#power").on('input', function() {
power = Number($("#power").val());
if(power > 100){
motor.power(power-100);
motor.move(true);
}else{
motor.power(100-power);
motor.move(false);
}
});
$("#susumu").on("click",function(){
motor.power(power);
motor.move(true);
});
$("#modoru").on("click",function(){
motor.power(power);
motor.move(false);
});
$("#stop").on("click",function(){
motor.stop();
});
};
obniz.onclose = async function(){
$("#slider1").off('input');
$("#power").off('input');
};
</script>
</body>
</html>
#完成
これをスマホで操作することで完成です。
サーボモーターを操作することで左右に曲がる際にサーボモーターの音がキーキー泣いて、虫のよう、と子供に評判(?)でした。