キット製作の補修いたします

メルカリなどでキットの頒布をしておりますが、こちらでお求めいただいて実際に作成してうまく動作しないというお話もあり中々説明資料だけでは難しい面があります。動作しない場合には、組み込みの里までお持ちいただければ、内容確認させていただきます。一件2000円で受付させていただきます。送付いただける場合には、返送送料込みで3000円で対応させていただきます。
・不具合箇所の特定、修理内容について明記して返送いたします。

問い合わせは以下のQRコードでメールしてください。

KX168

hx6b

ルンバみたいな掃除機を作りたい(3)

BT接続の沼にはまった。HC-05/HC-06ともに在庫が山の中から見つかり確認をするのだが、オリジナル品とコピー品の混在なのかも含めて曖昧で見えてきたことがあった。
PINコードの設定コマンドがエラーになり、PINコードの確認ではPINコードが6桁の表示になるのだった。
PINコード桁数については、さまざまなBT機器の中で4桁設定が占めていたのと以前の開発記録では4桁だったので混乱した。調べていくとBT規格の進展の中で6桁に代わっていったようでHC-05/HC-06の目指すIoT機器ではBLE規格などの時代になり6桁に移ったらしい。もっていたスマホアプリではPIN4桁設定だったのだが、新しい他のBT接続ターミナルアプリを調べると6桁に対応しているようで、スマホとの接続でも問題なく動作することが分かった。週末にS君が来た時にはBT子機となるHC-06タイプのモジュールを渡して彼のBT接続ターミナルソフトでも6桁設定で通信が出来た。
しかしながら、実際に彼がやりたい動作中にコマンド受信がしたいということには、別の困難があった。
彼が複数集めてきたスケッチはいわゆる単機能でloop関数の中でwhileループを組んでいるようなものばかりだったので、同時に処理をするためにはこうした処理をマージしなければならない。
S君とは哲学問答をするように、彼が実際にやりたいことを確認しつつそのためにはどうすべきかを解説する。
極端に言えば状態遷移図を彼に書いてもらうことだった。Arduino UNOの性能範囲で実現可能なハード設定にはなったので、この先は彼が設計をすすめることで出来てくるだろう。
彼には、時間管理も含めて指導したいので、予め帰りのバス時刻をめどにアラームをアレクサに頼んでおいた。普段ならばずるずるとやっていて母上に迎えに来てコールをしてからさらに続けるということだったが、アレクサがアラームした段階で進んできた内容を振り返りこのままでは、ここで出来ることも限られるので納得して今回は帰ってもらうことになった。小学生ではなくなり来月からは中学3年になるS君なのでそうした自立する姿も母上に見せられればと思う。年の離れた末っ子ぶりはわかるものの、逞しくなってほしい。

ルンバみたいな掃除機を作りたい(2)

