ここから本文です
普通のソフトウェアエンジニアが、半田ごて片手に組込み機器にチャレンジします。

書庫全体表示

記事検索
検索

全94ページ

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

[ 次のページ ]

■概要

Web Bluetooth APIを使ってブラウザ経由でNeopixel系LEDをLチカ制御してみました。

イメージ 1

まず、Web Bluetoothが聞きなれないかもしれませんが、みなさんお使いのChromeブラウザ経由でBluetoothが制御できるという画期的?な技術です。個人的には、初めて触ってみたのでそのレポートになります。
少しハマったポイントもあったのでそこもご紹介したいと思います。

■Web Bluetooth APIって何?

私は、詳しく説明できるほどの知識はありませんので、興味あるかたは先生に聞いてください。

だた、私のようなソフトウェアエンジニアの視点から見ると、今までBluetoothを使ったアプリを作る場合は、iOS用、Android用、Mac用、Windows用など、それぞれ別々に開発する必要がありましたが、それがブラウザ用アプリを1本作ればそれで動くようになるのは非常にメリットが高いものになります。
ただし、おそらくセキュリティの面で「できること/できないこと」があると思いますので、全てのアプリがそのようになるかというとそうではないでしょう。

■動作デモ
まずは、動画をご覧ください。80秒で少し長いのですがこんな感じでブラウザから制御することができます。この動画は、Mac上のChromeで動作させていますが、WindowsでもAndroidでも動作しました。iPhoneは持ってないのですが多分動くと思います。



■デモの構成

作った環境は以下のような構成です。

イメージ 2

プログラムとしては、
micro:bit内に配置するプログラム(c言語)
▲屮薀Ε兇離廛蹈哀薀燹javascript)
の2本作成しています。

ハードウェアは、私は自分で作ったkirakira:bitを利用していますが、お手持ちのNeopixelでも動作します。

■micro:bit用プログラムについて
プログラムは、GitHubからダウンロードすることができます。

kirakira_webbleプログラムは、Adafruitのライブラリ2つを使います。
Adafruit_MicrobitAdafruit_NeoPixelを今回利用しました。

Adafruit_Microbitは、BLEと5x5のLEDマトリックス用です。Adafruit_NeoPixelは、その名の通りNeoPixel用になります。下記のような構造となります。

イメージ 3

通信は、UARTSeriviceクラスを使います。今回のデモでは、micro:bit側はデータの受信のみ行い、送信は行いません。通信するために必要なUUIDは、Adafruit_Microbit内で定義されてます。サービスクラスの値や、キャラクタリスティックス(Characteristic)の値は以下のようになります。

UARTServiceUUID6E400001-B5A3-F393-E0A9-E50E24DCCA9E
UARTTxCharacteristicUUID6E400002-B5A3-F393-E0A9-E50E24DCCA9E

プログラム的には、ブラウザからUARTTxCharacteristicUUIDで送られてきた4バイトを受信し、LEDを制御することを行っています。

■▲屮薀Ε兇離廛蹈哀薀燹javascript)

ブラウザ側のプログラムも、Github(こちら)でご覧ください。


ここで少しハマったポイントがありました。
103行目周辺で、配列の生成処理があります。
この4バイトの生成処理が重要で、Uint8Arrayで指定しないと、WindowsのChromeは動作するが、Mac版ChromeやAndroid版はエラーで動作しない現象になりました。微妙に異なるみたいですね。

イメージ 4

あと、htmlファイルをローカルで実行しても動作しません。
かならず、httpsでどこかに配置して呼び出してください。
一応、FC2にファイルを置いてみました。(広告うざいので時間のあるときに移動するかも・・・)

■最後に

Web Bluetooth APIの存在は知っていましたが、使ったことは無く敬遠していましたが、なかなか便利です。ちょっとしたデモや、Web系のエンジニアの方は扱い易いと思います。最初に接続できたときには、『おお〜』とチョットした感動がありましたね。

