ラベル 受託開発 の投稿を表示しています。 すべての投稿を表示
ラベル 受託開発 の投稿を表示しています。 すべての投稿を表示

2021年5月1日土曜日

ココナラ案件:10音同時発声導電ゴム楽器

●経緯●

「導電ゴムに電極をあてた位置に比例した周波数を発生する回路。電極は同時に6個まで。作れますか?」というご依頼でした。問題なさそうなので、まずは「ご相談案件 5,000円」として受注しました。

やりとりをしながら、周波数の範囲、距離と周波数の関係式、設定条件、キャリブレーションの方法、などを決めていきました。

最終的に提出した仕様書はこちらです(一部伏せ字)……5,000円の成果物です。

長さ検知による音響発生装置(仮称)概略仕様書 ver 3.0

本仕様書は以下の仕様にて動作する装置の電子回路部分の構成および動作を定義します。この仕様書はココナラでのやりとりをまとめたもので、差異が生じた場合はココナラでの議論を優先します。また齟齬や未定義の仕様が発覚した際には双方協議の上円満に解決します。

作成者:倉橋浩一

作成日:2021年xx月xx日

●装置の動作

1つの導電ゴムに電極をあてるとその位置に応じた周波数の信号を発生する。電極から信号発生器までは6組を用意する。信号発生器からの6chの信号はオペアンプ加算回路により合成された後、D級アンプにより増幅され、スピーカーより出力される。D級アンプ手前には音量調節のためのボリュームを設ける。位置から算出される周波数と実際に発せられる信号周波数の誤差「ドであるべき距離のところでド♯の音が出るなどはしない程度」とする。

なお、この装置は導電ゴムの抵抗値が距離と比例していることを前提としている。ただ導電ゴムの性質上、比例していない可能性もある。そのような場合に備えて、距離ごとの抵抗値を直線補間するマップ機能の組み込みも検討しておくものとする。

発信する周波数範囲は「65.406 Hz(音階名C2)〜1046.502Hz(音階名C6)」とする。

●動作原理

導電ゴムを分圧抵抗体とみなし、左端にGND、右端にVccをあたえ、電極はGND間の電圧を取得する。

●使用部品

・Teensy 4.0

・方形波発生回路 

 「3ch出力プログラマブル周波数ジェネレーターモジュール」 x 2 

・分周回路 

・オペアンプ加算回路

2W D級アンプ 

・スピーカー

・導電ゴム接続端子(2端子)

・電極用ターミナル(6端子)

・プリント基板

・ACアダプタ

・その他、抵抗、コンデンサなど

●顧客資材

・導電ゴムとそれを支える電極、電極や全体を支える筐体などは顧客自身が用意する。

●使用方法

起動時に後述のキャリブレーションを行う。その後は、任意の電極を導電ゴムの任意の位置にあてることで計算した周波数の信号を発する。

●キャリブレーション機能

導電ゴムは空気中のオゾンや吸湿により劣化して抵抗値が変化する。変化した抵抗値は出力する信号周波数に影響するので、キャリブレート機能を設ける。キャリブレーションは6本の電極を導電ゴム中央にあてた状態で電源を投入することで自動的に行われる。

●スケジュール

上記6音仕様をxx月20日までに納品する。ただし余力があれば10音とするための追加ユニット(2台目)をxx月末までに製作する。なお、2台めの製造は義務としない(以下同じ)。

お取引の手順は以下の通り:

1. 受託者はxx月20日までに1台を発送する。

2. 発注者は到着後24時間以内に動作確認を行いフィードバックする

3. 受託者は対応可能であれば2台目を作りつつ最初の1台のフィードバックを待つ

4. 発注者と受託者はメッセージにてフィードバックについて相談する

5. 改良が必要な場合

  →2台目に改良を加え送る。

   1台目も送り返してもらって改良し送る

 改良が不要な場合

  →2台目を送って納品完了

発注確定後に仕様を変更する必要が生じた場合には、発注者・受注者相談の上、スケジュールおよび見積を調整すること。

●お見積り

<省略……豪華ディナーという感じです>円です。

