obniz 電子工作 電気の話

obnizファンmeetup vol.1参加レポート【ロボットからHMDまで】

サンダー
先日、2019年3月20日(水)に「obnizファンmeetup vol.1」に参加させて頂きました。
面白そうだね!どんな内容か教えて!
かみなりん
サンダー
はい、とても参考になりましたので簡単なレポートをまとめます。

 

概要

Facebookグループ「obnizファン」が主催するmeetup第1回です。

 

obnizとは

obnizは、WiFI経由でコントロールできる開発ボードで、IoT(Internet of Things)が手軽に開発出来ます。

プログラムはJavaScriptやPythonなどに加え、「○○したら▲▲する」といったブロックプログラミングで開発も可能です。

大電流が必要なモータを制御する場合、通常のマイコンでは外部にモータードライバーなどを設ける必要がありますが、obnizは最大1Aまでのモータードライブ機能も備えているため、出力端子から直接モーターを制御する事が可能です。

そのため、電子工作を始めたいWebプログラマーなどにオススメな開発ボードです。

 

日時

2019年3月20日(水)19:30~21:30

場所

Connecting The Dots YOYOGI (東京都渋谷区代々木1-29-5YKビル 地下1F)

タイムテーブル

時間内容
19:00~19:15会場設営
19:15~19:30受付
19:30~19:35主催者からの案内
19:35~19:45講演1:株式会社CambrianRoboticsさん
19:45~20:20講演2:グーグルホーマーさん
20:20~20:55講演3:新井孔明さん
20:55~21:00スポンサー:株式会社ポケットチェンジさん
21:00~21:30懇親会

 

講演1:株式会社CambrianRoboticsさん

obnizを製造販売されている株式会社CambrianRoboticsの佐藤さんによる講演。

気になった話題をいくつかピックアップ。

  • obnizの概要説明
  • 会社のメンバーが増え、クラウドが強化される!?
  • 別タイプのobnizが販売される!?

 

講演2:グーグルホーマーさん

グーグルホーマーさんについて

グーグルホーマーさんは

  • 4足歩行ロボット
  • 2足歩行ロボット
  • スマートスピーカー連携

などobnizの性能限界ギリギリを攻める作品を作ってらっしゃいます。[引用]connpassページ

通常のobnizはPWM機能が6つまでですが、obnizをハックして12ライン動かすという荒技まで…

グーグルホーマーさんのQiita:https://qiita.com/Google_Homer

グーグルホーマーさんのtwitter:https://twitter.com/google_homer_

 

グーグルホーマーさんの講演内容

作品例-1:Radik_o_bniz

Radk_o_bniz(Google_homerさん)

 

AMラジオキットをサーボモータを使って、音量/選局/方向を切り替えるとのこと。

音量調整やラジオの周波数を変更するバリコン・可変抵抗などを物理的にサーボモーターで動かし、ラジオを選局すると、AMラジオキット自体も回転しているようです。(間違っていたらご指摘ください)

 

google home webhookからobniz event

 

また、スマートスピーカーのGoogle Homeから、Radik_o_bnizも操作されたそうです。

 

課題とその解決方法について

obnizはプログラムを終了すると、初期化がかかるそうです。

初期化されると、出力電圧なども元に戻り、PWMなどの動作も停止してしまうそう。

 

プログラム終了時のobnizの挙動

■電圧出力やDisplayの初期化タイミング

  1. Event closeあり → 即時リセット
  2. Event closeなし → 30秒後リセット(グーグルホーマーさんはこの30秒後に停止していたとのこと)
  3. HTML      → 即時リセット

■obnizプログラム終了時の初期化を無効にする設定方法

LEDつけっぱなしの例

obniz.onconnect = async function(){
 obniz.resetOnDisconnect(false);
 ~
 LED.on();
 ~
 obniz.close();
}

上記のように、「obniz.resetOnDisconnect(false);」とすることで、websoket接続が0本になった際、obnizがリセットかかるのを回避できるとの事です。

 

作品例-2:Secure Display

Secure Display

obnizを立ち上げた際、obnizの固有IDを表したQRコードが表示されると思いますが、そのobniz IDを非表示にし、自作の待ち受けを表示するもの。

 

作品例-3:待ち受け⇔ID表示切替

待ち受け⇔ID表示切り替え

「 作品2-Secure Display」の応用で、待ち受け画面と、obnizのID表示画面を切り替えるというもの。

 

左上のジョグダイヤルでON/OFFをさせるべく、出力状態の記憶と参照が必要。