みんな大好き光り物を、ドヤ顔でブラウザからコントロールしちゃいましょう。(笑)

以上です。
最後までお付き合いいただきありがとうございました。

Maker Faire Tokyo 2018展示


今年も出展します!今年の展示物は、教育分野向けマイコンボード『micro:bit』を利用した応用作品を展示します!

今年のメインは、男の子の憧れである『つるぎ』をイメージした
「kira:bit剣(ソード)」
です。

イメージ 1

○特徴1 残像表示
残像現象を利用して、絵・文字・模様を表現することができるソードです。

イメージ 3

○特徴2 新画像生成(新機能)
カメラを使い、ドット絵を自動的に生成することができます。

イメージ 4

○特徴3 高精細LEDバー(新開発)
micro:bit用にLEDバーを作成しました。(スイッチサイエンスで購入可能)約2.5mmのLEDチップを使っていますので細かい表現が可能です。(新開発)

イメージ 5
イメージ 6

○特徴4 カスタム外装
オリジナルソードが作れるように、外装に市販ブロックが付けられるようにしました。ベースは3Dプリンタで作成。

イメージ 7

○特徴5 スマホ連携
スマホで画像を入れ替えることができます。

イメージ 8

○特徴6 複数変形
磁石を使っているので、ソードを別な形に変形することが可能です。

イメージ 9

小さなお子様にも興味を持ってもらえるものを考えてみました。

他にも、micro:bitを利用したものをメインに複数展示しておりますので、お立ちよりいただければと思います。今回は、2か所で作品を展示しておりますが、A/06-08で説明していることが多いと思います。
(青:S/05-01は、スイッチサイエンス様、赤:A/06-08は、carcon999のブースです)

イメージ 2

ご来場お待ちしております。

■委託販売開始(2018/07/20 追記)
スイッチサイエンス様で委託販売を開始しました。

取扱説明や回路図を確認することができます。
製品名をbb:bitと呼びます。下記からどうぞ。
https://www.switch-science.com/catalog/3921/

■概要
micro:bitをブレッドボードに挿して使える小さな変換基板を作った話です。
名前をbreadboard:bitと命名し、bb:bitと呼びます。

イメージ 1

今年のMaker Faire Tokyo 2018でも軽く(サブ)展示予定です。

■作った背景

micro:bitに外部デバイスを接続して軽く実験をする際に困ることがあります。
そのままブレッドボードに接続することができません。少し工夫が必要です。

ワニ口クリップでやることもできますが、少し安定間が欲しいところです。

勿論、エッジコネクタの選択もありますが、少し大きいのでそこまで・・・という場合も多いのです。

イメージ 2

※上記は手持ちのエッジコネクタです。非常に優秀で、多くのピンを取り出せるので素晴らしい製品です。


■コンセプト

そこで、ブレッドボードと簡単で安定接続できるようにするためのコンパクトな基板を作りました。

イメージ 3
名前をbb:bitと言います。

■特徴

特徴は、一番最初の図におさめられているのですが、bb:bitにM3ネジ受けが取り付けられています。
M3ネジでmicro:bitを挟み込むことで、ボードに接触させるようにしています。
接触不良が起こりづらいように、皿ネジを利用するようにしました。

イメージ 4

イメージ 5

イメージ 6

イメージ 7

■ピンヘッダはお好みで

ピンヘッダを付ける場所は、5pinを3か所に設けています。

しかし、全て並列に出しているだけなので、micro:bitの5端子(GND, 3V, 0, 1, 2)が利用できるのみになります。

ストレートピンを利用して、寝かせて利用しても良いですし、L字で基板を立てて利用するのも場合によっては良いと思います。

勿論、ピンソケットを取り付けて、ジャンパーで直接接続するようなことも可能ですね。


イメージ 8

イメージ 9

イメージ 10

■こんな感じで使えます。

ブレッドボードに挿して利用できるので、こんな感じで実験できます。