サーバー構築が叶ったS君は、3年越しのプロジェクトであるルンバを再開した。超音波センサでの距離計測、衝突予防で後進しつつ方向転換をして走っていくというものだった。
Arduinoにモータードライバーを搭載して3つのモーターを駆動する。2つは田宮のギアメカだ。残り一つは塵取りに掻き込むブラシモーターの予定だ。
駆動系統を整理して超音波距離センサで方向転換が出来るのを確認して3年前の課題クリアと思いつつ、家に持ち帰ると動作がうまくないらしい。
単三電池二個を搭載したモーター用電源では、モータードライバーでのドロップも含めてモーター駆動には不十分のようだ。三個搭載の電源ボックスと交換して安定動作になった。
彼の思いとしてはリモコン制御でスタートストップをコントロールしたいということもあったらしく翌週には超音波センサを組み込んで動作させてみたけどモーター駆動中は、動作しないらしい。
距離センサとして用いる超音波センサと超音波リモコンで行う信号検出が性能的には厳しいらしいということがわかり、距離センサをi2Cと接続のToF距離センサに変えてみた。
IoTサポートをしてきた経験から検出精度は対象の差があるけれど近接範囲についての壁検知ならば動作しそうだと思い実験をしてもらった。超音波同様にまっすぐぶつかる場合には検知するのだが。いずれにしても二つないと検知できないケースもありそうだった。超音波リモコンの検出自体はするのだが、どうも検知したコードが化けてしまうようだ。モーター駆動でのノイズが影響するのかリモコン受信部のアースにノイズが回り込むこともあるようだ。並行処理をしつつの超音波リモコン機能はArduino UNOでは難しいと判断してBluetoothモデムモジュールを使うことを提案した。
Bluetoothモデム(HC-05/HC-06)は、かつて3×3のバスケットボール用に開発した12秒タイマーでスタート・ストップをリモコン制御するのに用いていたのでインタフェースのシリアル速度さえ抑えておけばsoftwareserialでも十分に検知制御できて、シリアル接続のLED群WS2812Bなどで構成した大型表示部も制御できていたので問題はないはずだった。
大量にどこかに在庫していたのだったが、部品棚にあったのはHC-05の親機が見つかった。サンプルのスケッチとスマホ側のアプリを紹介しておいたら、彼なりに自宅で接続テストをしたようで、あいにくとアプリは現在の彼のスマホではAPIがマッチしないのか動作しないようで、別のBT接続のアプリを見つけて実験をしていたらしい。
自宅での実験するなかで、どうもHC-05が正しく応答しないようで壊れているのではないかという話になり次回来た時に交換してほしいという連絡がLINEできた。
こちらでも動作確認をしようということで、古いスケッチを持ち出してみたのだが、どうにもBT接続のターミナル接続とコネクトできない・・・。

小学生3名に電子工作スターター指導

組み込みの里木更津教室として開けたのは久しぶりだった。
母校の木更津高専近くにお住まいの方からの問い合わせがあって再開することになった。二家族いらしてそれぞれお母様と息子さんという形でお子さん3名。6年生と3年生の混じった形で友達とご兄弟ということだった。

初めての半田付けで広い銅箔面に半田付けするという意地悪ではなくて面を温めるという感覚の練習でぬれ半田ができるかに取り組んでもらった。悪戦苦闘をしていたが、次第に皆さん半田ごてで温めるためにはどうするのかを体感してくれたようだった。

電子さいころ用の部品を確認しながら、3人に渡し背の低い部品から順次挿入して向きを確認してリードを押し広げつつカットするのが難しいようだ。短く切りすぎて、半田付けをする前に落ちてしまう子もいた。失敗したことで次はしっかりやろうと頑張っていた。

ご兄弟できた二人は、半田の送り量が要を得ず半田の海でショートしたりしていたので吸い取り電線や吸い取り器でパターンのショートが解消するように指導する。吸い取り器も吸い取り電線も使い方学んでいくようだが、もともとの良い半田付けの指導が不足していたなと反省する。もう一人のお子さんは元々半田付けの量が適量なのかそうした問題はなかった。実際の基板で二か所程度はそれぞれの物で模範を見せたうえで彼らの半田付けを順次させてみて個々に指導確認してからあとを任せる形にするのがよいだろう。

マイコンの半田付けには、ピン揃ったが活躍するのだが、これは子供たちがとても気に入ったようだ。LEDの向きなどを確認してコイン電池を付けてあげて試運転だ。大体どの子の作品も何か所かのLEDが点灯しないか、不安定だったりする。症状別にルート確認のマップを作って置いたらよいかもしれない。半田付けの不良が大半なので、半田の色を見ていけば大概の問題は解決する。

