目次:
- 用品:
- ステップ1:MDBとは
- それはどのように機能しますか?
- どのような周辺機器のオプションがありますか?
- いくつか知っておくべきこと:
- ステップ2:必要なツール
- ステップ3:連絡をとる
- 準備:
- パーツリスト:
- アセンブリ:
- 部品の選択
- 部品値の選択:
- ステップ4:初期コードの設定とアップロード
- ステップ5:プロトタイプ作成を始める
- ステップ6:もう一度やり直してください。そしてまた!そしてまた! (もっとプロトタイピング、そしてたくさんの学習)
- ステップ7:最終デザインを手に入れて生産準備を整える
自動販売機に機能を追加したいですか?あなたの地元のメーカスペースに、たぶんそれは凹所にあるかもしれません、あるいはあなたは世界中の自動販売機のための機能を作りたいだけかもしれません。自動販売機に新しい機能を追加したい場合は、先に進んでください。
威嚇するようなAI Chatbotをマシンの担当にするほどの規模のプロジェクトから、電話機のFree-Vendボタンのように小さくてシンプルなものまで、これらの機能のいずれも自動販売機と通信する必要があります。行ったよりも簡単に言った!私があなたに見せることは、自動販売機とwifi / bluetoothを接続することができる「空白の」装置を作る方法です。それを空白の小切手のように考えてください、力はそこにあります、あなたはそれがあなたがそれになりたいものにするために得ます!
用品:
ステップ1:MDBとは
自動販売機と話をする機器を作るなら、あなたは彼らの言語を話す必要があります。その言語は 'MDB'です。フルネームは "MDB / ICP"で、 "Multi Drop Bus /内部通信プロトコル"の略です。
これは、少なくとも米国では、自動販売機の機器間の通信に最も広く使用されている規格です。 NAMA(National Automatic Merchandising Association)およびEVA(European Vending Association)によって維持および所有されています。90年代初期に開発され、自動販売機の通信方法が標準化され、自動販売機用部品(請求書受領機、硬貨釣銭機など)が可能になりました。 。)その規格をサポートするマシンである限り、任意の製造元/モデルの任意のベンディングで作業すること。
まだ古いテクノロジを使用していてまだアップグレードされていないマシンが多数あります。そのため、デバイスに対応するマシンにMDB機能があることを確認してください。特定のマシンのマニュアルをチェックする以外に、そのマシンがMDB機能を提供していることを示す簡単な指標として、2×3 Molex Minifit Jrコネクタを備えたワイヤハーネスがあることが挙げられます。私はメスのMDBプラグの写真を含めました(それは金属の接触によって性別が決められています)。
それはどのように機能しますか?
それでは、「MDB Explained」ビデオを見てください。この男のビデオを使って彼の製品への代替を宣伝するのは少々不愉快です(彼はとてもフレンドリーで興奮しているようです)ので、お金がある場合はMDBからUSB製品を購入するか、カスタム製品を設計するために彼を雇うことを検討してください。自分でやる。
私が付け加えるつもりであるが、「マルチドロップバス」という用語は技術的な(非ベンディング)用語でもあるので、MDBをインターネットで検索する場合は、「MDB / ICP」というフルネームを使用するのが最善である。または「自動販売」という言葉をそこに追加することもできます。
彼の他の2つのビデオはあなたが好きならチェックアウトすることができますが、私はそれが言葉で説明する方がはるかに短いと感じます:
-
MDBは、VMCがマスターで、すべてのペリフェラルがスレーブであるマスターとスレーブの構成を持ちます。
-
の VMC / Master、すべての通信を開始および終了し、定期的に周辺機器/スレーブをポーリング(チェックオン)します。
-
Periperal / Slaveは、VMCから来る全ての通信を待ち受け、VMC / Masterに何かを言う前に、それにアドレス指定されるコマンドを待つ。
-
このようにして、どの時点でもVMCと会話しているのは1つのペリフェラルのみです。これはマルチドロップ構成(技術用語)では必要です。
どのような周辺機器のオプションがありますか?
MDB規格では現在これらのデバイスが許可されています:
- コインチェンジャー (変化を起こし、変化をもたらす)
- 請求書受領者 (請求書を取り、より新しいモデルは請求書を与えることができます)
- キャッシュレス決済装置 (デジタル支払い方法に対応)
- 本機のディスプレイやキーパッドへのアクセス、販売の最新情報の入手、ファイルの転送など、他の目的で使用できます。ランダムな機能を使用する場合は、マシンに対するパワーのために、この種の周辺機器として機能させることをお勧めします。
- 通信ゲートウェイ (外部のデータ通信機器では、DEXが主要な監査規格です)
- ユニバーサル衛星放送機器 (要するに、支払いを受け入れるためにホストマシンを必要とする自動販売メカニズム/アドオン)
- コインホッパー (釣銭機のような大量の硬貨の分配)
いくつか知っておくべきこと:
- UARTは、シリアルデータを転送するための一般/非自販標準です。シリアルデータのフォーマットとデータレートを設定できます。ほとんどのハードウェアには、ニーズに合わせて設定できるUART回路があります。
- MDBのUART設定は9600NRZ、9-N-1です。
- 9600 これは、毎秒9600ビットという、9600のボーレートを表します。つまり、各ビットの長さは104μSです。
- の NRZ Non-Return-To-Zeroを意味します。これは、ほとんどの場合、暗黙的/標準的です。
- の 9 9データビットの略で、8が標準、9が異常です。これについては後で詳しく説明します。
- の N パリティチェックなしを表します。
- の 1 1ストップビットを表します。
- MDBのUART設定は9600NRZ、9-N-1です。
- に1本の双方向データラインがあります。 USB2.0。 MDB / UARTは、別々の単方向送信ラインと受信ラインを別々に使用します。
- USB3.0には別の送信ラインと受信ラインがありますが、それは(USB2.0と同様に)差動信号であり、MDB / UARTはシングルエンド信号を使用します。集積回路(オペアンプ可、100%必要な場合にのみシフトレジスタ)を使用せずに、USB2.0やUSB-CをMDBアダプタに変換するように要求します。行う。
- あなたが持っているかもしれないUSBからUARTへのアダプタについて疑問に思う人たちのために、私が9ビットUARTをサポートすることを知っている現存する唯一の2つのチップは両方MaxLinearによって作られ、それらのどれもUSBからUARTアダプタで使われていない。 FTDIのチップのどれも9ビットUARTをサポートしていません、そして、それをうまく動かす方法を見つけたとしても、私たちの最初の優先順位が速くて簡単であるとき、それは少し余分な仕事(ソフトウェアドライバ、COMポートなど)でしょう。開発ボードを代わりに使用する理由
MDB標準の最新版はこちらにあります。あなたが作りたい周辺機器を選ぶならば、それが持っているすべての機能/オプションをあなた自身に気づかせるためにそれのために全体のセクションの上を簡単に読み飛ばしてください。
ステップ2:必要なツール
カスタムバージョンを作成する前に、MDBデバイスのブレッドボードバージョンを作成します。始める前に、いくつかのツールが必要です。
部品を注文する2つの主要サイトは、DigiKeyとAmazonになります。私はAmazonがAmazonプライムメンバーシップを持っていると仮定してAmazonを選択します。そして/またはDigiKeyで物事が見つからない場合はこれが好ましい方法でしょう。それはカート(または2つ)にすべてを入れて、次のステップからも部品が取り出されるまで注文を延期するのが最善です。
ブレッドボード版に必要なツール:
- はんだごて。このInstructableに必要なのはアイアンだけですが、SMDリワークステーションが一杯ではないにしても、熱風機能を使用することをお勧めします。私が10代だったとき、私は私の空想的なエアガンを販売し、電子機器に入るための他のツールの束と共に、下のリワークステーションを購入しました。私はいくつかのラップトップでBGA接続をリフローするためにリワークステーションを使いました、そしてそれはそのようにしてそれ自身のために支払いました。
- ベストバリュー(アイアン、ホットエアー/ SMD、BGAリワーク)
- ベストバリュー(アイアン、ホットエアー/ SMD)
- 最高品質(アイアンのみ)
- 半田。煙が有毒であり、慢性的な健康問題を引き起こすことを忘れないでください。 Digikeyアマゾン
- クリンパ
- これが私が見つけた最も安い適切なペアです。
- ワイヤーストリッパー誰でも構いませんが、Ideal IndustriesのStripMasterを強くお勧めします。それらの品質のために、1ペアはすべてのワイヤゲージを剥ぎ取ることができません、それでこのInstructableの外側の使用のために、あなたはたぶん2番目のペア(または異なるサイズのインサート)の必要性に遭遇するでしょう。このプロジェクトでは20ゲージワイヤーを使用していることに注意してください。
- 8-22ゲージストリッパーまたはインサート
- 20-30ゲージストリッパーまたはインサート
- StripMasterフレーム、あなたが2番目のペアではなくインサートを注文した場合、そして私がしたように、それを後悔してください。
- ワイヤーカッター(はさみや爪切りができます。細いワイヤーを切るためのものです)
- ロジックアナライザ技術的にはオプションですが、通信ソフトウェアのデバッグやハードウェアの動作確認に役立ちます。
- DSO203オシロスコープをサードパーティのロジックアナライザソフトウェアと併用しますが、安価なアナライザもあります。あなたが派手なものを必要としているのを知っていない限り、ただ安いものを入手してください。 Sigrokは、さまざまなデバイスと連携するオープンソースソフトウェアを提供しています。
- 電圧計はハンディ。
それ以降に必要な追加のツール:
- 表面実装はんだ付けツール(温度制御:リフローオーブンおよび/またはホットエアガン)
- こちらがリフローオーブンの作り方です
- 熱風はんだ付けステーションは100%必要ではありません、そして私が知る限りではあなたはそれを購入しなければならないでしょう。
- 光学検査装置(USB顕微鏡など)
- 私が知っている限りでは、これが私が使う顕微鏡です。
- 部品を配置するための精密ピンセット(これらが小さいほど、あなたがそれらを使用しているときそれらは巨大に見えるでしょう)
- これは安いセットです
ここにあるすべてのツールはオプションです。
- JTagエミュレータJTAGは新しく組み立てられたPCBの品質チェックを容易にするために作られました。
- 購入したエミュレータが、デザインに使用しているデバイスと互換性があることを確認してください。これはESP32用です。 ESP32 Programmerを注文する場合は、次のステップを見て、DigiKeyではなくESP32開発ボードもそこから注文することを検討してください。
- はんだステンシルプリンター/アプリケーター。 CYBRES SP2421を購入しましたが、まだ見つけられていないより良いオプションがあるかもしれないと感じます。最低限、(OSHParkから)ステンシルを注文するときにカートにスペーサーを追加してください。
- ピックアンドプレース機(繰り返し自動組立用、小規模大量生産用)
- 私はLitePlacerを(私の他のすべてのツールと一緒に、ローンで)購入しました、しかし私はより安いおそらくより良いオプションを見ます。
- 覚えておいて、プロの組み立てサービスは大量に非常に高価ではありません。
- エンクロージャーの設計をテストするための3Dプリンター(ある場合)。
- CNCミル(もしあれば)
- 一回限りの最高品質のエンクロージャ、または射出成形用の金型のような他のものを作るのに最適です。
- 回路を現実の世界に接続する機械部品の製造に最適です。
- 現地でPCBを製造するのに非常に価値がある(時間的に)。小さな回路では、化学的にトレースをエッチングしますが、それでもビア、基板の形状/カットアウト、パネル化/非パネル化などのためのミルが必要です。
- PCB設計ソフトウェア(あなたのPCBを設計するか私の設計を変えるため)
- EagleCAD(3Dモデリング用のFusion360と組み合わせたもの)は、AutoDeskで購入される前からずっと使用してきたものです。あなたが大規模なまたは商業的なデザインを持っていて(あなたが無料ライセンスからあなたを失格にする)そしてAutoDeskからのアップグレードされたライセンスのためのお金を持っていないなら、フリーおよびオープンソースが贅沢な代替としてはありません(FreeCADと対になる)。 KiCAD私も、より鋭い習熟曲線だと感じています。
ステップ3:連絡をとる
準備:
恒久的な専用ハードウェアの開発に取り組む前に、あなたのソフトウェアと機能を作ることは賢いことです。これにより、アイデアがうまくいかないことに気付いた場合の労力を最小限に抑え、できるだけ早くそれを開発することができ、最終設計の前にハードウェアを簡単に追加および削除できます。それでは始めに、ブレッドボードモデルを作成します。あなたが望むなら、あなたはこの正確なデザインから外れるかもしれません、しかし、そうするならば、私が各部分の後ろの考えを説明するこのステップの終わりを読むことを忘れないでください。
パーツリスト:
これがショッピングカートです。
- DigiKey Parts(近くにあるのでdigikeyを使っています、それで私は "DigiKey Prime"を持っているかのようです)
- GridConnect Parts(ESP32用のJTAGプログラマを購入した場合)
- ESP32 DevKitC開発ボード(メスヘッダー付き)
- ESPプログラミング&デバッグツール(すでに発送料を支払っている場合は、DigiKeyよりも安い)
- これはオプションであり、あなたがあなたのカスタムPCBを作るとき本当に本当に役に立ちます。
- GridConnect Parts(ESP32用のJTAGプログラマを購入した場合)
- アマゾン部品
- 20 AWG Hookup Wireキット(20ゲージワイヤをまだお持ちでない場合)
- ワイヤーラップ(オプション、電気テープも使用可能)
- コンテナ/エンクロージャ鉱物油と同じように、私はドル店で私のものを買いました。
- 鉱物油(2個購入)規制当局に支払う必要はそれほど多くありませんが、より多くの油=より多くの放熱が必要です。
- ワイヤが出てくるエンクロージャの穴を塞ぐための液体テープ。
アセンブリ:
ワイヤーハーネスの組み立て手順についてはビデオを見てください、あなたがオーディオスーパークリンジにふさわしいと思うならば、あなたはそれをミュートすることができます。ブレッドボードに物をはんだ付けする部分に着いたら、それぞれの接続を置くための座標についてこのリストを参照してください。
ビデオのように、すべての部品をブレッドボードにはんだ付けします。プロトタイプボードの3Dモデル(美的に100%正確というわけではありませんが、次の部分が混乱した場合に備えて、3Dモデルは自分で見られるものを提供するというアイデアです)。ファイルをここにアップロードして表示するそれ。
ブレッドボードは、Y軸に文字、X軸に数字があります。これらを使用して各接続がどこに着地するかを指定します。のために アッパー そして 下 パワーバス、させて U & L どちらを参照しているかを指定します。指定することも ポジティブ または 負 バス、私たちは追加します P または N たとえば、「UP3」は、上側の正の電力バスの3番目の穴(番号付き)を表します。さらに、手紙の追加 Rは、接続がで確立されるべきであることを示します 逆 ボードの側面
- ジャンパー
- 緑: J25R&J27R、H27R&B27R (このジャンパーの前にアイソレーターをはんだ付けする)
- 赤: H8とH26
- 黄: LP24&A24、LP19&J19 (このジャンパーは最後にしますか)
- 白: D28RとG28R、D30RとG30R、UP30RとI30R、UP1とJ1
- ブラック: UN6とJ6、LN19と19B
- R1(680オーム) LP26R&G26R
- R2(120オーム) H7R&C25R
- R3(680オーム) B26とB23
- C1(50V 39uF) UP#RとUN#R (どの列でも、より高い番号の列の近く、レギュレータの近くに配置するだけです)
- C2(10V 680uF) LP#R&LN#R (理想的には列20-23の中に)
- 推奨されているLTV-826デュアルアイソレータを使用して、ピン1(ドットが付いている方)をオンにします。 E24、そしてピン4(アイソレータの同じ側だが3ピン下、オン E27。他のピンはそれらがPCBの上に着くところにはんだ付けされます。
- 行に1つのレギュレータ A、C、E、F、H、J
- 絶縁されていない導体を使用して、行から始めて、すべての上部フィンを一緒にはんだ付けします A6つすべてのレギュレータを接続したら、ワイヤの端を UN30
- 緑色(MDB 6行目)= H25
- 赤(MDB 5行目)= A23
- 青(MDB 4行目)= J24
- 黒(MDB 2行目)= UN29
- 白(MDB 1行目)= I28
- I1R-I19R、A1R-A19R
これで、このステップは終了です。あなたは今から電源を供給することができ、自動販売機と通信することができます無線LAN /ブルートゥース対応の開発ボードを持っている必要があります。
部品の選択
このセクションは、少し違ったことをしたい人を対象としています。たぶんあなたはArduino、またはラズベリーパイを持っている、またはあなたはリストされたそれぞれの部品のために手元に取り替えの部品を持つことが起こる。私がやるのは、私がそれぞれの部分/値をどのように/なぜ選んだのかを説明することです。
まず、すべてに電源が必要です。
- 開発ボードのUSBポートを介してデバイスに電力を供給することはできますが、いくつか問題があります。最後の問題は私がWall Wartのような外部電源を使わない理由です。
- あなたはラップトップを比較的短く静止したUSBケーブルに接続したままにしなければなりません。
- マシンを完全に閉じることはできないため、テストが難しくなります。
- 少なくとも私の場合は、無線装置だと考えました。
- より良い代替手段はそれほど努力しなくてもいいです。
- 私はリニアレギュレータを使うことを選びました。なぜならそれは安くて速いからです。ただし、34Vを5Vに下げ、最大45Vを取り込んで、それなりの量の電流を流さなければなりません。これはオプションを少し制限します( 限られた選択肢のおかげで、ブレッドボードモデルに表面実装デバイスを含めることにしました。 さらに、MDB用の34Vから5Vのシナリオでは、15%の効率が得られることになり、これは大量の発熱につながります。レギュレータは実際には非常に多くの熱を発生しているので、我々がそれらから得ることができる電流の量は熱特性によって厳しく制限されています。それは言った、私は実際に誰もが彼らがただかなりのヒートシンクを裂くことができるまわりに横たわっているがらくたコンピュータを持っていることを想像しないでまたこれは基本的にアイドル状態でただそこに座っている装置のための十分な冷却はほとんどありませんでした。外部電源やもっと複雑なSMPSに頼るのではなく、リニアレギュレータをもっと並列に追加して、その機器をミネラルオイルに浸すことにしました。
- 鉱油は非導電性であり、冷却剤として使用することができます。あなたが彼らのNovec製品ライン(より高い熱伝導率、難燃性など)について3Mに連絡しようとするならば、これの利用可能なより手の込んだ形はありません、あなたは結局その製品へのアクセスを制限する厳しい環境規制と要件がある。冷却に関しては、それは最高の冷却剤ではありませんが、それは空気よりも10倍優れた熱伝導率を持っています。液体を入れるプラスチック製の容器に関しては、作られているプラスチックにもよりますが、熱伝導性と同じかそれ以上の伝導性があるので、簡単に言えば冷却のボトルネックはアイソレータの表面積だけです。ミネラルオイルこれが、ヒートシンクが追加された理由、特にデータシートの値(6 Regulators = 1 Ampを決定するために使用された)がサーマルビアなどで4層PCBに表面実装されているレギュレータを参照している理由です。なぜ1アンペア?開発ボードはどの時点でも最大約1 Aを必要としますが、ほとんどの運用ではこれよりはるかに少なくてすみます。 1 Amp機能は、電源が後で不安定な動作の隠れた原因にならないようにするだけです。最後に、鉱物油では、アイソレータは対流が自然に発生するように配向されており、表面積が最も大きい側はすべての油が流れている場所です。
次に、プロセッサが必要です。
- 私はもともとこのプロジェクトにParticleのPhotonボードを使っていましたが、私が作っているデバイスで自分のWeb IDEを使いたがっている人から提案されました。 9ビットのUARTを提供したので、私はちょうど同意しました。理由があれば、ほとんどすべてのarduinoを使用できます。それらはすべて9ビットUARTを提供しているようです。ラズベリーパイはそうではないようですが、そのためのビットバンギングライブラリが1つまたは2つあります。ビットバンギングは、私にとっては、劣った結果を得るために厄介なことのように思えます。お気づきかもしれませんが、ESP32は9ビットのUARTを提供していませんが、ドキュメントを詳しく調べてみると、パリティビットを操作するなど、回避できる方法がいくつかあるかもしれません。送信時、受信時にはハードです。あなたがUSB - UARTケーブル/アダプターを持っているならば、それは9ビットUARTにそれを適応させることは可能かもしれないし不可能かもしれません。私はdigikey上のすべてのブリッジチップのすべてのデータシートを調べました、そして2つのチップだけが9ビットuartを提供します、そしてそれらはMaxLinear(FTDIではない)によって作られ、そして私はどんなUSBケーブル/アダプターも見つけることができませんでしたそれはそれで彼らのブリッジチップを使用しているので、あなたがUARTアダプタにUSBを持っているならば、それはたぶん9ビットUARTをサポートしないでしょう。しかし私が言ったように、それは9ビットのUARTと一緒に使うことができる、あるいは使えないという意味ではありません。とにかく、私がESP32モジュールを発見したとき、私はカスタムPCBでそれを使うつもりがありました、そしてそれは比類のない価格でwifiとbluetoothを提供した非常に有能なハードウェアとして際立っていました。 。
- ラップトップのプロセッサを使用しないのはなぜですか。それは単に最も単純な/最も簡単な/最も速いオプションではありません。
最後に、アイソレータ
- 選択されたアイソレータの最大立ち上がり/立ち下がり時間は18μSで、標準
それぞれ3および4μSの立ち上がり/立ち下がり時間。これは1μsの差であり、データ通信を歪めることはなく、プロトコルで規定されている1%のタイミング精度(104μsのうち1μsの誤差)にかなり近くなります。 18μSの立ち上がり/立ち下がり時間は、一貫していて同一(104μS以下)で、データを歪ませることなくその時間だけオフセット/遅延させます。現在の転送率は15mA前後でピークに達することが多く、ほとんどの状況で100%を超える転送を維持すると考えるのが妥当です。そこで、私はこれを選びます。また、このことがあまり重要でないことがわからなかったときに、私は偶然それを選んだからです。
部品値の選択:
式は R1 = Vp / 5mA。 5mAは一般的なデフォルト電流であり、調整可能です。 ParticleのPhotonボードはIOピンあたり最大25mAを許容するので、これは良い値です。粒子は3.3Vで動作するため、Vp = 3.3Vで、式はR1 = 3.3V / 5mA = 660オームです。これを最も近い標準抵抗値に調整すると、680オームになります。より高い抵抗値がもたらす電流を再確認します。 I = 3.3V / 680オーム )、私達は4.9mAを得ます。ピン電流は十分大きいので、抵抗の精度/許容誤差内の値の範囲をチェックする必要はありません。
式 R2 =(Vp - Vf(max))/(If * CTR(min))。第二部(* CTR(分)の場合)は転送電流を表し、15mA以上必要です。 10mAで@ 100%の最小電流伝達比を持つアイソレータを選択することによって、CTRが約15mAのピークにあることがわかります。これはうまくいきますが、厳密な公差のために決して長期的な解決策ではないので、私たちはどんな深刻な設計でも新しいレギュレータを見つけなければなりません。このレギュレータの値をプラグインすると、R2 =(3.3V - 1.4V)/(15mA * 1)となります。グラフ上で何を考えようとするのではなく、20とするのが安全です。 、反対側の過電流を制限することを忘れないでください。この方程式を解くと127オームになります。これを次に小さい抵抗値に丸めると、120オームになります。ダブルチェック、これは両側に最低15ミリアンペアを与えます。
R3の式=(5V - Vf)/ 10mA。 10mAはランダム/一般的な値であり、使用されるアイソレータは5mAでうまく動作し、反対側に5mAを生成します。 15mAまで引き出すことができますが、5mAしか引きません。これを行うには、値を式に代入するのと同じくらい簡単です。 (5v - 1.4V)/ 0.01A = 720ただし、これはR1で使用されている680オームに非常に近いので、固有の部品数を減らして同じ値を使用しましょう。ダブルチェックはもちろん、約0.2mAを増やすだけなので、すべてうまくいきます。
ステップ4:初期コードの設定とアップロード
ESP32にはARduino IDEとArduino-Coreをインストールする必要があります。商用デバイスを作るなら、私はESP32のためにEspressifの自身のIDEを使うことに切り替えることをお勧めします。バグが少なくなり、パフォーマンスが向上し、可能なすべての機能が提供されるようになります。彼らはまだArduinoへの移植を完了することに取り組んでいます。
MDBコードをあなたのデバイスにロードし、あなたのデバイス用に設定し、そしてMDBコードにリンクして、あなたが考えた全ての素晴らしい機能を追加し始めなければなりません。私にとって、これは313 Page MDB v4.2マニュアルをダウンロードして、関連するページすべてをプログラムに転記することを意味しました(最初はCashles Payment Deviceを使ってこれを行いましたが、残りを追加することに取り組んでいます)。すべてをやる代わりに、あなたは私のコードを見てみることができます。このコードは、前回使用してから大幅に変更されています。また、24時間365日自動販売機にアクセスできないため、解決するためのバグがいくつかある可能性があります。このソフトウェアを完成させることは、この教材を公開した後の私の次の優先事項です。ですから、この時点に到達するまでには大事にされるかもしれません。スクラッチ。コードが機能していないことを確認する前に、ハードウェアが機能していることを確認してください。ロジックアナライザをピンに接続して、デバイスが受信したもの、読み取ったもの、送信する必要があるもの、実際に送信するものと比較します。ロジックアナライザで何を見るべきかを明確にするために、いくつかの写真を含めました。
私のコードを使い始めるとき、MDBマニュアルでもそれに従えばそれは簡単なはずです。あなたがそれを使うなら、あなたがするどんな改善/変更でも提出するようにしてください。これは私の最初のプログラムであり、それでも私が今まで取り組んだ唯一のプログラムです。また、githubを使うのは私が初めてなので、ちょっと混乱していたらごめんなさい。自分のコードを使用するか自分で調べるかにかかわらず(多くのEVA-DTSマニュアルを参照してMDBコードにリンクする必要があります)、これがあなたのデバイスがマシンとインテリジェントに通信するための時間です。その後、アプリケーションを作成してMDBコードにリンクします。お使いのデバイスの主な機能を実現しましょう。あなたの機能が必要とするものは何でも、マイク、モーターを加えて、そして同様にそれらすべてを準備しなさい。カスタム回路を変更するのは難しく、費用がかかるため、先に進む前にデバイスの機能とデザインを完成させてください。
9ビットUARTをサポートしていない異なるハードウェアを使用している人のために:
ラズベリーパイ、またはUSB - UARTケーブルのようなものを使用することを選択した場合、これは興味深いかもしれません。 MDBは9データビット通信を必要とします。多くのUARTハードウェアはこれをサポートしていません。 ESP32は、そのようなデバイスの1つです。サポートされていないということはそれが不可能であるという意味ではありません、そしてESP32に関するドキュメントを調べた後、私たちがそれを実現することができるいくつかの異なる方法を見ます。別のハードウェアを使用している場合は、これらが検討できるいくつかのオプションです。
- データ送信
- 送信前に、各ビットに必要なパリティ設定を手動で計算します。
- 手動でレジスタとデータ、そしてパリティをロードする(これがESP32で可能かどうかは不明)
- ビットバンギング(保証されていますが、リソースが集中します)
- データ受信中
- データを受信し、9番目のデータビットが何であるかを伝えるためにパリティエラー割り込み/フラグ(あなたのハードウェアがそれを持っていれば)を使うこと。 (これには、パリティが正しくないデータが単に破棄されないことが必要です)
- 各ビットが入るたびに、手動でレジスタからビットを読み取る。
- ビットバンギング(保証されていますが、リソースが集中します)
テクニカルリファレンスマニュアル(少なくともESP32)を見るだけで何が機能するのかは100%明確ではありません。使用することを意図していない方法でパリティを使用しているからです。このように使う方法何が起こるのかを知るための唯一の本当の方法はいくつかのコードをテストして何がうまくいくのかを見ることです。最後の注意点として、ESP32には "Edge Change"レジスタ/割り込みがあり、これによってハード/バスリセットを検出して100%のMDB準拠を実現することができます。ハード/バスリセットは、バスが約100ミリ秒程度アクティブになったときに発生します。これはUART通信には含まれていないため、ESP32がこの機能を備えていることはうれしいことです。ただし、ハード/バスリセットは、機能的にはサポートされていません。プロトコルがそれに応答しないすべてのペリフェラルが単にアドレス指定された(UART読み取り可能な)リセットコマンドを送信するように指定するためです。
ステップ5:プロトタイプ作成を始める
これ以降、あなたはエレクトロニクスについてもっと多くのことを知るべきです。あなたのプロジェクトは、この時点でもこのInstructableから外れている可能性が高いので、これからのドキュメントは、物事のやり方(まったく異なるエレクトロニクス/ SMTトピック)の指示から、私が目にした注目すべきことへの言及に変わります。私は自分のプロジェクトに取り組んでいました。うまくいけば、このステップのどこかに役立つ情報があります。
私にプロトタイピングすることは、すべての部品を研究して、あなたが以前に使用しようとしていた回路図の部品を交換して、可能な限り低いコストを見つけることです。カスタム回路の設計と組み立てについて学ぶときの試行錯誤もたくさんあります。あなたはを改善しようとしています すでに働いています 安価と品質の最適なバランスを見つけるために変更を加えて設計してください(そして変更がシステムを壊さないことを確認してください)。ペニーのほんの一部が合計されます。必ず複数の情報源からの価格を比較し(Octopartでこれを実行してください)、1つの情報源から注文する価値があるのか、複数の情報源から注文する価値があるのかをバランスさせます。スプレッドシート/ BOMをオープンオフィスに保管して、部品とそのすべての価格を整理します。私はあなたが使用できる例/テンプレートを含めます。私はその価格でそれを見つけた各部分へのbit.lyリンクを含むのが常でしたが、私はそれが私がよりよい部分を見つけることを望む速度のために退屈になったのでそれをすることをやめたと思います。 EagleCAD私は今、ある種のBOMプログラムも持っていると思います。単純なスプレッドシートはそれほど強力ではありませんが、最初はあまり複雑ではありません。
デザインが小さくなるにつれて、細部が大きく影響します。あなたのはんだステンシルの厚さ、あなたの受動部品の足跡の形/大きさ、機械的ストレス(それはセラミックとはんだ接合部にひび割れを起こすでしょう)、等々。この文書はそれについて多くを語っています、私が始める前にこれらのこと。私はすべてのパッシブの標準サイズとして0402を使用しようとしています。あなたが心に留めておかなければならない1つのことは組み立てです、あなたは確実にそのサイズとそれが近くにある部品を組み立てることができますか?それとも両面デザインをハンダ付けする方法を計画していますか?
-
すべてのデータシートのすべての単語を読んでください。値表の脚注を見逃していたため、電源ICが正しく動作していませんでした。
-
近道をしないでください、彼らは存在しません。
- 自動組立のための基準を調べてください。
- かなりの数のコピーを作成したい場合は、パネル化を調べてください。
私はそれがまともな電力、無線LAN、ブルートゥース、および他のいくつかの小さなものをすべてモジュール当たり3.75ドルで提供しているのでESP32をお勧めします。私はモジュールを使うのが大好きではありませんが、FCCライセンス料の10グランド以上が選択肢にならない小規模プロジェクトには必要です。あなたはあなた自身の設計でESP32のFCC認証を利用することができます。私が間違っていなければ、すべての商用電子機器はFCCの認証を受ける必要があります。これは、合格または不合格になるまで、少なくとも1000年から2年かかることが常にあります。そのため、スペクトラムアナライザを購入して事前テストを行うことを検討してください。あなたがそれを必要とするまでそれを買ってはいけないxD私はそれを買ったことがあり、これまで使ったことがない。
あなたのPCBが組み立て後にそれ自身をデジタル検査するようにJTAGを実装することを検討してください。前述のとおり、ESP32には独自のプログラミングツールがあります。
選択したPCB製造サービスの機能に注意を払ってください。このステップの写真を見ると、OSHPark(一般/一括趣味サービス)と中国の会社との違いがわかります。
キャリパーか何かを引き抜き、部品がどれだけ大きい/小さいかを知っていることを確認してください。このモデル(Proto2、私の最初のPCB)で、私は抵抗とコンデンサを手に入れ、そして「それらはスクリーン上でもっと大きく見えた」と思いましたxD
「あなたが失敗することを願っています!」 - 彼のビデオの1つでEEVBlogからデイブ。失敗、あなたはあなたが学んでいることを意味し、そして男の子は私がたくさんの高価な学習をしたのです。
私はたまたまこのボード(Proto2)用のEagleファイルを持っています(アップロード)。
こちらもOSHパークオーダーです。
ステップ6:もう一度やり直してください。そしてまた!そしてまた! (もっとプロトタイピング、そしてたくさんの学習)
あなたは失敗するでしょう、そしてあなたは再び試みるでしょう!そして、あなたは再び失敗するでしょう、そしてあなたは再び試みるでしょう! (各リンクで利用可能なボードファイル)最後のビットは重要なことです、あなたは 意志 再試行する!間違いや失敗があるたびに、新しいことが学ばれます。
このプロトタイプ(最初の2枚の写真のプロト3)は、より現実的に手で配置可能なパッシブを使用するように切り替えました。これはうまくいきましたが、私は他の潜在的なサイズの問題を見ることを怠り、私が実際にパワーICを手で配置することができないという認識に至りました、そしてまたOSHParkが品質フットプリントを作ることができるには小さすぎました。 、パッド間にはんだマスクがあります。この時点で、動くMVPを作ることを急がれました(私はそれを使うのが気になる人がいたので少しプレッシャーがありました)、私は少し単純化することにしました。
これがProto3ボードへのOSHParkリンクです。
3枚目から5枚目の写真に示されているプロト4では、モジュールが正しくはんだ付けされていることを確認するのにかかる時間と問題を避け、期待していたWiFiの問題を避けるために開発ボードを使いました。私はまた、より単純な/より大きな電源に切り替えました。残念ながら、私はこの電源装置のデータシートにある脚注を読み忘れていたので(今や私は物事を駆け抜けようとし始めていたので)、正しい電圧が90%提供されないことになりました。私はちょうどUSBポートを介してそれを電源にすることを決めたと信じる、そして通信もうまくいかなかった!正確な原因をあまり覚えていませんが、光アイソレータを本当に過大評価していて、それぞれが十分に速いと仮定したと思い出したことを覚えておいてください。当時、私は猫と同居していましたが、私はそれにひどくアレルギーがあったので、目を覚ましてニキル(毎日)をかき混ぜるようにし、その日に耐えられるようにしました。このものに取り組む(または自宅で仕事をする)には、睡眠をとばして、アドレナリンを吸い込んで呼吸をよくし(猫から毎日ファンキーな喘息があったこともあります)、覚醒し続けます。私はうまくいったことに賛成して、私はたくさんの悪い健康の選択をしました。睡眠を忘れないでください、睡眠不足は不眠症を引き起こし、生産性の低下につながります。食べることを忘れないでください、明らかにそれは生産性を低下させます。スローダウンして正しいことをし、近道をしないことを忘れないでください。さもなければあなたはあなたの時間とお金を浪費しています(せいぜい、してはいけないことを学んでいます)。
これがProto4ボードへのOSHParkリンクです。
この時点で、私はそれを持っていたので、戻って、それを本来の方法で、ゆっくりそして安定したものにすることに集中することにしました。しかし、私が知っている人に郵送して彼を幸せにすることができる再現可能なプロトタイプを使用する準備をするための1つの最終的な低労力ショットなしではありません。 「失敗するには単純すぎる」モデルであるProto-5を紹介します。これは基本的にProto-1と同じ回路ですが、ちょっとおかしなものです。デバイスが壊れたり動かなかったりしたときにフォトンボードを無駄にしないようにピンヘッダーを使用しました。そのため、そこに電子(セル信号)ボードを簡単に取り替えることができました。 Whelp、急いでいた、1〜2接続を忘れた、どういうわけか私が作ったのを忘れた接続を橋渡しした後でさえうまくいかなかった、電源問題であるように思われた、しかし私はもっと多くのコンデンサにはんだ付けすることによってそれを修理できませんでした。急いでいるのではなく、原因を究明するのではなく、それを落として一度だけ進めました。すべての私の泣き声を内部でやり、前進し続けました。
これがProto5ボードへのOSHParkリンクです。
ステップ7:最終デザインを手に入れて生産準備を整える
私はようやく戻って、EspressifのESP32モジュールを使ってデバイスを作ることにかなりの努力を払いました。ボードはより速い組み立てのためにパネル化され(私のトースターオーブンとハンダステンシルアプリケーターに収まる最大サイズで)、私は電源オプションを再調査し、Proto2と3と同じ答えを思いついたので、今その小型ICを使って作りました私は組み立てを手助けするためにピックアンドペースの機械を持っていた(私はそれがもう必要ではないと思うが)。私はより正確な機能とより低いコストのためにPCB製造業者を切り替えました、中国の会社と一緒に行きました(私は再びやりたくないもの)。一般的に、私は私の行動を一緒に得て、そしてまともなボードを作りました。基本的に2つのアイソレータT-Tである回路上のそんなに多くの失敗と費用。
Proto6へのOSHParkリンクはこちらです。 <<ただし、この正確なファイルを送信した後で、(マイナーな/重要でない)いくつかの変更を加えたと思います。そこに行くコネクタの性別を示すMDBコネクタのマークに注意してください。コネクタを間違った側に置かないようにするのが簡単な方法です。私はもうEagleを使うためのライセンスを持っていないので(これも失業中の悪いものも)、これを変更することはできませんが、もしそうなら、LTV826Sの代わりに2つのTCP817アイソレータを使うようにアイソレータを切り替えることをお勧めします。また、ESP32にJTagを追加して(14ページ)、そのために使用するESP32プログラマーで使用されているものと一致するヘッダーを見つけます。使用するパッシブのサイズを増やして自由に追加してください。変更を加えないのであれば、少なくとも設計を見直し、部品表の部品が実際にPCBに合った部品であることを確認することをお勧めします。私はあなたに言うことができます、BOMのダイオードは私が反対したものであり、そして私が実際に使用したものはここにあります。
まだ言及していないのであれば、表面実装型のMinifit Jrコネクタはありません。そのため、私が持っている方法でエッジマウントするのが最もコンパクトな方法です。エッジマウントコネクタとして適応可能なピンがあらかじめ装着されたコネクタが1つあります。もう一方のコネクタの場合は、圧着接続を挿入する必要があります。これは可能な限りコンパクトです。あなたがPCBの厚さとワイヤゲージを一致させるなら、あなたはそれをそのようにかなりうまく一緒に合わせるべきです。これらのコネクタが大量生産の組立工程にどのように影響するかを覚えておいてください。私はそれについてMolexに連絡しました、そして、彼らはあなたが作られる新しい/カスタムコネクタを持つためにそのような何百万ものユニットとものを注文する必要があると言います。あなたがそれを理解することができると思うなら、あなた自身のものを作ることを検討してください、そしてそれもあなたにとって問題です(SMTコネクタを持っていない)。
CNCマシンを参照するビデオは、Shapeoko 3ではなく、私が(ポケットnc)を節約することを計画していたものについて話しています。これらのビデオは何年も前のものです。
あなたの自動販売プロジェクトで頑張ってください、これが助けになることを願っています、そしてあなたは成功しています。
で準優勝
PCBコンテスト