TA7291Pでリレー制御

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

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

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

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

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

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

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

NC加工をしてみる(6)

PCBEとOriminの組み合わせでも強度の取れる形でUSBコネクタやDCJACKをDCJACKを実装できるスリット型の角穴を作成することが出来た。

秋月電子の定番ジャックだ。

基板加工機での刃の切れ味からか、バリが気になった。金属ブラシを取り付けてこの後サンディングを行った。角穴の嵌合は問題なさそうだ。

そしてIoT機器試作セットは仕上がった。このあと、ケースに組み込んで改善内容について学ぶことが出来た。

NC加工をしてみる(5) oriminで角穴を

タイトルと離れているのは承知の上だが、作った基板の部品実装強度に問題が出てきたようだ。課題はテンションのかかるDCJACKとUSBコネクターでどちらも給電用に用いたものなのだがスルーホールでなくて、フィットした角穴でもない大きな径を合わせただけのランドへのはんだ付けがピンポイントになるのは自明の理でさすがに強度不足だわ。

対応策として現在のツールチェーンでの折り合いを図ることにした。

CAD自体は、試作目的ではPCBEを用いているのだが外形に限っては角穴が出来そうなので、大きな角ランドに角穴をあけるという方向性でパラメータを振ってみてツールとして穴加工に合意する点を探した。

この基板では、切り欠きやインシュロックを通すための角穴は付けていた。そこで分かったことは、Oriminでは外形線として角穴は許容するものの斜め線や多角形は許容しないらしい。縁に出来るだけ近くに寄せた角穴を最後に切り落とすという作戦にした。

角穴ということの定義は描画時点で穴になっていないといけないらしく少なくも0.2mm以上の間隙が出来るようにしないと切削線が重なっている状況では許してくれない。また、そうした際に外形加工の刃物径とも関連してきていて今回の調査では刃物として外形0.5mmのオリジナルマインド社謹製の土佐昌典FTを利用して所謂一本使いで粗く仕上げる作戦なのだが、加工パラメータにはあえて嘘を入れて0.1mmの刃物ということにした。こうすることでこのツールパスを許容してくれたのだ。Oriminでは加工判定後ツールパスを描画してくれるので、こうした設定がうまく使えるのかどうか予め確認できる。

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加工をしてみる(3)

あまりこだわったことがない、基板加工にも今回は、取り付け位置の制限などから外形加工をする必要があったのだが、使ったP板CADはKiCADにしたところ、基板加工機CIP100に付属してきたOriminでは対応できないことが分かり、急遽今まで使っていたPCBEで加工データの位置を取り込んで穴加工とその配線を通すという形になった。昔でいうところのアートワークを引いている感じだ。

作りたい基板サイズは45×105ほどなのでCIP100(Max 160×100)としては二枚取りが出来そうなあんばいなので外枠の一部は今回基板の縁に添わせる形で刃物の摩耗も防ぐことにした。取り付ける部品を押える目的のインシュロックを通す必要もあって角穴データは溝切の一環で外形データと通すことが出来たのだが、基板自体は四角にしかすることが出来ず一部を切り込んだ形にはできないことが判明した。対策は簡単に切り落とせそうな角穴をその位置近くに置くという代替案だ。KiCADで通らなかったデータにはDCジャックのランドパターンもあったようだが、これは少し大きめのパッドで逃げることにした。

本番の基板とパターンと部品配置だけを似せた状態でのデバッグということになる。試作動作完了となれば、基板発注という展開になる。

NC加工をしてみる(2)

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

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

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

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

NC加工をしてみる(1)

実用的なNC加工を直接試みようとすると現実的には、素材の固定やサイズなどの制限がありまた工夫が必要となります。里にあるNC加工装置は、オリジナルマインド社のQT100とCIP100あとはsmartDiysのFaboolLaserMiniです。

今回IoT装置となるものは、配電ボックスなどに用いられるタカチのケースなのですが、搭載部品となるArduinoや専用シールド基板などを内部のベース板に取り付けるための穴加工が必要となります。ほかにもいくつか取り付けるパーツはあるのですが、精度が必要なのは前述のものたちです。樹脂でできているベース板なのですが裏側にリブがあったりして実寸の穴位置加工図面を貼り付けてボール盤でトライしてもらいましたが、うまくいかないというのが経緯です。

この板自体は安いものですが、本来は現地でブレーカーなどを止付けたりするもので精度の必要な穴位置が要求されたりはしないものなのでしょう。一応メーカーサイトには加工受付のリンクもありましたので、クライアントの意向もあって見積もり問い合わせをしてみました。ざっくり追加の穴加工16箇所と材料込みで一枚の場合には7000円なりということで中間マージンもあるのでしょうが、さすがにクライアントさんの要望範囲ではなさそうなので丁重にメーカーさんにはお断りを入れつつ、数量的には100台くらいの加工までをしなければならないので再度見積もりはお願いしました。