半田の海にはならなかったお子さんも一か所のLEDがおかしかったが、ルートの半田付けを確認して色の悪い個所を半田付けしなおして解決した。ほかの二人も海を解決してからも何か所かの半田付け個所を対策して解決した。賑やかにそれぞれの机の上で歓声があがりお母さん方も声をかけていた。実際のお菓子のケースに入れてみるとあたったり向きが光の向きに不満があったりするので裏側の足の長さを切って揃えたりという仕上げ作業は夢中になって各人が進めて時折治せないモノは手をあげて応援要請をしてきた。

半日という範囲で皆さんが仕上げられるのが丁度良いペースだといえる。

 

逆ポーランド方式の電卓キットを作ろう

組み込みの里で、長年利用してきた逆ポーランド方式の電卓が多数ある。歴代使い込んできたモデルを中古で再入手したり、最新型モデルを買ったりとしてきた。写真にあるのは日常に利用しているHP-15Cというものだ。動作ステップをプログラミング出来るものでもある。
この逆ポーランド方式の電卓には=キーがないので、困惑する人が大半だ。学生時代から誰かが借りていっても使えないといってすぐに返されるというメリット?もある。

複雑な計算式を解法していく上では綿密に対応する括弧を確実にインプットしたりすることもなく、最奥の点から手計算で解いていくというやり方なので逆にインプットミスも少ないのだ。当時は日本語方式と呼んで売られたりもしていた。

3に5を足すという形なので  3 に 5 + というステップで答えが出る

計算式通りというやり方だ 3 + 5 = となる。

逆ポーランド式(RPNと略す)の電卓では区切りとなるキーがENTERというものになる。

スタックは4段あり、最上位(X)が表示されている。

ETNERというキーが操作されるとそれまで入力された数値・結果がスタック(Z->T, Y->Z, X->Y)にプッシュされる形になる。

二項演算をした場合にはX, Yで演算を行い、スタックから

順次ポップ(演算結果(x,y)->X,  Z->Y, T->Z, T) されてくる。

今回作ろうとするモデルは、この写真の機能を実現したキットだ。

メキシコの方が設計されて出されている。基板や部品は中国で手配されているようだ。

以下のサイトで販売されている。今回はアルミパネルと3Dのケースを手配したので
63ドルほど、更に送料がFedexで25ドルかかった。

https://www.tindie.com/products/hobbystone/px-15c-an-hp15c-emulator/

表面実装部品はないが、沢山のタクトスイッチを揃えて実装するのは少し大変だ。

なお3Dプリンターでケースやキートップを作り、PDFのラベルを貼り付けるという形も取れるようだ。その場合は50ドルくらいになる。

セオリー通りに背の低い部品から実装していく。
タクトスイッチはそれぞれ1ピンだけ半田付けをして、都度垂直を整えてから次のピン
を半田付けするという形で進めていく。

液晶表示器の下にATMEGA328が実装されて、液晶表示は両面テープで留められて
基板とはヘッダーを半田付けして接続される。ファームの書き換えは、背面にコネクタがある。キットのマイコンにはファームが書き込まれている。

バックライトが付くのは実機にはなかったことでした。

大きさを比較すると少し小さくて、厚いです。

サイズ比較

電池はCR2032を無骨に挿入する形なので交換するのに
振り回すか、ドライバで開けるしかない状況でした。

対策として電池を交換できるためのハンドルを設計しました。
こちらの載せて挿入すると取り出すときにはつまんでロック
を外して引き出せるようになります。

電池ホルダー

PLAで作成しました

電池向きを合わせてキャリーをかぶせます

出すときには、少し出ている爪を挟むことで引き出せます

3D-Printer Fix Study Challenge (木更津高専生限定)

対象となるのは、組み込みの里で、導入してきた初代3DプリンターであるRepRapベースのRobo3D R1ですのでオープンソースで改造や活用が容易なものです。

