「日用品制作」カテゴリーアーカイブ

名前PICKERをアップデートした

用途も使い方も前回と同じ

あらかじめ登録された複数人の中からランダムに一名を指定するための装置。授業中に回答者を指定するために使うことを想定してます。

今回注力したところ

簡単に電池交換できることと、文字を大きく表示できるようにOLED2枚使いにしたところ。

前回のNamePickerはCR2032を使っていたのだけれど、ケースを開けて配線丸出しにしないと電池交換できなかった(LEDをもいだ効果か、3週間ぐらいは電池が持った様子)。

今回はできるだけ手軽に電池交換できるように、部品の入っている空間と電池の入る空間を分けて、スライド式で開けられる電池蓋をつけた。

また、前回は128×32のOLED1枚を使っていたけど、文字が小さすぎて名前がよく読めないという問題があったので、今回は128×64のOLEDを2枚組み合わせて使って、文字を大きく表示できるようにした。

LovyanGFXでつまづいた

実は前回も128×32のOLEDを使おうとしたときに、偶数行奇数行の描画順序の問題でつまづいて、らびやんさん(@lovyan03)にアドバイスいただいていたんだけど、今回は1つのマイコンで2枚のOLEDを扱おうとしたら最後にinitを読んだ方しか使えない問題でつまづいて、またまたアドバイス頂いた。

LovyanGFXでは、I2Cに使うピンを自由に選べるので、てっきりソフトウェア的なI2Cだと思い込んでいたんだけど、実はESP32のコードではハードウェアI2C(ESP32には2個あるらしい)を使っているとのこと。ただ、ESP8266向けのほうはソフトウェアでやってるので、そちらのコードを移植してくれば3つ以上のディスプレイも使えるかもとのこと。

前回も今回も、つぶやいた直後にアドバイス送ってくださってるんだけど、いったいどういう仕組みで監視しているのか……
ありがたや。

Fusion360もがんばった

今回はちょっと頑張ってモデリングした。趣味のロボット製作という本を参考にさせてもらって、ケースそのものだけではなくて、OLEDやボタン、電池など、内蔵される部品もモデリングしたり既存データを取り込んだりして、中身が見える状態でケースをモデリングした。

いつもはケースに組み込む部品のサイズだけをノギスで計って、その部品が配置できるだけの空間を空想しながらモデリングしてたけど、ちゃんと部品もモデリングすると、干渉するかどうかが正確にわかるので、格段にケースが作りやすかった。

最後に

今回、初めてFusion360で各パーツをコンポーネントとして定義した。(今まで全部1コンポーネント内に複数ボディとして作っていた……)

コンポーネントに分離すると、移動もできるし、色分けも簡単にできるし、アニメーションも作れる。ということで組み立てアニメーションも作ってみた。

今回は、Fusion360を活用できたので満足。

名前Pickerをつくった

OLEDとプッシュスイッチ2つ

用途

あらかじめ登録された複数人の中からランダムに一名を指定するための装置。授業中に回答者を指定するために使うことを想定してます。

使い方

右側の横長の枠部分が名前が表示される部分。左端の灰色のボタンがクラス切り替えスイッチ。水色ボタンはPickボタンで、Pushするたびに、現在選択中のクラスからランダムに一名の名前とふりがなと通し番号が表示される。

一度表示された名前は、クラス全員が表示されるまでは再表示されない。この仕様を実現するためには、クラスの全員に対して、ランダムに順番を割り当てておいて、それを順に表示していけばよいので、クラス切り替え時とクラス全員の名前表示が一巡したときに、現在選択されているクラス全員分の順番決め抽選を実施している。

今回注力したところ

今回は、「DeepSleep機能活用でハード的な電源スイッチをなくすこと」を目標にした。いちいち使い終わるたびに電源オフするのは面倒なので、電源スイッチなしで長時間駆動を実現しようとして頑張ってみた。

回路図をきれいに書く術を知りたい……

M5Stamp(ほかのM5シリーズも同じぽい)は、DeepSleep中はRTC部分だけ?が動いているらしい。変数を宣言するときにRTC用のRAMとして属性を宣言してあげると復帰後も変数の中身が保持されている。

Lang-shipさんのサイトがとても参考になった。

https://lang-ship.com/blog/work/esp32-deep-sleep/

ケースづくりノウハウ

こういう小物のケースを作るときには、いつも適当にFusion360をいじってるのだけど、毎回行き当たりばったりなのと、ボタンやマイコン、ケースのフタをうまく固定するような形状にできなくて、ホットボンドや接着剤だよりになってしまってるのが困りどころ。