10音として動作させるための2台目については成功報酬としてココナラの「おひねり」で<寿司1回分ぐらい>円を追加でお支払ください。

以上ご検討よろしくおねがいします。

6音でもギリギリなのに10音というご要望が出たときは脳みそが少し溶けました。そこはオプションにしていただいて、合意しました。相談案件はクローズとし、新たに上の仕様書を元に制作案件を発注していただきました。


●ほぼ順調

ええ、つねに「順調」では終わらないですね。

  1. いい感じのゴムが見つからない
  2. Teensyが入手できない
導電ゴムとして入手できるのは2種類ほどあります。良いやつと悪いやつだ……じゃなくて、静電気を防ぐ抵抗値の高いやつと、電卓やリモコンなどに使われているスイッチ用導電ゴムシートです。今回は後者なのですが……いい感じのものがなかなか手に入りません。とりあえず300x100mmのものが見つかったのでそれを使い、あとは依頼者側でも探し続けてもらうことに。最終的には3000x1000mmという巨大で比較的抵抗の小さいものが見つかりました。
デカイすぎる……

あとはTeensy。計画中は在庫があったんですが、さあ買いましょうとなったらどこもすっからかん。ということで手元にもあるESP32 DevKitCを使うことにしました。後にこの選択が大問題を引き起こします。

●試作1号

今回、最低限の動作確認をしてからスケール!という方針だったので、3音分の回路を作って顧客に送り、動作テストをしてもらいました。現状での問題は下記2点ありますが、機械部分とのマッチングを確認する必要があるので、とにかく音がでるやつを送る!という感じです。ご相談いただいてから2週間です(白髪)。


その間に6音分の基板を作ります。いろいろあって、1枚の6音分基板にはESP32 x 2、Si5351A x 2、分周回路 x 6が乗ります。

アンプ基板は6音基板からの6個の方形波を入力とし、1200hz, 6dB/octのローパスフィルタで少しでも方形波っぽさを減らしてから加算回路で合成してからD級アンプで増幅しています。あとDCアダプタのジャックも設けて、アンプ基板側から2枚の6音基板に給電する形式としました。加算回路とLPFは例によって表面実装抵抗を基板裏のランドに直接はんだ付けしています。12音出ることを確認してから梱包発送しました。


……半固定抵抗がまがってますが、ピンヘッダに刺しているだけですので……まっすぐ直して写真を取る時間がなかったんじゃよ……。ちなみに下の黒いのが導電ゴムシートです。

●大問題

入力の変動です。導電ゴムなんて面積のあるものを使うからある程度は覚悟していたのですが、ぜんぜんあきまへん。10HzのLCR LPFを入れても別スレッドでADCを読み込み1:1000の移動平均を使っても音がニョロニョロと振れます。

原因はESP32内蔵ADCのノイズでした……以前使ったときはここまでひどくなかったんですが、今回はもうグラフが折れ線になるレベルでした。基準電圧外から入れたい。

ということで、外部ADCとしてMCP3204を使ったところLPFと1:25の移動平均でも音がピタリと止まりました。ただ、この時点で6音基板はできていたので、MCP3204を乗せる場所がない。仕方なくESP32 DevKitCの下に突っ込みました(写真)。



まぁADCではESP32に大迷惑を被ったのですが、ESP32は簡単にFreeRTOSを使えるのでアナログ読み込みの処理を全部別スレッドに押し付けたりで楽できました。

●小問題

上で「ピタリと止まりました」とありますが、移動平均なので電極をあてた瞬間にはその音が出てくれません。押した時離した時にミョッミュッと音が上下します。

これの対策は簡単で……離した状態→押した時、押した状態→離した時に移動平均バッファをリセットするだけです。

●試作2号

ということで固まった回路仕様に基づいて2号機を作ります。前にも書きましたが、私はユニバーサル基板で作るときには基板上で部品がぶつからないか確認(←超大事)したあとで表計算シート上に表から見た配置図を作り、電源の色分けと布線を考えた後、左右反転した表を作ってこれをみながらはんだ付けします。IC資料はTop Viewなので裏側のはんだ付けをするときには裏返して考えないといけませんし、あちこち資料をみたり余計な脳みそを使う必要がなくなるので負担が激減します。