■状態の記憶

  • ioX.output(0/3/5V)で状態(電圧)設定
  • resetOnDisconnect(false)で出力保持

■状態の参照

  • adX.getWait()で状態(電圧)読込

 

作品例-4:2足歩行ロボット

6自由度2足歩行ロボット

 

グーグルホーマーさんの2足歩行ロボットの自由度説明

2足歩行ロボットの自由度説明

 

下半身に使用しているサーボモータは下記の通り。

  1. 足首の左右のひねり(ロール軸)
  2. 脚の付け根のZ軸の回転(ヨー軸)

それぞれ左右でサーボモータは4つ。

こちらに腕を付けたいと思ったところ、obnizの出力端子は12ポートに対し、Vcc、GND、信号線の3本×4サーボモータの計12本なのでポートが足りないという事態に

 

電源・GNDラインを含めると4サーボまでになってしまう

モーター種別Vcc信号GND
左足首(ロール軸、左右)111
右足首(ロール軸、左右)111
左脚付け根(ヨー軸、Z軸回転)111
右足付け根(ヨー軸、Z軸回転)111

そこで、グーグルホーマーさんが対応した内容は下記のように、電源とGNDラインを外部から供給し、信号線のみをobnizの端子から供給するという方法。

電源とGNDを外部供給

 

■電源線(VccおよびGND)を外部供給に変更後のアサイン

VccとGNDを外部供給で共通化、信号のみ出力で6個のサーボモータが制御可能に!

モーター種別Vcc信号GND
左足首(ロール軸、左右)111
右足首(ロール軸、左右)1
左脚付け根(ヨー軸、Z軸回転)1
右足付け根(ヨー軸、Z軸回転)1
左腕(ピッチ軸、前後)1
右腕(ピッチ軸、前後)1

こうする事により、腕のサーボも追加する事が可能になったとのことです。

 

2足歩行ロボットを歩かせるために

2足歩行ロボットを歩かせるために、片足に重心を乗せ、反対側の足を上げる。

上げた足を下ろし、その下ろした足に重心をかけるという方法で歩かせたとのこと。

(このように足の裏から重心を外れないようにする歩き方を「静歩行」と言います。)

 

作品例-5:アバター2足歩行ロボット

アバター2足歩行ロボット

 

スマートフォンの加速度センサを使用し、スマートフォン2台でロボットをリンクさせて歩かせるというもの。

そして、腕の動きもリンクさせたいという事で追加されたのがコチラ。

 

microbitをBLE加速度センサーに

 

それは、micro:bitをBLE(Bluetooth Low Energy)の加速度センサーとして使用するという方法。

micro:bitは基板上に25個のLED、タクトスイッチ2個、光・加速度・温度・コンパスといったセンサー、Bluetoothを備えたプログラマブルなボードです。

BBC micro:bit プログラマブルボード

 

BLEでmicro:bitの加速度センサーの値を取得

BLEでmicro:bitの加速度センサーの値を取得

 

BLEでmicro:bitの加速度センサーの値を取得するサンプルコードはコチラ(グーグルホーマーさん)

BLEでの通信は難しいと思っていたとの事ですが、意外と簡単に通信できたそうです。

peripheral = await obniz.ble.scan.startOneWait(MICROBIT);
connected = await periperal.connectWait();
data = await peripehral.getService(UID).getCharacterristic(CID).readWait();

しかし、思った以上に腕の動きが追従してくれなかったとのこと。

そこで、処理を分散して高速化するという試みをされたそうです。

 

リベンジ:分散処理で高速化するぞ!

リベンジ:分散処理で高速化するぞ!

足の追従はスマートフォンの加速度センサーで操作(プログラム2、3)、それらを統合するプログラム1、

腕の追従をmicro:bitの加速度センサーを使用してそれぞれプログラム4、5と分散させて処理。