第二の居場所として活躍予定でしたが、出戻ってまいりました。修理が必要な状況ですが、無償で必要な修理材料ならびに指導を提供します。修理期間中の里の利用料は無料でご利用いただけます。修理完了後のプリンターは無償提供いたします。

  • 募集期間 2018/12/29から2019/1/26
  • 募集対象 木更津高専の学生(個人でもチームでも)
  • 募集条件 参加者の方たちの修理活動についてはホームページで逐次公開させてもらいます。
  • 応募方法 電子メールで下記内容をお送りください。
    参加希望の方の名前、学科名、学年、メールアドレス、修理が終わったプリンタ―の活用方法について記載してください。
  • 選考結果は、1/28にメールでお知らせします。
  • 修理期間 2019/2/2から2019/3/24 (この期間は里の利用料はかかりません)
  • この期間を超える場合には、里の利用料を申し受けます。

Arduinoで学ぶ組み込みハンズオン合宿をしてきました(1)

先週末11/24と11/25は、依頼された組み込みハンズオン合宿の講師をしてきました。開催場所は茨城県神栖市の旅館を借りてのものでした。オープンソース活用などを進めておられた知己が地元の母校(波崎工業高校)の後輩たちもターゲットにして開催する刺激を与えることを目的として企画されましたが、実際には若手抜きでの開催となり準備推進といった様相となりました
先日開発したスポーツ用の12秒タイマーの実装例などの解説を中心にしてカスタマイズや、センサー・アクチュエータを活用できるところまで参加された方々のIDE環境のセットアップから二日間で漕ぎつけるというものでした。ほかにも教育研究されている宇都宮大学の先生や波崎工業高校の先生のお話も交えての内容で縦軸が私の担当するハンズオンの合宿でした。

地域の工業高校生の参加勧誘に向けては、社会連携などの活動としてのお話しにつなげていく中でのものでしたので準備に手間取り実際の生徒さんたちの都合には十分な宣伝期間などが不足して、社会人の方たちの参加のみに限定されましたが教える側としてのトライアルとしては寧ろIT環境になれない方たちも含めてのものとしての挑戦でもありました。

最初に、自身の邂逅となるマイコン遭遇となる組み込み人生について自己紹介をかねての経歴説明の中でマイコン開発の進め方にどう携わってきたのかを話して開発環境への取り組みが35年ほど遡る時代背景での高級言語Cのマイコン実装実現での経験について話をして、現代にいたるまでの話をつなぎました。これには今日のハンズオンへの伏線を隠していました。同様な内容は先月開催されたヒューマンネットワーク高専の全国交流会でのプレゼンと被ります

手元に皆さんが使えるようにしたのは中華製のArduino互換基板です。今回参加された方々はUbuntu, Windows, MacOSと様々なタイプのマシンを持ち込まれていたのでIDEのインストールを通じて最近のライセンス問題やArduino自身の出自や、Arduinoプロジェクトの御家騒動、USB変換チップの模造品問題などについても触れて今回のものに搭載されているものが中華国家が推進しているCH340が搭載されていることに触れて、識者の方にも経験のあるUSBケーブルが動作しなくなったある時期の時代背景についても触れて実態について紹介しました。こうした技術上の現代史を知らないまま、これからの時代を生きていくうえでは重要な点と理解しています。

折角の機会なのでマイコンの構造を解き明かしつつ内部の構成についても解説を加えるという回りくどい教え方でもありました。

Arduinoのベースとなるマイコンの基本を知ってもらう意味で機械語の動作が目視でみたりすることが出来るマイコン黎明期に登場したAlnair/IMSAIなどのレプリカマシンであるLegacy8080(科学少年出版)を持ち込みマイコンとしての動作の概念であるメモリ、バスライン、デバイスの仕組みについて解説して自身が開発して成果を上げてきた話とシンクロしながら説明をして、組み込みの基本となるリセットからのマイコン動作も含めてデモすることで実際にマイコンをステップ動作させることで理解した雰囲気に導きました。