特に今回のように同じのを2枚作る場合には1枚送ってしまってもそのまま作業できますし、もとの図を履歴として残せるので改造プランも簡単です。

この辺のことを先輩ハードウェアエンジニアと話していたら「そのへんの発想はソフト屋さんやねえ」って笑われました。「裏表なんて考えなくてもできるやろ」って言われたんですが……ハード屋さんってみんなそういう生き物なんすか?!

●試作1号の改良

戻ってきた1号に2号機と同様の回路を組み込みます。配線の色分け大事よね……。

●納品

一発オーケーでした。良かったよかった……。最終的な成果物はこちらです。

落ち着いてきれいな写真を取っている時間がなかったんじゃよ……。


●以上

これでお仕事はおしまい。ココナラをクローズしました。追加の10音まで完了したのでおひねりで成功報酬も追加していただきました。

こんな装置も作れます(短納期はなるべくなら避けてくだせえ)。依頼者の方からお許しをいただいてますので、同じ装置を作ってくれという依頼にもお応えできます。

アイディアのある方、お気軽にご相談ください。

マイコン応用製品の開発相談受け付けます 事前相談で詳細見積作成+実際の開発製造のツーステップで対応!

2021年1月13日水曜日

受託開発事例:24桁 7セグメントLED表示基板

クラウドワークス案件です。提案が4人の方とコンペになりましたが、短納期と提案内容が要望にフィットしていたことと、スイッチサイエンス様などで製品を販売している実績をご評価くださった、とのことです。実際契約は12月25日、年末年始を挟んで、先方への到着は1月8日でしたから丁度2週間です。

クリスマス?正月?なにそれ。

1.ご相談内容

Arduino nano + DIPのMAX7219 x 3個で24桁の7セグメントを駆動する基板を作って欲しい。

2.提案・契約内容

ブレッドボードで回路の検証をした上で基板を設計・発注し、1枚をサンプルとして実装して動作確認した上で、動作確認基板1枚と生基板5枚を納品する。24桁のLEDは等間隔で並び、ネジ穴は50mmピッチ。1Uラックマウントのため高さ40 x 幅410mm。Arduino unoとMAX7219は裏面にいずれもソケットを介して実装。

要求仕様にはなかったのですが、DCジャックを追加できるパターンを基板上に追加しておきました(過去の経験からUSB経由だと電源足りなくなることがあるので)。

納期は発注から4週間、納品で動作確認できたら検収、その後メッセージで2ヶ月程度のサポート期間を設ける、という条件でご契約いただきました。

費用は、えーと、ホテル一泊分ぐらいでしょうか(GoToなしで)。

3.設計

まずブレッドボードで動作確認です。3個直列にしたMAX7219でも信号波形などに乱れがないことなどを確認します。

でかいので右側省略

設計は例によってEagleです。1辺の長さ410mmというのは私としては過去最長です。回路設計ができたところで顧客に送って確認してもらいます。その間にアートワークです。

DIPですし実装密度も低いので、電源をドーンと引いてから高速の信号線を貼り、それ以外は自動配線で調整しました。銅箔勿体ないので裏表GNDベタ貼りでベタが入らないところはVIAでコツコツと潰していきます。配線数少ないのですが、Eagleの自動配線って面積に比例するんですね……最適化=HIGHだと、開始してから食事に出てもまだ終わっていなくてびっくりしました。そしていつも思うけどネジ穴邪魔だわ。倉橋屋では顧客からいらないと言われない限りネジ穴を開けるのですが……部品と比べてデカいんですよね。

でかいので略

できあがったところでPCBWayに発注。今回他の案件とまとめたので送料が少しは安くなったのですが、それでも基板10枚と送料で約8000円でした。それでも24時間で出荷されるから大したもんです。DHLで深圳から5日で到着。ちなみに同じ日にDigiKeyにも注文を出したのですがアメリカから3日で届いて現代文明とても怖い。

4.実装確認