先日、@ina_ani さんが投稿されていたLibreCADとOpenSCADを組み合わせるという方法が気になってる。

Fusion360も捨てがたい

今朝、Prusa用のエンクロージャーが発表されたというツイートから、いろいろ3Dプリンタ系のブログを見ていて、偶然見つけたのだけれど、電子辞書Hackで有名な@puhitakuさんの記事で紹介されていた「Fusion360でCAD設計を覚えよう」シリーズも気になる。

最後に

いつも通りとりとめのない記事になってしまったけど、とりあえず、今回のCR2032x2でどれぐらい電池が持つかが気になるところ。DeepSleep中の電流は当初0.35mAだったけど、M5StampのLEDを除去したら0.15mAになったので、(計算よく分からんけど)1週間以上は持つ、かな……

電卓完成

TENTAKUに刺激を受けて電卓を作りだして3か月半ほど、ぼちぼち作り続けてて、いちおう完成した。

完成品の写真

こんな感じ。TENTAKUの未来感ある見た目とは正反対のレトロ調。

自作電卓TUTUculatorの正面写真

外装はFusion360でデザインして3Dプリンタで印刷。フィラメントは当初PETGで印刷してたけど、テカテカして安っぽくなってしまうので最終版はPLAで印刷した。

全体の形状はCasio MiniのCM-605あたりを参考につくった。ちゃんと開け閉めできる電池蓋をつくれたのがうれしい。

工夫したところ

現在の形に落ち着くまでにかなり試行錯誤したけど、キーキャップのレーザー印字はTENTAKUを作ったときに比べるとかなり進化した。

TENTAKUのレーザー刻印
二世代目プロトタイプの大失敗レーザー刻印

2.5Wのレーザーカッターなのでパワー不足だとあきらめかけていたけど、刻印中の様子をよくよく観察してると、ススがほんのちょっとキーキャップに付着した瞬間に、一気に焦げ焦げが広がることに気がついた。

どんなに薄くて表面だけの層であっても、黒色でありさえすればレーザーのエネルギーをしっかり吸収してくれる!ということで、ホワイトボード用のマーカーで表面を黒塗りして刻印してみたら大成功。レーザー出力20%ぐらいで十分だった。

フォントはBrieというのを使った

昇華インクを転写するのも試してみようと思って、印刷を注文してたけど、レーザーが思った以上にうまく刻印できたので転写は次回作に向けて取っておくことにする。

中身など

構成はプロト版からあまり変わってなくて(途中、7セグLED使ったりしてたけど)、最終的にマイコンはArduino互換機のPro mini、表示器は16文字x2行の秋月LCD。キースイッチはGATERONの青軸でキーキャップは遊舎工房の白色DSA。電源は単4電池一本で秋月の5V昇圧モジュールをつないでいる。

電池ケースをかっちり固定するところまで作り込めなくてホットボンドで接着した・・・

キーボード部分はだいぶんこなれてきて、かなり安定して作れるようになった。枠組みはプロト版はうすい一枚板だっだけど、最終版ではキースイッチの引っかかる部分だけ薄く残して枠の内側は厚くすることで強度を大幅UP。足もつけたのでキーボード部分だけでしっかり自立できるようになった。

9本の足と、枠の中央部は厚くしつつも、キースイッチのツメが引っかかるところは薄いまま。そして空中配線もちょっとだけ上達、高低差をしっかりつけることでスズメッキ線で交差部分を接触させずに配線できた。
基板とキーボード部分の接続はEHコネクタを使ってみた。けど、コネクタのピン圧着するのにある程度太い配線が必要になるので、かなりかさばってしまった。ここはUEW線のほうがよかったかも・・・

最後に

かなり難儀したけど、単独で使えるモノとして作りあげることができたのがよかった。本職のはずのソフト部分がいちばんやっつけでつくってしまってるのがかなり残念だけども・・・

背の低いキースイッチを使った薄型バージョンや、キーの数をもっと減らした2進数電卓、パソコンにつないでテンキーとして使える電卓など、いろいろと作ってみたい電卓案はあるので、電卓道楽として、これからもぼちぼち作り続けていきたい。

M5StackをArduinoとして使うまでの手順

M5StackをArduinoとして使う手順、2018年6月28日時点版

公式サイトの手順はarduino-esp32のインストールとm5stackライブラリのインストールでページが分かれていて、すこしややこしかったので現時点での手順を1ページにまとめてみました。

注:以下の手順は古いです。Arduino IDEのボードマネージャからESP32を選べるようになったそうです(2018/8/8 追記)

続きを読む M5StackをArduinoとして使うまでの手順

M5Stack使ってみた