精度の必要な穴加工を実現するための冶具作りをNCで行うのが現実的かと思われましたのでガラエポ基板かアルミ板を加工してブロック単位でゲージを作り、さらに必要であれば垂直精度を助けるためのガイドパーツを3Dプリンターで作ろうというのが今回のNC加工トライアルとなります。大きなサイズのNCフライスがあればよいのですが、あいにくと160×100がサイズ制限となるので精度の必要な基板取り付け部分などのブロック単位で冶具を作ることにしました。

この週末は、その報告ができるかと思います。

3Dで実装設計してみよう

ベンチャーのソフト会社を経営されている方から、IoT機器を使ったシステム開発のお手伝いを頼まれて若手エンジニアがモノづくりの経験を踏めるようにと今どきの仕事の仕方を追及してみることにした。

開発依頼元は、高専卒の社長が気を吐いているイケてるソフト開発会社なのだが、担当となっているのはベテランの風格漂う雰囲気の現役高専生だ。彼は学生アルバイトとして勤務しているのだが、ちょうど今は夏休みにあたり、今回のプロジェクトは夏休みの間に製品化まで漕ぎつけるという野心的な話でもある。

さて、私自身も平日の週4日は組み込みソフト屋として計測器メーカーの製品ソフト開発に携わっているのだが、小さな会社がモノづくり運営している中で見ている風景と似たようなことが実は個人でも出来てしまう時代なのだなと感じ入ってしまう。フットワークの軽さという意味では個人に分があるかもしれない。

IoT機器開発というパスワードが飛び交って久しい、市場規模は如何ほどなどと続いている。かつての組み込み開発などという言葉が展示会ではすっかり色褪せてしまったかのように展示会のタイトルそのものも冠するところがなくなってしまったりしているのが実情のようだ。プラットホーム競争も結局のところ歯車が微妙に噛み合わないケースが多いようで、小さな開発をしているところでは偶々本流に乗っているという場合もあるだろうし、気が付いたら統合淘汰されてしまったりもしているケースもある。

産業用機器開発の現場で保守が出来ないから、取り扱えないといっていたPCも今では工場用のボードが大手を振って闊歩しているし確かに、古いプラットホームをメンテナンス続けるという使い方にはそぐわないかもしれず、次々と手に入るプラットホームに乗せ換えていくというのが今の時代のシステム開発なのだろう。そういえばプラットホーム維持云々を喧伝していた会社自体がなくなってしまったりもしているのだから議論するよりもお客様に応えていく仕事をすべきなのだろうと思う。

リスクを取らないことでは、利益も出ないし屋台骨を支えるほどの大きな利益が出るおいしい仕事が転がっているわけでもなく、ただし様々な小さな仕事が世の中にはあるようで、そうしたことに取り合うだけのビジネスモデルと対応力を持った元気のある小さな会社とチャンスがつながらないということなのだろう。

MFTといった文化祭なのか展示会なのかといえば、新たな作り手のための発信基地だったり情報ソースを供給する展示会でもあったりする中では元気な人たちの姿も多く見える。皆さん自身の信ずる道を実践されているのは素晴らしいことだ。若者に電子工作で好奇心を育成しようという御旗のもとに進めてきた組み込みの里もいよいよモノづくりを実践しながらそうした活動を若者に見せる時期に入ってきたようにも思う。

以前からいろいろと相談されてきて応えきれなかったことについては、反省のいたりだがでっち上げとしてリスクを自らがとることで人のつながりと仕事の繋がりが出てきたりして、今はその次の段階に入ってきたようだ。今回のお題は、IoTのシステムを受諾開発するという流れではあるものの尖がったビジネスチャンスに気づきそのために必要なものは自らがそうした機器も開発しないとこうしたチャンスはモノにできないということを体現されている若者たちが中心にいるようだ。

そんな若者たちをモノづくりが出来るように支援するという巧妙な罠のような形で私に取り入ってきたのは何か時代の流れなのだろう。今回はこの蜜の匂いのする仕事に取り組んで若者に刺激を与えるように仕事をしてみることにしたのである。IoT機器として開発しなければならないものはある意味でMFTにあるようなプロトタイプのものと同列かもしれないのだが、こうしたビジネスの匂いをかぎ取る若いリーダーと経験の浅い若者とモノづくりに携わってきたシニアがマイペースで向き合うというのは互いに刺激的なことであるようだ。

モノを作るうえで決めなければならないこと、考えなければならないこと、選択した思考についての経緯を説明しないと彼らには血肉にはならない。幸いにして今では3次元設計がどこでも自由に使いこなせる環境が若者たちにはあってこれらの使い方を示していくことは重要なことだと思う。小さな会社でも当たり前のように今では3次元設計をしていくための高価なツールがマストアイテムとなってはいるものの、そうした会社組織が活用してビジネスチャンスにつなげているのかどうかは別の話でもある。