届いた基板、でかくて重いです。銅箔35μ両面ってこんなに重いんですね……。はんだ付けして動作確認します。当然一発動作。各所の信号をシンクロで確認して十分な動作マージンがあることを確認します。


それにしてもデカイ。でかいけど、これだけ並ぶとかっこいいですわ。

5.納品と動作確認

納品したものをクロネコヤマトで発送して動作確認していただき、検収となりました。

中身がでかいと箱もでかい。手元にたまたま丁度良いヨドバシの箱があったのですが……これが80サイズを1センチ越えてしまって……泣きながら送料を払ったのは良い思い出です ^ ^

冒頭に書きましたように、12月25日にご契約いただき、1月8日に先方に到着しました。

以上です。

以上、技術的な難易度は何もありませんし、MAX7219とLEDを組み合わせた基板はaitendoなどでも安く売っているのですが、左右に耳がついていて密着できなかったりで制約があります。

こういう技術的には難しくないけども、市販にないサイズ・形態のものが欲しい、という場合は比較的低価格で提供可能ですのでぜひご相談ください。

ココナラは手数料が高い(25%)のでクラウドワークス(20%)またはTwitter @TareObjects へご相談いただけると嬉しいです。

ココナラ    :倉橋のプロフィール / 製作相談

クラウドワークス:倉橋のプロフィール

--

この他に、「電子工作のキットなどをきちんとはんだ付けして組み立てます」っていうサービスも提供しているのですが、何故か現在故障修理品の依頼が多いです……私ら電子工作勢の家にはハンダゴテがゴロゴロしていますけども、普通のおうちにはないですもんね。折れた端子をちょこっとはんだ付けして送り返すだけなら、メーカーのサービス窓口よりも安く直せると思いますので、ご相談ください。

「ラズパイで使いたいけど拡張基板のピンヘッドだけはんだ付けして欲しい」なんてのも大歓迎です。慣れないと、はんだ付けが悪くて動かないのかソフトに問題があって動かないのか切り分けに苦労しちゃいますけども……少なくともうちでははんだ付け不良ゼロで組み立てますので、ソフト技術者の方はソフト開発に集中していただけます。

自動噴霧器:費用感からの案件相談→設計製造受託

【追記2021年3月1日】

おかげさまで、ココナラ プラチナランクを獲得しました。

今後ともどうぞよろしくお願いいたします。

【追記ここまで】

 私こと倉橋屋では、ココナラ / クラウドワークスを使って電子デバイスの製作相談を受け付けています。

なにか装置が必要な場合に、それが1万円でできるのか、それとも100万円かかってしまうのか、まったく見当がつかないと業者さんにお話をするのにも不安です。

そこで、ココナラでは実現可能性も含めておおよその実現方法と費用感、あと簡単な仕様書をお作りするサービスを行っています。仕様書を作成してから、実際の製造につながることも多いです。先日完了した案件を例にご紹介させてください。

1.可能かどうかの相談

まずこちらのページの「見積・カスタマイズの相談をする」から、どういうことをやりたいか、おおよそのお予算感をご相談ください。

マイコン応用製品の開発相談受け付けます

この段階では、実現可能性についてお答えします。この段階で技術的・あるいは予算的に難しい案件については、ここでの無料相談のみで終わりとなります。無料なのでどうぞお気軽に。

可能性のある案件についてはサービスをご購入ください。5000円です。

■実例:相談■

Arduinoを使って一定の時間ごとに噴霧する装置を作りたい。ソフトはある程度わかる。回路設計と基板製作とソフトをお願いするにはいくらぐらいかかるでしょう?

■回答■

市販の電池式噴霧器を改造するのが良いと思います。数万円、1ヶ月程度で対応可能です。

2.相談サービスご購入

電源の供給方法、噴霧の方法(頻度、噴射時間、最大回数など)、表示方法(LEDの点滅で待機中・噴霧中・噴霧回数超過などを表示)、最大回数などの設定方法をメッセージでやりとりしながら決めていきます。

最終的に提示した設計書がこちらです。


自動噴霧デバイス外見仕様書

作成者:Koichi Kurahashi(倉橋浩一)

作成日:2020年11月19日 v1.0

