tag:crieit.net,2005:https://crieit.net/tags/obniz/feed
「obniz」の記事 - Crieit
Crieitでタグ「obniz」に投稿された最近の記事
2021-01-03T18:22:10+09:00
https://crieit.net/tags/obniz/feed
tag:crieit.net,2005:PublicArticle/16482
2021-01-03T18:22:10+09:00
2021-01-03T18:22:10+09:00
https://crieit.net/posts/obniz-MH-Z19B-CO2
【obniz】MH-Z19B CO2センサーモジュールを使って二酸化炭素濃度を計測する
<p>部屋の換気状態が適切かどうか調べてみたくて、MH-Z19Bとobnizを組みあわせて、計測した二酸化炭素濃度を表示するものを作成してみました。</p>
<p>コードは<a target="_blank" rel="nofollow noopener" href="https://github.com/yukilab2/obniz_co2_monitor">yukilabさんが作成したもの</a>を参考にしたので、自力で作成したのは回路くらいですね(笑)</p>
<p>↓こんな感じにobniz Boardにco2濃度が表示されます(コードを実行しているブラウザにも表示されます)<br />
<a href="https://crieit.now.sh/upload_images/24de3c21fdcf7defa5f334a83dd9b3555ff18b1a8243d.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/24de3c21fdcf7defa5f334a83dd9b3555ff18b1a8243d.jpg?mw=700" alt="59777b175d25df873ff90170bc6d224b.jpg" /></a></p>
<h1 id="用意したもの"><a href="#%E7%94%A8%E6%84%8F%E3%81%97%E3%81%9F%E3%82%82%E3%81%AE">用意したもの</a></h1>
<ul>
<li>obniz Board</li>
<li><a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/gp/product/B07B3VGGNL/ref=ppx_yo_dt_b_asin_title_o03_s00?ie=UTF8&psc=1">MH-Z19B</a></li>
<li><a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/gp/product/B012HY288S/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1">ピンヘッダー</a></li>
<li>ジャンパワイヤ</li>
<li>ハンダゴテ</li>
<li><a target="_blank" rel="nofollow noopener" href="http://akizukidenshi.com/catalog/g/gI-06247/">抵抗内蔵LED</a></li>
</ul>
<h1 id="MH-Z19Bとピンヘッダーのハンダ付け"><a href="#MH-Z19B%E3%81%A8%E3%83%94%E3%83%B3%E3%83%98%E3%83%83%E3%83%80%E3%83%BC%E3%81%AE%E3%83%8F%E3%83%B3%E3%83%80%E4%BB%98%E3%81%91">MH-Z19Bとピンヘッダーのハンダ付け</a></h1>
<p>MH-Z19Bはご覧のように、端子が穴になっているので、このままではジャンパワイヤで接続できません</p>
<p><a href="https://crieit.now.sh/upload_images/ba45a77f77099566ff864a38106e80525ff18b87ab257.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ba45a77f77099566ff864a38106e80525ff18b87ab257.jpg?mw=700" alt="77ab65800ae3f8d834658cd718304559.jpg" /></a></p>
<p>ピンヘッダーを適切にカットして、センサーの端子穴に入れてハンダ付けします<br />
<a href="https://crieit.now.sh/upload_images/3d17fee339e687a182a126418be866e85ff18bba460a2.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/3d17fee339e687a182a126418be866e85ff18bba460a2.jpg?mw=700" alt="aa9bbf76e8e435a92efa402790d35024.jpg" /></a></p>
<p>完成です!<br />
端子が結構小さいのでハヅキルーペがあると、見やすくなってハンダ付けが捗ります</p>
<p><a href="https://crieit.now.sh/upload_images/2c5533967f6f520f1beea74571245c165ff18be674ebe.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2c5533967f6f520f1beea74571245c165ff18be674ebe.jpg?mw=700" alt="3e33b9fdfee8feb973adc0efcd5288c6.jpg" /></a></p>
<h1 id="obnizとセンサーの接続"><a href="#obniz%E3%81%A8%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC%E3%81%AE%E6%8E%A5%E7%B6%9A">obnizとセンサーの接続</a></h1>
<p><a href="https://crieit.now.sh/upload_images/0f81a1bd8250c6510ed2200e588be4435ff18bf8a74ea.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/0f81a1bd8250c6510ed2200e588be4435ff18bf8a74ea.png?mw=700" alt="9f99862cd26323ff9dfc40a814a57a8d.png" /></a></p>
<h1 id="コード"><a href="#%E3%82%B3%E3%83%BC%E3%83%89">コード</a></h1>
<p>obnizのオンラインエディタに入力します<br />
今回参考にしたコードは、センサーが若干違うのか、ppmの計算式が手元のセンサーと<a target="_blank" rel="nofollow noopener" href="https://www.winsen-sensor.com/d/files/MH-Z19B.pdf">データシート</a>と異なっていました。<br />
データシート 7ページ目には、CO2 concentration = HIGH * 256 + LOW とのことなので以下のように修正しています。</p>
<p>修正前の部分</p>
<pre><code class="javascript">let level = data[2] * 100 + data[3];
</code></pre>
<p>修正後の部分</p>
<pre><code class="javascript">let level = data[2] * 256 + data[3];
</code></pre>
<h2 id="完成したコード"><a href="#%E5%AE%8C%E6%88%90%E3%81%97%E3%81%9F%E3%82%B3%E3%83%BC%E3%83%89">完成したコード</a></h2>
<p>ほぼ参考にしたコードのままなので、センサーの取得間隔は20秒、LEDが点滅するしきい値は1500ppmとなっています。</p>
<pre><code class="html"><html lang="ja">
<head>
<title>CO2 level</title>
<meta charset="utf-8">
<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/[email protected]/obniz.js"></script>
<style type="text/css">
.sub {
vertical-align: sub;
font-size: smaller;
}
</style>
</head>
<body>
<div id="obniz-debug"></div>
<h1>CO<span class="sub">2</span> level</h1>
<button id="read" style="display:none">read</button>
<div id="print"></div>
<div id="app"></div>
<script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
<script>
let obniz = new Obniz("OBNIZ_ID_HERE");
let onconnect_func = async function () {
let power = obniz.wired("USB", {gnd: 3, vcc: 2});
let led = obniz.wired("LED", {anode: 10, cathode: 11});
let co2history = [];
obniz.keepWorkingAtOffline(true);
power.on();
let uart0 = obniz.getFreeUart();
obniz.uart0.start({tx: 0, rx: 1, baud: 9600});
led.on();
await obniz.wait(3000);
led.off();
obniz.uart0.onreceive = function (data, text) {
if (data[0] == 0xff && data[1] == 0x86) {
let level = data[2] * 256 + data[3];
co2history.push(level);
if (co2history.length > 100) {
co2history.splice(0, 1);
}
ReactDOM.render(
React.createElement('h1', null, level.toString() + 'ppm'),
document.getElementById("app")
);
obniz.display.drawing(false);
obniz.display.clear();
// obnize display resolution is 128*64
var x0 = 0;
var y0 = 64 - co2history[0] / 40;
for (let i = 0; i < co2history.length; i++) {
let val = 64 - co2history[i] / 40;
obniz.display.line(x0, y0, i, val);
x0 = i;
y0 = val;
}
obniz.display.line(0, 64 - 25, 128, 64 - 25);
obniz.display.line(0, 64 - 50, 32, 64 - 50);
obniz.display.font('Consolas', 20);
obniz.display.pos(40, 2);
obniz.display.print(level.toString() + 'ppm');
obniz.display.font('Avenir', 8);
obniz.display.pos(0, 64 - 25);
obniz.display.print("1000");
obniz.display.pos(0, 64 - 50);
obniz.display.print("2000");
obniz.display.drawing(true);
if (level > 1500) {
high_alert(level / 100);
}
}
};
let read_co2 = function () {
obniz.uart0.send([0xff, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79]);
};
let high_alert = async function (n) {
for (let i = 0; i < n; i++) {
led.on();
await obniz.wait(300);
led.off();
await obniz.wait(300);
}
};
$('#read').click(read_co2);
setInterval(read_co2, 20 * 1000); // update every 20sec
};
obniz.onconnect = onconnect_func;
</script>
</body>
</html>
</code></pre>
<h1 id="注意点"><a href="#%E6%B3%A8%E6%84%8F%E7%82%B9">注意点</a></h1>
<p>センサーのデータシートにはPreheat time 3minとあるので、コードを実行して3分経過しないと正確なCO2濃度にならないようです。<br />
たしかに起動してしばらくは、いつも同じ数値が表示されている気がします。<br />
もし、サーバレスで定期実行させたい場合は、センサーの電源を常時供給させないといけませんね。</p>
arohajiro
tag:crieit.net,2005:PublicArticle/16465
2021-01-03T16:52:35+09:00
2021-01-15T12:04:57+09:00
https://crieit.net/posts/obniz-Xmas
【obniz】Xmasツリーをブロックプログラミングでかんたんにふわふわ光らす
<p><strong>本記事は2019/12/11に作成したものです。<br />
最新の環境ではうまく動作しない可能性がありますのでご注意ください。</strong></p>
<p>ダイソーで売っているミニチュアツリーと、デコレーションライトを組み合わせて、簡易的なちびXmasツリーを作ってみました</p>
<h2 id="完成したもの"><a href="#%E5%AE%8C%E6%88%90%E3%81%97%E3%81%9F%E3%82%82%E3%81%AE">完成したもの</a></h2>
<p><a href="https://crieit.now.sh/upload_images/dfc3fb1cd3d77a165d6a5a22c72344475ff17688eca2b.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/dfc3fb1cd3d77a165d6a5a22c72344475ff17688eca2b.jpg?mw=700" alt="350d2713e7c81c35cf8cc38dd52830ea.jpg" /></a></p>
<h2 id="特徴"><a href="#%E7%89%B9%E5%BE%B4">特徴</a></h2>
<ul>
<li>「少しづつ明るくなって、その後に徐々に暗くなる」的に、ふわふわ光ります
<ul>
<li>Wi-Fiのネットワーク接続状況によっては、多少カクカクします</li>
</ul></li>
<li>点灯パターン周期の時間はランダムで変化します</li>
<li>obnizの画面に「メリークリスマス」を表示します</li>
</ul>
<h2 id="必要な部材"><a href="#%E5%BF%85%E8%A6%81%E3%81%AA%E9%83%A8%E6%9D%90">必要な部材</a></h2>
<ul>
<li>obniz Board(初期設定は済ませてくださいね)</li>
<li>モバイルバッテリー(obniz Boardの電源)</li>
<li>ジャンパーワイヤ(オス-オス) x2</li>
<li>みのむしクリップ x2</li>
<li>ミニチュアツリー(ダイソー)</li>
<li>デコレーションライト(ダイソー) ※電池2本(3V)で動き、常時点灯のもの</li>
</ul>
<h2 id="obnizとデコレーションライトの接続"><a href="#obniz%E3%81%A8%E3%83%87%E3%82%B3%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%88%E3%81%AE%E6%8E%A5%E7%B6%9A">obnizとデコレーションライトの接続</a></h2>
<p>デコレーションライトのプラス側を0番ピン、マイナス側を1番ピンに接続しています</p>
<p><a href="https://crieit.now.sh/upload_images/b9f223b023b8b596231a6d55db9a504e5ff176b7d6e4c.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/b9f223b023b8b596231a6d55db9a504e5ff176b7d6e4c.png?mw=700" alt="13eeeb5e06ed0fedc77d740560b41e9c.png" /></a></p>
<p>obinzとデコレーションライトの接続は、ジャンパーワイヤとみのむしクリップを組み合わせます</p>
<p><a href="https://crieit.now.sh/upload_images/b99210ed5df41adb9b8e64af45a2b7a35ff176cb58fd8.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/b99210ed5df41adb9b8e64af45a2b7a35ff176cb58fd8.jpg?mw=700" alt="9d710dd750d79db0a8d0ac4aa4dd2d2d.jpg" /></a></p>
<h2 id="ブロックプログラム"><a href="#%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0">ブロックプログラム</a></h2>
<p>以下のブロックを作成したら、あとは実行するだけ</p>
<p><strong>ポイント</strong><br />
- ふわふわ光らせるのにpwm制御が必要なので、それっぽいことができそうなDCモーター用のブロックを使います<br />
- 光の強弱はパワー(変数count)で制御します。※3Vを超えないように、上限は70にしています<br />
- 明るさが変化する速度は、変数stepで決めています。stepをランダムにして点灯パターンの周期を変化させます。</p>
<p><a href="https://crieit.now.sh/upload_images/02f185d387a1931a2668b595ad1e8a1c5ff176ee97543.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/02f185d387a1931a2668b595ad1e8a1c5ff176ee97543.png?mw=700" alt="8a564855e4096ee9d5da098fbac15509.png" /></a></p>
<p>UIブロックを組み合わせてリモート操作機能を追加したり、AIブロックのスマホ関連の操作を組み合わせて点灯させる応用も楽しいですよ。<br />
それでは、よいクリスマスを!</p>
arohajiro
tag:crieit.net,2005:PublicArticle/16460
2021-01-03T15:52:20+09:00
2021-01-03T15:55:14+09:00
https://crieit.net/posts/obniz-2
【obniz】カムロボをブロックプログラミングでかんたんに動かす その2
<p><strong>本記事は2019/09/26に作成したものです。<br />
最新の環境ではうまく動作しない可能性がありますのでご注意ください。</strong></p>
<p>obnizでラジコン化したカムロボ(<a href="https://crieit.net/posts/obniz-1">その1の記事</a>みてね)をパワーアップしてみました<br />
今度は腕も動いて、目が光る!<br />
obnizとブロックプログラミングの組み合わせなので相変わらず簡単。<br />
電子部品の実装は配線作るとかあるので少し手間です。</p>
<p><a href="https://crieit.now.sh/upload_images/7b4df259a1ac0aeff0b541d4576e4b935ff167804ffce.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/7b4df259a1ac0aeff0b541d4576e4b935ff167804ffce.jpg?mw=700" alt="a718a3f573e9637b99d4a7918488deda.jpg" /></a><br />
<a href="https://crieit.now.sh/upload_images/c160b52b699ec27dd033db108c820ad45ff1679d6e010.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/c160b52b699ec27dd033db108c820ad45ff1679d6e010.png?mw=700" alt="a53da719b51f781be3dfd3ec150df335.png" /></a></p>
<h2 id="できること"><a href="#%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%93%E3%81%A8">できること</a></h2>
<ul>
<li>前後左右に動く(その1で実装)</li>
<li>速度を2段階に切り替える(その1で実装)</li>
<li><strong>両腕を動かす(NEW)</strong></li>
<li><strong>目が光る(NEW)</strong></li>
</ul>
<h2 id="必要な部材"><a href="#%E5%BF%85%E8%A6%81%E3%81%AA%E9%83%A8%E6%9D%90">必要な部材</a></h2>
<p>その1から追加で必要な部材をリストアップしています</p>
<ul>
<li>サーボモーター(SG92R) x2 秋月電子通商で1個500円くらい
<ul>
<li>他のサーボモーターを使う場合はobiniz公式で動作確認されたものを使いましょう</li>
</ul></li>
<li>抵抗内蔵LED(OSB5SA5B64A-5V) x2 秋月電子通商で10個200円くらい</li>
<li>絶縁収縮テープ</li>
</ul>
<p>obniz公式で動作確認されているパーツは<a target="_blank" rel="nofollow noopener" href="https://obniz.io/ja/sdk/parts">こちら</a></p>
<h2 id="カムロボと部品の接続"><a href="#%E3%82%AB%E3%83%A0%E3%83%AD%E3%83%9C%E3%81%A8%E9%83%A8%E5%93%81%E3%81%AE%E6%8E%A5%E7%B6%9A">カムロボと部品の接続</a></h2>
<p>左右の腕に使うサーボモーターと目に使うLEDをカムロボに組み込みobniz Boardへ接続します。<br />
それぞれの組み方と回路図は以下を参照ください。</p>
<h3 id="1. 腕とサーボ"><a href="#1.+%E8%85%95%E3%81%A8%E3%82%B5%E3%83%BC%E3%83%9C">1. 腕とサーボ</a></h3>
<ul>
<li>腕を取り外し、サーボモーターを腕の近くのネジ穴を使って固定する</li>
</ul>
<p><a href="https://crieit.now.sh/upload_images/3002bc92bb0a1b36ae817bd79d7a5ee55ff167e462c72.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/3002bc92bb0a1b36ae817bd79d7a5ee55ff167e462c72.jpg?mw=700" alt="ed00e8b16e1c79ee8da2f3bfd966cc1c.jpg" /></a></p>
<ul>
<li>サーボホーンと腕をネジでうまく固定する(ネジを1本だけを使いましたが固定力はいまいち弱いです)</li>
</ul>
<p><a href="https://crieit.now.sh/upload_images/37edded7dcdca2a7ff3f10f7142d867d5ff167f7ef166.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/37edded7dcdca2a7ff3f10f7142d867d5ff167f7ef166.jpg?mw=700" alt="50e832181c71d8d47f5a0dedaa8f75f7.jpg" /></a></p>
<h3 id="2. 目とLED"><a href="#2.+%E7%9B%AE%E3%81%A8LED">2. 目とLED</a></h3>
<ul>
<li>LED2個を並列接続したいのでジャンパワイヤを改造して二股仕様にします。二股部分の線が露出しないように絶縁収縮テープを使いました。</li>
</ul>
<p><a href="https://crieit.now.sh/upload_images/5f7c457339ccdda59457e5699afffbf45ff168124421e.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5f7c457339ccdda59457e5699afffbf45ff168124421e.png?mw=700" alt="be18486dab557520596606fe4650b1a6.png" /></a></p>
<ul>
<li>カムロボの両目に足を適度にカットしたLEDをはめ込み、ジャンパワイヤを接続します(びっくりするくらいにLEDと目の直径がぴったりでした)</li>
</ul>
<p><a href="https://crieit.now.sh/upload_images/8b1692808262396540f4f1455deb63755ff1682401fde.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/8b1692808262396540f4f1455deb63755ff1682401fde.jpg?mw=700" alt="90092780df9ba3b42c00017bb7d414fe.jpg" /></a></p>
<h3 id="3. 回路"><a href="#3.+%E5%9B%9E%E8%B7%AF">3. 回路</a></h3>
<p>obniz Boardの全ピンを使います</p>
<p><a href="https://crieit.now.sh/upload_images/a6d25946f921c1b4f776fa31b24b03355ff1683f2dfc9.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/a6d25946f921c1b4f776fa31b24b03355ff1683f2dfc9.jpg?mw=700" alt="c569bced2bb10c9122f2779343496a93.jpg" /></a></p>
<h2 id="ブロックプログラム"><a href="#%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0">ブロックプログラム</a></h2>
<p>その1のブロックプログラムを改良してサーボモータとLEDの制御を追加します(赤丸の部分)</p>
<h3 id="1. UI"><a href="#1.+UI">1. UI</a></h3>
<ul>
<li>LEDは点灯・消灯ボタンでON/OFF</li>
<li>腕はスライダーで上げ下げをします</li>
</ul>
<p><a href="https://crieit.now.sh/upload_images/b7ac8ed67d4076e35d5585bd0d468e995ff1686d5df2f.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/b7ac8ed67d4076e35d5585bd0d468e995ff1686d5df2f.jpg?mw=700" alt="efa81c645cf6718fdcd11964660099ca.jpg" /></a></p>
<h3 id="2. 初期設定"><a href="#2.+%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A">2. 初期設定</a></h3>
<p><a href="https://crieit.now.sh/upload_images/3f5ec9dfff1145653f3d2497a1040f435ff1688b7c4fb.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/3f5ec9dfff1145653f3d2497a1040f435ff1688b7c4fb.jpg?mw=700" alt="b5ba4500c96a03d8f7c29d3ab22c3cac.jpg" /></a></p>
<h3 id="3. UIボタンが押された時の動作処理"><a href="#3.+UI%E3%83%9C%E3%82%BF%E3%83%B3%E3%81%8C%E6%8A%BC%E3%81%95%E3%82%8C%E3%81%9F%E6%99%82%E3%81%AE%E5%8B%95%E4%BD%9C%E5%87%A6%E7%90%86">3. UIボタンが押された時の動作処理</a></h3>
<p><a href="https://crieit.now.sh/upload_images/194f0f935823377c5e7a760f6111e4d35ff168a761ab4.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/194f0f935823377c5e7a760f6111e4d35ff168a761ab4.jpg?mw=700" alt="5a41f34ef6f425e7ff2f62e412c3831c.jpg" /></a></p>
<p>以上で完了です!</p>
arohajiro
tag:crieit.net,2005:PublicArticle/16196
2020-11-02T08:33:19+09:00
2021-01-03T15:54:20+09:00
https://crieit.net/posts/obniz-1
【obniz】カムロボをブロックプログラミングでかんたんに動かす その1
<p><strong>本記事は2019/09/08に作成したものです。<br />
最新の環境ではうまく動作しない可能性がありますのでご注意ください</strong>。</p>
<p>プログラミング言語知識が疎くても大丈夫!<br />
obnizとブロックプログラミングでとてもかんたんにカムロボを簡易ラジコン化できました。<br />
スマホやPCで動かすだけでも楽しいよ。</p>
<p><a href="https://crieit.now.sh/upload_images/66e3904e778792ed8da91301f1936d6c5f9f446be141a.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/66e3904e778792ed8da91301f1936d6c5f9f446be141a.jpg?mw=700" alt="2d12541c5dfc9d7ee64e2e16e0c26f7e.jpg" /></a></p>
<h2 id="必要な部材"><a href="#%E5%BF%85%E8%A6%81%E3%81%AA%E9%83%A8%E6%9D%90">必要な部材</a></h2>
<ul>
<li>タミヤ カムプログラムロボット工作セット<br />
プラモデル初心者の場合、組み立てに結構時間かかります...<br />
なお、「プログラムバーギヤケース」はラジコン化すると使わない部品なので、組み立ては不要です。<br />
<a href="https://crieit.now.sh/upload_images/e53e2bc913c41188ec0de5c8c85a9b255f9f448fb82ab.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/e53e2bc913c41188ec0de5c8c85a9b255f9f448fb82ab.jpg?mw=700" alt="33c7f13a8682cea6801faa32e36c0410.jpg" /></a></li>
<li><p>obniz Board<br />
事前に初期設定しておいてくださいね</p></li>
<li><p>ジャンパーワイヤ(片側はオスのもの)</p></li>
<li>モバイルバッテリー(obniz Boardの電源)</li>
</ul>
<h2 id="カムロボとの接続"><a href="#%E3%82%AB%E3%83%A0%E3%83%AD%E3%83%9C%E3%81%A8%E3%81%AE%E6%8E%A5%E7%B6%9A">カムロボとの接続</a></h2>
<p>左右のモーターをobniz Boardに接続するだけです。電源はobniz Boardを通して供給されます。</p>
<h3 id="回路図"><a href="#%E5%9B%9E%E8%B7%AF%E5%9B%B3">回路図</a></h3>
<p><a href="https://crieit.now.sh/upload_images/8a13b9fa75d341e110985253fb3faaf25f9f44b52397f.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/8a13b9fa75d341e110985253fb3faaf25f9f44b52397f.png?mw=700" alt="f13e29d48b235d29b98d02dddc4c268f.png" /></a></p>
<h3 id="接続例"><a href="#%E6%8E%A5%E7%B6%9A%E4%BE%8B">接続例</a></h3>
<p>ジャンパーワイヤとモーターの接続にはキボシ端子を使いました。キボシ端子がない場合はつないだジャンパワイヤがobniz Boardにショートしないように絶縁処理しましょう</p>
<p><a href="https://crieit.now.sh/upload_images/c1da1a3cceed039b29880962d03788ae5f9f44dec5e4f.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/c1da1a3cceed039b29880962d03788ae5f9f44dec5e4f.jpg?mw=700" alt="01e9ae6ea441be712d6073c4a37d8e1a.jpg" /></a></p>
<h2 id="ブロックプログラム"><a href="#%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0">ブロックプログラム</a></h2>
<p>カムロボの前進・更新・左回転・右回転とモータ速度を2段階に変えられるようにしています。<br />
2019/09/08現在のプログラムのため、最新のものとは画面やブロックが異なる可能性があります</p>
<h3 id="UIとモーターの初期設定"><a href="#UI%E3%81%A8%E3%83%A2%E3%83%BC%E3%82%BF%E3%83%BC%E3%81%AE%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A">UIとモーターの初期設定</a></h3>
<p><a href="https://crieit.now.sh/upload_images/c4500c2590d8cdc8d6a7a6554dbddc7f5f9f44fe94294.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/c4500c2590d8cdc8d6a7a6554dbddc7f5f9f44fe94294.png?mw=700" alt="ec020517012eea226bfe95e9efd53635.png" /></a></p>
<ol>
<li>UIにある<code>UIButtonの作成</code>より、前・後・左・右・低速・高速のボタンと変数を作成します。</li>
<li>動くにある<code>DCMotorの作成</code>より、左右モーターの変数とそれぞれをつないだピン番号を設定します。(カムロボが前後逆に動くときはforwardとbackのピン番号を逆にすればOK)</li>
</ol>
<h3 id="UIボタンが押された時の動作処理"><a href="#UI%E3%83%9C%E3%82%BF%E3%83%B3%E3%81%8C%E6%8A%BC%E3%81%95%E3%82%8C%E3%81%9F%E6%99%82%E3%81%AE%E5%8B%95%E4%BD%9C%E5%87%A6%E7%90%86">UIボタンが押された時の動作処理</a></h3>
<p>UIとモーターの初期設定後に続けてブロックを組みます<br />
<a href="https://crieit.now.sh/upload_images/60d069f935b6898b4eaeffbe2e6697a05f9f4512dd1b1.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/60d069f935b6898b4eaeffbe2e6697a05f9f4512dd1b1.png?mw=700" alt="767a53ae09a246e4c43e287b129f10c6.png" /></a></p>
<ol>
<li>ループにある<code>ずっと 実行</code>ブロックをモーターのブロックの下に組みます</li>
<li>論理にある<code>もしも true実行 他</code>ブロックを<code>ずっと 実行</code>ブロックの中に組みます</li>
<li><code>もしも true実行 他</code>ブロックの+をUIボタンの数だけ押して分岐条件を増やします</li>
<li>もしものtrue部分にUIにある<code>ナントカが押されている</code>ブロックを入れ、変数を前進用のものに変えます</li>
<li>もしもの下に動くにある<code>ナントカをナントカへ回転させる</code>ブロックを入れ、変数を前進用のものに変えます(要は左右のモーターが前に進む方向にすればOK)</li>
<li>あとは後進・左・右に動くようにそれぞれ続いてブロックを入れていきます。</li>
<li>モーター速度の変更ボタンは動くにある<code>ナントカのパワーをナントカ%に設定する</code>ブロックを使います。(100%にするとモーターに5Vの電圧がかかりモーターの使用電圧範囲を超えてしまうので注意!ちなみに自分の環境では70%以下であれば3Vは超えませんでした)</li>
<li>最後の分岐条件に動くにある<code>ナントカを止める</code>ブロックを入れる(UIボタンから手を離したらモーターを止める処理)</li>
</ol>
<h2 id="ブロックプログラミング実行"><a href="#%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%AE%9F%E8%A1%8C">ブロックプログラミング実行</a></h2>
<p>スマホやPCからブロックプログラムを実行すると作成したUIボタンが表示されます。<br />
前・後・左・右の動きが想定どおりにならない場合はモーターの初期設定のピン番号を反対にしてみてください。<br />
速度切替ボタンを押すとモーターに加わる電圧が変化します。切り替え後にカムロボの前・後・左・右をすると速度が変化します。</p>
<p><a href="https://crieit.now.sh/upload_images/f516dce2eb88f137ec9dc5c9bc456ec55f9f4528790dc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/f516dce2eb88f137ec9dc5c9bc456ec55f9f4528790dc.png?mw=700" alt="cdfb18d0120bbfe661ddd2cc031ab2b2.png" /></a></p>
<p><a href="https://crieit.net/posts/obniz-2">その2の記事</a>へ続く</p>
arohajiro