今年もMaker Faire Tokyoに参加しますので、そこでサブアイテムとして展示します。
2018/8/4, 8/5の2日間開催されますのでご興味あればご来場ください。

イメージ 11

■概要
先日、3Dプリンタを壊してしまいました。最終的には、サポートを頼りなんとか復活しています。そこで、得られたノウハウを記事にすることにしました。
結論は、一番最後に書いてあります。(途中飛ばしたい方はどうぞ)

■はじめに
私が利用している3Dプリンタは、AfiniaのH400です。1年前に購入しました。それまでは、Bonsai LabのBS01+を利用していましたが、H400の安定した出力に惚れて購入です。個人的な見解ですが、H400は、本体の性能と付属するスライサーソフトのバランスが良いのが使いやすさの理由だと思います。サポート材が非常にはがしやすいです。

イメージ 1

※H400本体です。BS01+に比べると少し大きいのですが、全体が箱で覆われているので、外気に左右され難く印刷品質が非常に安定しています。

■現象(印刷失敗した・・・)
H400での印刷回数は、50回/年程度です。印刷に失敗することは稀で、覚えている範囲で2回です。非常に優秀です。

先日、印刷時間が3時間程かかるものを出力する必要がありました。
H400は安定して出力できるし、印刷ボタンをポチっと押して、
外出(★これが、そもそもの失敗原因)
することにしました。

・・・時間経過

外出から戻ると、プリントが1/3くらいの出力で止まっています。
途中で何が起こったのか分かりませんでした。もじゃもじゃも出力されていません。失敗品を取り出し、再プリントするもフィラメントが押し出されません。

■修理するかぁ・・・
まあ、経験上フィラメント詰まりなので、慌てることなく分解してフィラメントを取り除けば万事OKとたかをくくっておりました。

エクストルーダー分解は、4,5回経験しているので、過去の記憶でなんとなくネジを外して問題個所の部分まで到達しました。問題個所の写真はありませんが、フィラメントをギアにひっかけて押し出す部分で、フィラメントが大量に削られて、削りかすがギアに付着している状況でした。

イメージ 2

■原因を考えてみる

以下のようなことが推測できます。
.離坤襪寮茲つまり、押し出しが空回りし空転し続けた。
▲侫ラメント径が細い部分があり、ギアの掛かりが悪く、空転しつづけた。
フィラメントのスプーラーが引っかかり、力不足で空転しつづけた。

いずれにしても、エクストルーダーのノズルは、フィラメントを押し出すことができずに、高温でその時間焼かれていた状況だったと思われます。

■対処方法を考える

それを考えると、ノズル内は、長時間焼かれた焼きカスが詰まっている可能性があるので、ノズル内の清掃を行うことを考えました。

ノズルの径は0.4mmであり、その先頭がもし詰まっているのだとすると、別でかんがえなければなりませんが、ノズルの先は未使用品のスペアがあります。なので、そこは諦めます。(結局は悪くありませんでした)

そこで、ヒーターに近くフィラメントを溶かしている通り道をクリーニングする必要だと判断しました。

某サイトで、H400のフィラメント詰まりを取り除く方法についてまとめられているところがあり、そこの指示では、フィラメントの通り道の直径が2.0mmなので、
2.0mmのドリルを通して(ここも失敗の原因)
綺麗に貫通させる記載がありました。

イメージ 3

2.0mmに2.0mmなので遊びがありません。過去の作業では、1.0mmのドリルで多少のゴミ掃除を行ったことはありましたが、
『今回は、焼きカスが大量に詰まっている可能性もあるから、綺麗にするために2.0mmで綺麗にスッキリしよう!』

■クリーニング作業開始!

手持ちの100均の2.0mmピンバイスでやり始めました。はじめは順調なのですが、中間地点で引っかかりがあります。これが焼きカスか?と力を入れますが、進むことができません。

じゃあ、熱を加えて熱い状態でやったら・・・(ここも失敗の原因)とヒーターに接続し、熱を加えて、ある程度温まった状態から、ピンバイスを入れて回すと、変化なし。もう少し力を入れると、ギジギシ音を立てて回る。
けど・・・
あれ?空転?orz 終わった。