うーん、obnizが悲鳴を上げそうな(^^;

 

■分散処理Tips

  1. 高速同期処理
  2. 複数処理でサーボ
1.高速同期処理(プログラム間の高速同期処理方法)

プログラム間の高速同期処理方法

左足の動作を制御しているスマートフォンのプログラム4から、それらを統括して歩行制御しているプログラム1への伝達方法として、空いているポートを使用するというもの。

左足プログラム4から出力し、その出力を歩行制御しているプログラム1が入力として受け、外部割込のような形で高速同期処理を行うというもの。

 

2.複数処理でサーボ(複数プログラムでサーボを動かす方法)

複数プログラムでサーボを動かす方法

複数のプログラムからサーボモータを動かそうとすると、うまく動作しないようです。

原因を話すと長くなるという事で、解決方法だけ説明して頂きました。

プログラム同時起動でもサーボモータを正常に動かす方法は「全プログラムで全てのサーボモータのwiredを書く」ことだそうです。

 

最後に格言(努力の報酬は成功ではなく成長)と、obnizのハッキング(^^)を紹介して、グーグルホーマーさんの講演は終了しました。

大変参考になるお話、ありがとうございました!

努力の報酬は成功ではなく成長

6台制約ハック、サーボ12台直刺し

 

 

講演3:新井孔明さん

続いて新井孔明さんの講演。

新井孔明さんはハンドルネームではなく、本名だそうです。

 

新井孔明さんについて

新井孔明さんは、

  • IoTロボットアーム
  • 地震を検知してブレーカーを落とす装置
  • 画像認識を使用したバナナ迎撃システム
  • 視覚障がい者向け帽子

など、ユニークな作品を大量に作成していらっしゃいます。[引用]connpassページ

製作物は100円ショップのDAISOで調達された物ばかりで、金銭的にも社会的にも優しい作品を製作されています。

 

新井孔明さんのQiita:https://qiita.com/keicafeblack

 

新井孔明さんの講演内容

資料をアップロードしてくださったので、詳細は資料をご覧くださいm(_ _)m

新井孔明さんの講演資料:https://speakerdeck.com/keicafeblack/obnizdejiao-yu-ke-ti-jie-jue-xin-zuo-obniz-lens

 

その上で、紹介して頂いた作品をピックアップしてご紹介したいと思います。

 

作品例:IoTラジコン

作品例:IoTラジコン

このトミカ風おもちゃもDAISOで購入されたとのこと。しかもモーター付きで100円!?

私は2,000円のタミヤの4輪駆動車工作キットをラジコン化しました…

 

このトミカ風おもちゃを2個並列に連結させているので、前進/後退はもちろん、旋回も出来るかと思います。

ただ、それだけではお子さんの反応が良くなかったという事で、サーボモータで割りばし鉄砲のゴムを発射するようにしたとのこと。

私も真似させてもらいます。

 

作品例:IoT自動ドア

IoT自動ドア

obnizでサーボモータを動かし、それによってペットボトルの重りが落ち、引き戸が開くというIoT自動ドア。

これの動作トリガーとして、人感センサーが反応したら自動で開く等出来たら面白そうですね。

 

作品例:自動水やり機

自動水やり機

 

植木鉢に釘を刺し、植木鉢の湿度データを30分毎に送信し、「ThinkSpeak」で植木の健康状態をグラフ化、乾燥状態に応じて電動ポンプで自動水やりをするシステムとのこと。

これは実家に帰省したときや旅行時に便利ですね。

 

社会:障害者を支援する取り組み

障害者を支援する取り組み

①緊急地震速報の可視化装置で、聴覚障害の方へ地震があったことを知らせるためとのこと。

詳しくはコチラに(https://qiita.com/keicafeblack/items/a21fba0b5014e2b0cfc2

 

②視覚障害者向けの補助器具で、赤外線測距センサで障害物までの距離を振動の強弱で伝える帽子とのこと。

詳しくはコチラに(https://qiita.com/keicafeblack/items/1760ce787d3a269e9e27

 

新作:obniz-lens

obniz-lensに使用した材料

使用した材料はやっぱりDAISOで購入とのこと。DAISOでこれだけ揃える探求心、尊敬します

 

obniz-lensの課題

obniz-lensを開発する上で、下記の課題があったとのこと。

  1. 距離を稼ぐ必要がある
  2. モニターに表示させる文字の反転(鏡文字)

obniz-lensの距離を稼ぐ

 

人間の目がピントを合わせられる最短距離は25cmとのことで、焦点距離を稼ぐ必要があり、下記で距離を稼いだとのこと。

  1. 3倍レンズで距離を詰める
  2. obnizを帽子のツバに取り付け、鏡を斜めに取り付け、反射させて距離を稼ぐ

上記の過程において、鏡で反射しているため、obnizに表示させる文字を鏡文字にして映す必要があり、そちらはプログラムで対応。

oniz lensの鏡文字

 

最後に今後の予定として、「ハーフミラーで透過」と「Google Glassのような眼鏡型」を開発したいという事でした。

 

スポンサー:ポケットチェンジさん

https://www.pocket-change.jp/ja/

外貨を電子マネーに交換する「Pocket Change」のご紹介。

中国・香港などのアジア方面への海外出張も多いので、個人的に興味あります。

 

まとめ

記念すべき第1回の「obnizファンmeetup」に参加でき、色々と勉強させて頂きました。

物作りはやっぱり楽しいし、グーグルホーマーさんや新井孔明さんのように様々な物を作られているのを拝見するとモチベーションが上がりました。

私も製作物を増やし、そのうち登壇させて頂けたらと思っております。

なお、obnizの講座をブログで公開しておりますので、ご覧頂けますと幸いです。

 

obniz講座

記事内容
obnizでIoT電子工作を始めよう!【第1回】obnizのモニターに「Hellow World」を表示します
obnizでLEDを光らせよう!【第2回】obnizでLEDを点灯させます
ソフトウェアボタンでLEDをON/OFFしよう!【第3回】HTMLのinputボタンでLEDを点灯/消灯します
obnizのPWM制御でLEDを調光しよう!【第4回】PWM機能を使って、LEDを調光させます
obnizでフルカラーLEDをグラデーション点灯しよう!【第5回】フルカラーLEDをグラデーション点灯します
obnizで圧電ブザーを鳴らそう!【第6回】obnizで圧電ブザーを鳴らします
obnizでミニ4駆をラジコン化しよう!【第7回】obnizでミニ四駆をラジコンのように制御します

 

Youtube

Youtubeに製作物を公開&追加していきますので、宜しければ視聴&チャンネル登録お願いします。

サンダーブログチャンネル

 

obnizでタミヤ4駆キットをラジコン化してみた

 

obnizでピアノを作ってみた







人気の記事

1

サンダー直流(DC)と交流(AC)の違いって分かりますか? かみなりん家庭用のコンセントは交流(AC)だよね。乾電池はなんとなくDC(直流)というイメージです。 サンダー改めて聞かれると、交流と直流の ...

【オペアンプ】 反転増幅回路の回路図アイキャッチ 2

かみなりんオペアンプの反転増幅回路ってどういう特徴があるの? サンダー反転増幅回路は文字通り、入力電圧の符号を反転、増幅する回路になります。 かみなりん反転して、増幅するから反転増幅回路なんだね。じゃ ...

アノードコモンとカソードコモン 3

サンダー「アノードコモン」と「カソードコモン」の違い分かりますか? かみなりんえーっと、アノードがプラス側、カソードがマイナス側で・・・コモンってなんだっけ? サンダー改めて聞かれると、どっちがどうだ ...

4

かみなりんアフィリエイトで成果が発生しない!? という問題が起きているようですね。 アフィリエイトが発生しないというのは死活問題ですね。   原因はどうやら、アンカーリンク内のtarget= ...

旅行やアルバイト等の 紹介にバリューコマースの『MyLinkBox』が超便利!! 5

サンダーバリューコマースから2019年6月5日に『MyLinkBox』がリリースされました! かみなりんその『MyLinkBox』ってなに? サンダー『カエレバ』や『Rinker』はご存知でしょうか? ...

miMind使いかたアイキャッチ 6

サンダーマインドマップはご存知ですか?   放射状に枝が伸びていくアレですよね?   頭の整理をするのに良く使います   私もよく情報を整理するためにマインドマップを作成 ...

Web(ウェブ)開発の学習にオススメなUdemyコース3選 7

サンダー世界最大級のオンライン学習プラットフォームの【Udemy】はご存知ですか? アメリカのシリコンバレー発のオンライン学習サイトで、日本ではベネッセが運営しています。 私自身もWeb開発やPyth ...

ブレッドボード の使い方のアイキャッチ 8

サンダーブレッドボードって知ってる? かみなりん電子工作でハンダ付けせずに、手軽に電子回路が組めるボードだよね? サンダーそう、今回はそのブレッドボードの使い方を紹介します。ブレッドボードを使ってLE ...

箇条書きタグ自動追加ツール 9

【このツールの目的】 箇条書きタグ(ulタグもしくはolタグ)を自動で追加するツールです。 listタグも自動で追加します。 【箇条書きの種類選択】 数字無し箇条書き(ul) ・箇条書き数字有り箇条書 ...

LED抵抗計算機 10

LED抵抗自動計算機 下図のように、LED1個をつなぐとき、LEDに流したい電流から抵抗値を求める計算機です。   LED抵抗計算機 ↓電源電圧【例】5(V) ↓LEDの電圧降下【例】2(V ...

-obniz, 電子工作, 電気の話
-, , , , , , ,