究極的にはスイッチの入ったモノづくりの意識の高い学生たちと彼らが使いうるフリーな教育目的のライセンスで使える3次元設計のツールを使いつつ開発成果を公開して全国の小さな規模の問題解決を各地にある若人たちの叡智の連鎖でつながっていけるようにしていきたいと思うので、まずは自分で使いこなしについて挑戦してみる次第だ。

三次元設計は、ちょうど20世紀の終わりに始まり、21世紀の今ではごく当たり前の話でもありとはいえモノづくりをしない限り考えなければならないポイントについては経験などからくる実際の使われ方や作り方などの考慮がないといけないのは三次元設計でなくとも必要なことなのだが、要は失敗して学ぶか、仮想設計としての三次元設計で思いを馳せることが出来るのかということなのだろう。

まずはモノづくりのベースとなる使用するパーツやケースについての2D/3Dモデルを入手することから始める。小さなパーツメーカーなどは必死にこうしたデータを提供サポートしているように見えるのだが、大手企業ではDXFのファイルですらも中途半端になっているような状況も見え隠れする。昔ながらの寸法図があれば良いのではとでも思っているような思いが透けて見える。

まあ、そうした図面から3Dモデルを作り出しても良いのだが、作り出したモデルがEAGLEのパーツ情報と同様に個人持ちになってしまうのはという危惧は、実はすでにソリューションがあった。GRAB CADというコミュニティでアーカイブ出来て皆さんが作ったものが様々なCADのフォーマットとして流通する仕組みが出来ているのだ。モノづくりを標ぼうするのが国の方向性ならば、いまどきのこうした仕組みに対してスポンサーシップでも行ったり進んで国産の部品公開を推進させるようなことこそが求められるとは思うのだが、地道にこつこつと出来ることがあるというのはありがたいことでもある。

むろん間違って登録されたものやタイトルが違うものもあるのは仕方がないことで、それと向き合って修正したりして貢献するということを考えていくのがいまどきの仕事の仕方なのだと思う。

BLEを使おうとしたら嵌ったerror: too many asp_ble_gattc_open(esp_gatt_if_t, uint8_t*, bool)’

ESP32の開発環境をArduinoに構築してとりあえず、LEDテープが動作したりするのは確認できたので、bleを使うために最新のライブラリを取り込んでみたのだが、表題のエラーがでる。ソースコードを確認していくと新しいライブラリで新たなincludeディレクトリとしてapiというものが出来ていた。まだBLEが最新版に統合されていない状況で個別にかぶせる形で展開したためにエラーとなる関数のヘッダーが新旧と同時に存在して探索パスの順序から古いものが参照されていたというオチだった。

apiに存在しているもので、上のディレクトリにあったものは削除することで解決した。

私の場合は、D:\User2\Documents\Arduino\hardware\espressif\esp32\tools\sdk\include\bluedroid

ここの下に新しいBLEライブラリはapiというヘッダが作られていた。

Arduino 環境 1.8.5
ESP32 最新版
BLE  0.4.16

Arduinoプラットホーム活用の形?

先日作成した、ショットタイマーの操作アプリの依頼を受けて地元学生に開発アルバイトとして展開している。高専学生のバイトとしては、手頃で勉強にもなるということで、見込みは開発時間は10時間凡そ2日で出来ると踏んで依頼元には見積をしてゴーサインが来たのだった。監修のオーバーヘッドと里の利用費用も加算している。とはいえ破格な汎用に使える今どきの携帯アプリはweb apiで作るとマルチプラットフォームに対応が済むらしい。

1日目は、仕様と開発環境のすりあわせを調査がてらしてもらった。ランチ交え始めたのだったが検討を進めてもらうと実は生憎と作ってあったショットタイマーに付けていたBT2.1世代のモジュールに対応するのは難しいらしくBLEに移行する必要があるらしい。旬のIoT環境で様々な物に対応していくのはそうした事なのだろう。Androidに限れば出来るらしいのだが。

依頼元に確認メッセージを入れて開発に使用したArduinoUNO+BT2.0からの移行提案をプランをいくつか示して問い合わせを入れた。ほどなく回答が届き対応機種を減らしたくないという大本の要望に基づいてBLEへの移行となった。

既に開発段階で採用しかけたものが最近流行りのESP32だったのでこれもしくは他のモジュールにするかは納期と完成度次第ということでアプリ開発アルバイトを進めるために、先ずはベースの環境をIoT Expressに戻して当時課題だったメインデバイスのテープLEDの駆動とピン割り付けなどの変更をした。

テープLED自体は、割り込み制御でイケる感じだった。途中で投げていた環境だったが回路図と皆さんのネット情報には解離があり、少し嵌まったが問題なく解決した。実装としてはもう少し互換性を保つ方法もあるのではないかと思うがいたしかたない。