イメージ 4

※これ以上いろいろやると、ヒーターも壊しそうで簡単には抜けない。

ドリルの刃が、噛んだのと、フィラメントが接着剤の役目を果たしてしまったのでは?と思います。

ということで、手持ちの工具では対応できずに、ここまでの作業に5時間を費やした時点でギブアップ。

■次なる手段は交換だ!

マルっと交換すれば、おそらく解決すると思うので、交換品のエクストルーダーを検索すると、簡単に見つかりましたが、3万円。うん〜〜〜〜〜〜きつい。

ヒーターのモジュールだけなら、1.2万円。うん〜〜〜〜〜〜。

■最後の頼みの綱はサポート

そいえば、購入してからギリギリ1年のタイミングであることを思い出しました。

サポートに連絡(メール)すると、全部送れば見てくれるとのこと。

この時点で、エクストルーダーの全交換費用に、諭吉3枚を覚悟しました。基本的に、3Dプリンタは自己責任の割合が高いですから。まあ、それでもオーバーホールしてもらったと思えばいいかなぁと自分に言い聞かせてお願いすることに。

抜けなくなったドリルを入れたまま発送するのって、恥ずかしかったのですが、そんなことを言っている場合ではありません。

運よく、廃棄せずに残しておいた段ボール箱に本体を入れて発送しました。

イメージ 5

※余談なのですが、このトラブルの2,3日前に『この段ボールを廃棄して良いか?』妻に尋ねられ、『もう壊れること無いだろうから、いいよ〜』と伝えていたのですが、ゴミの日が天気が悪かったらしく保留されて延命されていたのは幸運でした!

■嬉しい返信

サポートには、水曜に到着し、木曜に見てくれたらしい。メールで返事があり、バランスが悪くなってたから修正しておいたよとの連絡。金額のことが書いて無かったので、費用は・・・と確認すると、

「保証期間なのでサービス」

うわぁ、ありがてぇ〜。まじ神じゃねぇ。送料だけで修理してもらいました。
しかも・・・1年の保証期間終了まで、残り3日とかギリギリのタイミングでした。本当に嬉しい。

イメージ 6

■まとめ(教訓)

恐らく、普通にみなさんは、試されていることだと思いますが改めて実感しました。

・3Dプリンタ印刷中は、近くを離れないこと。
 −>失敗が確認できたら即停止。

・保証があるなら、サポートに相談した方が良い。
 −>自己解決で時間やお金をかけるぐらいなら連絡相談が良い。

・ノズルの掃除には、遊びを持たせたドリルを使うこと。今回の場合1.8mm
 −>内側傷つけたら印刷品質にも影響ある。

ということで、AfiniaのH400とサポートは良かったよって話です。
あと、1年くらいは現役で活動してくれると思います。

2.0mmに2.0mmはやめましょう。1.8mmは、100均やDIYショップではレアなアイテムなので、他で探しておいたほうが良いです。当方は、これ(Amazon)を買いました。

イメージ 7

■概要
iPhoneを持ってないAndroidユーザが、Koshian3.0を動作確認する方法です。

公式?の「Konashi Inspector」アプリが、現時点ではKoshian3.0に対応してないようなので、Githubで公開されているアプリをAndroid Studioで修正して動かすというものです。
※そのうち対応されると思うので、それまでの暫定対応でしょうかね。

こんな感じで、Koshian3.0をAndroidでもLチカができるようになります。



経緯が書いてありますが、結論だけ知りたい方は、一番下の解決方法をご覧ください。

■Koshian3.0とは?

Koshian3.0が先日発売されました。

イメージ 1

上段×印は、比較用に昔壊したKoshian2.0です。(ファームの書き込みができなくなってしまったのでコネクタだけ部品取りで使ったもの)
下段が、Koshian3.0です。外付け部品が少なくなり、すごいシンプルになってますね。