Arduinoの良いところはプロトタイピングのために徹底した抽象化が図られていて本当の意味で知らなければならない細かい所作については理解しなくても使い込んでいくことが出来ることでもあるのですが、そうした隠ぺいした部分について詳細な理解までは別にして気にする程度に説明することで実際のモノづくりに必要なことを実装例を通じて示していきました。

実際に作ったスポーツタイマーは12秒計測を行う大型のLEDでフラッシングを脈動するような形で色や照度を変えつつ表示計測して任意に停止したり巻き戻したり進めたりという実現したものの説明を先に行いました。これで参加される方がこれから説明しようとするものについての動作上の理解をしてもらうことが出来ました。

具体的な動作例を示すことで、その中身のソースコードを説明していくことで必要な記述が何を示していくのかについての関心が増します。

150個のLEDピースが連結されたNeoPixelというデバイスが三本の線で接続されていることを示しつつ、信号線の定義をソース上で行うこと、実際の基板の上での読み方や複数のピンが存在する中で使える二つのタイプのピンAnalogの入力にもつかえるピン、デジタルの入出力に使えるピンなとの機能についての説明や配置上の自由などにふれ、これから制御しようとしているLEDのシリアルテープ構造のもの自体が一つずつにマイコンが搭載されていて3色のLEDの色情報と輝度情報を持っていることを教えます。セグメント構造、色の制御、時間経過での色と照度変化のための構造定義とロジックについてから前後しますが、ArduinoのプログラムにはMainが存在せずにSetupとLoopしかないことを説明して、普通のブログラミングであればMainから終了すると終わってしまうのが、Setupが最初に一度だけ呼ばれてから、Loop関数は繰り返し呼ばれてしまう構造であることを伝えて、ようやくソフトの制御の流れについての読み方を説明していくことを伝えます。スポーツタイマーではBluetoothの端末からのコマンドで動作することを示していたことは示していましたが、あえてシリアルインタフェースは使わずにソフトシリアルを使っていることを理由も含めて説明していくことで深みに嵌めていきました。

7セグメントの構造の1.5桁構成の表示機で制御するためのLED構造が数珠つなぎで一番Arduinoに近いものからアドレスが降られていることを伝えて制御したいセグメントを定義するスタートとエンドの番号を定義していく箇所。

そのセグメントが0から12までどの様に点灯するのかということを定義したデータ配列。

三色のバランスを段々変えていき、緑から始まって、徐々に赤くなっていく色の変化を定義した配列。

一秒刻みで毎回ハッキリと輝度を上げて表示しつつ経過時間で薄くなっていくための輝度調整の計算ロジック。

以上開発した関数を組み合わせて、ある経過時間での残り時間を、その時の秒数と、その時の輝度と色で150個のLEDに与えるデータとして編集する関数群として呼び出す仕組み。

最後に一気にそのデータを瞬間的に高速に払い出すための関数。

TA7291Pでリレー制御

IoT機器開発の依頼がありコンサル対応しています、ラッチングリレー制御をネットで行いたいということでArduinoとSakuraIOに繋がるrelayシールドと、その筐体実装のサポートをしました。プロジェクト自体は現役高専生がベンチャーの会社で任されて進めていて、組み込みの里ではそのフォローサポートならびに試作製造といったことをしています。

途中経過は、試作基板を削りで作成していましたが、最終的にシールド基板のみを開発することになりました。

量産基板には設定切り替えなどをJumperで出来るようなフットプリントを付けようとしているのですが、使っているKicadが色々と難癖をつけてきて妥協と解析対応をしつつ進めています。

若者がモノづくりの主体として関与するこうした取り組みを任されているベンチャーの方とのコラボはとても良い実体験になると思います。スマートに解決できることばかりではなく、お客様との打ち合わせなども体験しながら進めているプロジェクトの発信源は、やはり高専OBの熱い方でした。

仕様変更の調整なども踏まえて少し余計にかかりましたが、夏休み前にお話しを聞いていた時から長い高専生の夏休みの実務アルバイトは大きなインターンシップ以上のものになっていると思います。