2か月ほど前に買ったまま放置していたM5Stackを使ってみる。

M5Stackであそぼう

とりあえずお手軽にM5Cloudでお試し。

jpg画像表示は簡単にできたので、二酸化炭素センサー MH-Z19をつないでみる。

前回MBEDでこのセンサーを使ったときはPWMでデータを読んだので今回はUARTで接続。

M5StackのTX2とRX2という端子がUART2の送受信端子なので、そこにMH-Z19のRXとTXを接続してあとは5VoutとVin、GとGNDをつなぐだけ。

仕様書に書かれた通りのコマンドを送ると値が読み取れたので、そのままCO2濃度としてディスプレイに表示。

外付けセンサーがかなり不格好だけど最初からディスプレイとバッテリがついてるのはお手軽でいい感じ。

センサーをスタックできるようにケースつくればいいんだろうけど・・・

一応コードも張り付けておく。

IoTLT#6で自動給餌機とスマートスピーカー連動の話をしてきた

2018/02/16(金)19:00 〜 21:00
福岡版IoT縛りの勉強会 vol.6@Fukuoka Growth Next
で初LTしてきた。

発表に使った資料はこちら。しかじろうさんの代わりにガヤ芸お願いしたとこの個人名と艦長の写真は削除。Googleスライドから変換したら画像遷移のアニメーションもなくなってしまった。

 

 

しゃべりなしの資料だけだとわけがわからないけど、流れとしては、スマートスピーカー・IoT・3Dプリンタを組み合わせると世界が広がってとってもいいですよというのを感じてもらいたい⇒実例紹介⇒モデリングの苦労編、という感じ。

単にスマートスピーカー連動のIoT餌やり機を作りましたで話し始めると、へーってなってしまいそうだったので、色々導入方法を考えて、夢は大きく現実でずっこけ感でるように、スタートレックのレプリケーターを真似したいというのを(後付)動機にしてみた。

一番がんばったのはイラストやさんを使わず、オール手描きイラストで資料つくったところ。スケッチブックにHB鉛筆でがんばって描いた。自信作はスポックさんと紅茶飲んでる艦長かな。

ESPとかIFTTTの使い方とかは調べたりすればすぐわかるのであっさり流し。モデリングの苦労と言うか、変化の過程も見てもらいたかったのと時間余るのが怖くてプレゼンの最後にモデリングの過程資料を付け足したけど、モデリングパートにたどり着いたときにすでに5分経ってたので、完全に時間オーバー、蛇足だった。

発表直前に思いついてしかじろうさんツイートを盛り込んだおかげか、手書きイラストのおかげか、聴講者のみなさんが話した内容に対してしっかり反応かえしてくれて、いい雰囲気でLTできた。一番の失敗は動画撮影をお願いしていたつもりが、動画ってちゃんと伝えてなくて写真撮影してもらってたこと・・・ガクー。

LT後の懇親会では前々から話を聞いてみたかったIoT主婦さんとがっつりお話できたのがよかった。なんにでもばんばん飛び込んでいく姿勢、刺激を受けました。とりあえずアレクサスキル公開したくなった。

スライドにはソースコード一切でてこないので、一応ちょっとだけコードがでてくるQiitaのリンクも貼っておく。

esp8266でSlackBotを作ってIFTTTからのメッセージを待ち受けする

最後に、福岡版IoT縛りの勉強会 vol.6の他の登壇者の資料へのリンク。IoT主婦山田さんの「Voice」と、Blenderの師匠宮田さんの「攻めの可視化」。

宮田さんの方は装置?の写真がないと意味不明なので写真もつけておく。

 

自動給餌器のハードウェア構成

マイコンとサーボまわり。サーボは次のURLで紹介されている初心者向けおすすめのEMAX ES08MAIIを利用(2017年4月頃に買ったまま放置してたのを活用)。マイコンは手元にあったArduino LEONARDOを使った。

Arduino、Raspberry Pi等で使える1000円以下の安サーボモータ比較~我々はどのサーボを使うべきか

サーボは2つだけならArduino直結でもよさそうだったけど、少しでも不安定要素を除きたかったのでサーボコントローラーを購入。Amazonで検索してPCA9685 16Channelというやつ。Adafruitの互換品で980円ぐらい。

電源は手元にあった5V2Aぐらいの秋月のACアダプタ。サーボコントローラに給電してそこからArduinoに配る形。サーボコントローラのVCCはどこからつなげていいかよくわからず、5V-outと直結でいいような気もしたけど、なんとなくArduinoの5Vをお返しする形でつないだ。

あとはサーボをコントローラにつないで、コントローラとArduinoのI2Cをつないで、配線はできあがり。