サイズはKoshian2.0と同じで、端子も互換があるみたいです。(ドキュメントで軽く確認)

細かく見ると、低消費になったり速度が上がったりいろいろあると思うのですが、そこは他の方に任せます。※私の今回の目的はそこじゃないので。

■購入の目的
2年前に作った『オリジナル変換基板が使えるか?』検証するために早速使ってみようと思い、ポチりました。上手く動けば、Koshian3.0をこれから使おうと思っている方に使ってもらえそうです。

イメージ 3

写真がオリジナルの変換基板です。Koshianの小さいコネクタから出ている20端子を全て2.54mmピッチで引き出すことができます。Koshian本体をはんだ付けする(汚す)必要なく使えるのでいろいろ試したい場合に便利です。ブレッドボードに挿して使えます。

Koshian2.0やKoshian3.0の受け側として利用できるコネクタDF40C-20DS-0.4V(51)を利用しています。

上手く調整できれば、スイッチサイエンスさんに置いてもらいます。
委託販売を開始しました。2018/07/20追記

下記のURL(スイッチサイエンス様)から、購入が可能です。もしよろしければご確認ください。
https://www.switch-science.com/catalog/3922/

■動作確認
商品も無事届いたので、動作確認を・・・と思いました。

イメージ 2

イメージ 9

イメージ 4

が!

Konashi,Koshian自体が、iOS向きで作られているので、Androidユーザの私には、簡単なLチカ環境づくりができませんでした。iOS向きは資料が整備されていて簡単に動かせそうです。
古いiPadがあるのですが、BLE非対応ですし、iPhone持ってない!

Android向けのSDKも公開されており、使えそうなんですが、単に動作(接続)確認したいだけなので、自作でアプリを作るほどパワーをかけたくありません。

探してみると、Konashi Inspectorというアプリが、Android版でリリースされているので、使えそうです。
早速ダウンロードして、試してみるのですが、Koshian3.0がアプリで見つかりません。orz

イメージ 5

本当は、ここにKoshian3.0のデバイスが見えて欲しいのだが・・・

■自力で修正してみる
幸い、Konashi Inspectorは、GitHubで公開されているようなので、修正できれば使えそうです。

なんとなくですが、互換性があるようなことがドキュメントに書いてあったので、デバイス名がハードコーディングされていたりとか、その程度のものだと思えたので、チャレンジしてみることにしました。

Android Studioと格闘すること、1時間・・・

修正方法が分かりました。

■解決方法

同じことで悩んでいる方がいれば、以下の方法で対策が可能です。
※詳細な手順までは省略しますが、Android Studioのご利用方法が分かる方であれば大丈夫かと思います。

GitHubから、KonashiInspectorをダウンロードする。
Android Studioで,鬟ぅ鵐檗璽箸垢襦
MainActivityの関数"findKonashi"の中身を下記のように変更する。
mKonashiManager.find(this); → mKonashiManager.find(this, false);

イメージ 6

ぅ咼襯匹靴董転送する。

これで、ビルドしたアプリで一覧にKoshian3.0のデバイスが見えるはずです。(モジュールの電源は入れてくださいね。)

イメージ 7

■あれ?直ぐに切断される場合
私のスマホで、試していた際に、一覧には、Koshian3.0が見えるが、タップして接続すると直ぐに切断される。という謎現象が発生しました。

何度試しても切断されるので、諦めかけたときに、一度スマホのBluetoothをOFF→ONしたところ、あっさり接続できたので、不明な現象が発生したら、通知バーのところから一度試してみると状況が改善するかもしれません。

■最後に
実は、Silicon Labsのファーム書き込みボードを何故か持っていたりするので、ファームの書き換えもやる気になればできそうです。(やるとは言ってない)

イメージ 8

書込み端子を作るのが大変そうだなぁ。これは、Koshian2.0のときも苦労したので・・・

全94ページ

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

[ 次のページ ]

本文はここまでですこのページの先頭へ
みんなの更新記事