定義:

本装置は市販の電池式噴霧器を駆動して自動的に消毒液を噴霧する。装置全体を自動噴霧器と呼び、制御部分を制御基板と呼ぶ。装置全体=電池式噴霧器+制御基板+モバイルバッテリ+配線にて構成される。噴霧には電池式噴霧器に改造を加えたものを使用し、本装置から約5V 1A程度の電流を一定時間供給することで噴霧器に内蔵されたモーターを駆動する。人感センサーを搭載し、人を検知しているときには噴霧しない。

納品成果物:

  • 自動噴霧デバイス外見仕様書(本書)
  • プログラムソースコード
  • 制御基板ハードウェア回路図、同プリント基板設計図、同部品表(Autodesk Eagleを使用)
  • プリント基板10枚、うち1枚は実装し動作確認済
  • サンプルバッテリー1個
  • 上記の部品調達、組み立て、プログラムを修正するためのアドバイス
  • 納品物には電池式噴霧器は含まれません。

納期・保証期間

  • 受注確定後6週間以内に試作品と基板を納入
  • ただし想定外の仕様や調達上の問題により遅れが生じそうな場合には双方協議の上対応する
  • 故障等
    • 納入後3ヶ月間の開発側の問題による破損はセンドバックによる無償修理。
    • 納入後3ヶ月間の利用側の問題による破損は基板1枚を送り返してもらい3000円で1台製造して返送。
    • 原則として修理ではなく新品を1個製造する形で対応します
    • 納入後3ヶ月経過後は「製造依頼」として別途お見積りとさせていただきます。
    • 物品送付における送料は双方元払い
  • サポート
    • 納入後3ヶ月間はココナラのメッセージにて対応します。

担当外

  • 電池式噴霧器の調達、選定および改造はご自身でお願いします。
    • あまり大型のものはモバイルバッテリの性能を越えてしまうので単3電池4本タイプをお勧めします。

外部との接続

  • モバイルバッテリ:USB - DCプラグ内径2.1mmケーブル
  • 噴霧器:ターミナルアダプタ2P(+とー)の導線を接続
  • 人感センサー:ピンヘッダ3P(5V, GND, 信号)にセンサーを直接または約0.7mm単芯導線にてセンサーを接続。
  • 状態表示LED:ピンヘッダ2P(+とー)にLEDを直接または約0.7mm単芯導線にてLEDを接続

基板上の要素

  • ・マイコンモジュール(Arduino Nano互換品を使用)
    • USBレセプタクルとUSBシリアル回路と保護回路
    • PCとUSBを接続してプログラム書き換えが可能
    • 自動噴霧器としての動作中はUSBでモバイルバッテリを接続して電源供給する
  • 改定前・噴霧時間設定スイッチ
    • ロータリーDIPスイッチにより設定する。
  • 改定後・噴霧時間・強度スイッチ:
    • ロータリーDIPスイッチにより設定する。
    • 1-5 : 2秒で強度1-5、6-0 : 4秒で強度1-5】
  • 噴霧間隔設定スイッチ:ロータリーDIPスイッチにより設定する。
  • 追記・噴霧回数設定スイッチ:ロータリーDIPスイッチにより設定する。
  • 噴霧器駆動回路と保護回路と接続端子
  • 人感センサー駆動回路と接続端子
  • 改定前
    • 補充ボタン
      • リセットボタン兼用・押すと再起動して噴霧回数をリセットする
  • 改定後
    • リセットボタン……注記:補充は動作確認ボタンの長押しにて実施】
  • 動作確認ボタン(押すと即座に噴霧する)
  • LED駆動回路(電池切れ / 噴霧回数超過警告ランプ)