試作基板には、仕様変更の対応でターゲット装置の遠隔監視などの観点で温度センサーが追加で実装されることになりました。ユニバーサルエリアを作らなかったので孫基板の実装となりました。

里では何年か前に話題になった例の温度センサーを使っています。(Hi)

NC加工をしてみる(4)

今回のお題は、市販の防水樹脂筐体に収めるある程度数を作ることを想定したモノづくりのお手伝いだ。里の加工で出来ることはしれているのだが、そこはベンチャー会社の人たちにしてみたら他に頼むことよりも出来るだけ作れるものなら最初にどこまで作れるのかは知りたいということらしい。

基板手配は、当初の課題だったが、サイズの問題などからEAGLEからKiCADに移行して新しい機能などを覚えて試作品としてOriminを用いたUSBCNCで削り出して試作評価というフェーズが簡単に崩れてしまった。良くも悪くも今までの使い方がCADというよりもアートワークを手で引いているようなPCBEだったりしていたことから制限を外して挑戦しようということでもあったのだが、試作用もう少し融通の利く環境構築も必要のようだ。

基板がとりあえず、KiCADのアートワーク状況を手コピーしてPCBEのスクリーンにプロットしていくのだがPCBEの柔軟な運用としてプロットポイントを自在に原点調整やピッチ変更が出来るのが幸いしてほどなく出来るのだが、あいにくと強度が必要なUSBコネクタやDCジャックの類の角穴などは折角モデルを使ったのが仇となっていたので丸で近似するしかなかった、作図は簡単だがはんだ付けの苦労はありそうだ。

これやArduinoの基板をスペーサーで保持するのだが、その設置用の穴開けが課題になりそうだということは先週のトライアルで分かった。穴あけ位置を指示する樹脂製のテンプレートを作成してそれ越しに穴あけをすることにした。これを作るのは今回は3Dプリンターで少し垂直のガイド性もつくようにした。

結局Arduino以外も含めて全体のテンプレートが丁度3Dプリンターで作れそうなので穴のサイズごとに色指示のシールを貼って効率が上がるようにしてみた。
Arduino UNOには使えないコーナーピンが一か所あり、設計上は3mmのビスを使うことになっているのだが実際にあたってしまいネジ締めが出来なかったりもしているので、ここは2.6mmのネジを一か所だけ使うようにした。そんなこともあったれして実はバタバタとしたNCデータの流用だった。転写する段階で読み間違えたりしてサイズ位置が合わなかったこともあったので、もう少しレビューを落ち着いてしたほうが良さそうだった。問題のUNOのマウントには樹脂製のスペーサーを使わないと背面のパターンも当たってショートしそうな感じもしたので手持ちのジュラコンのパーツを見つけ出してくみ上げてみた。

明日、全体試験をしてもらって来週はいよいよ顧客先で稼働評価試験となるらしい。

NC加工をしてみる(2)

微妙な配置にあるのは、今回作成したリレー制御基板の穴加工位置についたガイドである。適当にリブをつけて強度を持たせようとしているのだが、矢印をエンボスにしてあるのは、ターゲットの基板の角に寄せるためのマークである。

ABSもしくはポリカーボネートで明日作成する予定だが、下にはエポキシ基板も当てようかと思っている。実際にはシャコ万力で押さえてハンドドリルまたはボール盤であけることになりそうだ。

位置精度が必要なものは、あとArduino UNOのマウント部分もあり、同様なガイドを作成する予定だ。下の穴あけを依頼すると加工費用だけで材料の25倍以上の費用となるらしい。工賃は馬鹿にならないし、実際に先日配置の指示だけを紙に出して貼りつけて穴あけを試みたのはNGだった。少なくともオートポンチを施工すべきだったようだ。

精度を出すのが難しいことは確かにその通りなので専用冶具を3Dプリンタや基板加工機で作成するのは今風なのかもしれない。