制御要素

  • 電源接続で自動的に動作を開始する。噴霧回数を読み取り保持する。噴霧1回ごとにカウントする。
  • 動作中のLED表示は以下の通り
    • 噴霧回数に余裕がある場合:3秒ごとに0.1秒間LEDを点灯させる。
    • 噴霧回数が設定を越えた場合:1秒ごとに0.1秒間LEDを点灯させる。
    • なお噴霧回数が設定を越えても噴霧動作は通常通り続ける。
  • 噴霧間隔スイッチから時間間隔を読み取り一定時間ごとに噴霧を開始する。
    • 動作中に変更した場合には常時スイッチを読み取り、設定秒数がその時点での噴霧間隔を下回ったら随時噴霧する。
    • 噴霧を開始時刻になったら人感センサーを読み取り、もし反応があれば開始を遅らせる。
  • 噴霧開始時には噴霧時間設定スイッチから秒数設定を読み込み、その秒数だけ噴霧器への電源供給を行う。
  • 動作確認ボタンを押すと人感センサーを無視して噴霧する。
    • ちょい押し - 設定秒数だけ噴霧モーターを駆動する
    • 長押し - 押している間だけ噴霧モーターを駆動する【加筆:同時に噴霧回数カウンターをリセットする】

以上、簡単なものですが、一応、他の業者さんに依頼しても作れるような仕様書を作成しますが、本件はそのまま私のところにご依頼いただけることになりました。なお、加筆箇所は仕様合意後に発生した不明点のすり合わせの結果、変更された仕様です。

3.実際の製作依頼

再び マイコン応用製品の開発相談受け付けます の「見積・カスタマイズの相談をする」から案件名とお送りした仕様書ファイルを添付していただきます。

ここで改めて納期と金額をこちらからご提案させていただき、合意いただいたらサービスをご購入いただきます。今回は、お見積金額から上の相談料5,000円を差し引いた金額でご契約しました。契約額は、えーと、ホテル一泊分くらいでしょうか ^ ^

ココナラは手数料が高い(約27%)ので、お客様側で購入可能なものは購入して送っていただくこともできますし、こちらで揃えることもできます(その場合は手数料が加算されます)。また、完成後の製品については、着払いで発送させていただいております。

さて、あとは進捗報告や不明な点を確認しながら設計を進めます。今回はお客様自身が実装されるとのことなので比較的大きな部品を中心にしました。基板はEagleを使って設計し、今回は中国深圳のPCBWay社に依頼しました。シルクもきれいで出図から24時間以内出荷なので最近愛用しています。私みたいな週末メイカーだと土日に設計して次の土日に物が届いているのはとてもありがたいです。

動作確認用に届いた基板に実装します。ここで使っているArduino nanoはmicro USBのついた中国製互換品です。


噴霧時間、強度と間隔、最大噴霧回数などはロータリースイッチから設定します。リセットスイッチはArduinoのリセット、テストスイッチは押している間だけ噴霧して、例えば噴霧強度を設定することができます。モータードライバに短絡保護などが内蔵されており、バリスタで逆起電力を吸収していますが、モーターの加減速はPWMでスロープ制御にしています。手前のLEDは動作表示、PIRは人が近くにいるときには噴霧しないようにするためです。プログラム的には状態遷移を1個のモードフラグで制御し、10mSecのループでタイミングを制御しています。インタラプト / インターバルは使っていません。

現在何回噴霧したかはEEPROMに記録していますので、電源を切った後でもカウントが失われることはありません。

鉛フリーはんだを使用して手ハンダ実装です。動作テストはこんな感じで。一応USBからも給電できますが、200/500mAしか取れないのでモーターには不向きです。ACアダプタから7-12Vの電源を供給することもできます。

ああっ 写真にも抜け毛がっ

4.納品

動画で動作を確認していただいた後、この完成基板と未実装基板10枚をセットにして発送しました。またファイルとしてEagleのschとbrd、PCBWay向けのガーバー一式、プログラムのソースを添付ファイルとしてココナラ経由で納品。到着後1ヶ月のサポート期間中に組み立てや変更に関する質疑応答を承ります。

こんな感じです。マイコンでちょっと制御したいものがある方、どうぞお気軽にご相談ください。

上の装置は1台のモーターを一定間隔で自動的に動かすのに手頃で便利かと思います。噴霧器以外の用途に使いたいという方はココナラ(倉橋のプロフィール)もしくはクラウドワークス(倉橋のプロフィール)もしくはTwitter @TareObjects まで、お気軽にご相談ください。