工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

スマートブラインド

コンポーネントと消耗品

>
SparkFun Arduino Pro Mini 328-5V / 16MHz
× 1
Arduino UNO
× 1
温度センサー
× 1
PN2907APNPトランジスタ
× 1
LDR
× 1
抵抗10kオーム
× 1
抵抗1kオーム
× 1
ソーラーパネル
× 1
Dc-Dcブースター
× 1
JSTコネクタ
× 1
4xAAバッテリーホルダー
× 1
サーボ(Tower Pro MG996R)
× 1
充電式3.6Vリチウム電池
× 1
サーボモーターカップリング
× 1
コンデンサ100nF
× 1
OSHパークカスタム製作PCB
× 1
各種フックアップワイヤー
× 1

必要なツールとマシン

>
はんだごて(汎用)
ドリル
SolderWire
ワイヤークリッパー
ワイヤーストリッパー
マルチメーター
Dremel
回路基板/はんだブレッドボード
熱収縮ラップ

アプリとオンラインサービス

>
Arduino IDE

このプロジェクトについて

<図> <図> <図>

こんにちは!

このプロジェクトは、私の最初の(そして最初の)プロジェクトである自動太陽光発電水平ブラインドに加えられた改善点を示しています。掲載されたオリジナルデザインは当時の要件を満たしていました。いくつかの設計上の欠陥が明らかになる前に、ほぼ4か月間正常に動作しました。

要約すると、ブラインドの目的は、光のレベルに基づいて開閉し、プライバシーを確​​保するために光を取り入れたり閉じたりすることです。また、ブラインドは「熱くなりすぎる」と閉じる必要があります。これは完全に任意の指定です。

このプロジェクトを別の場所からインポートしましたが、ここのハードウェア/ツールセクションでは、必要なオプションが提供されていなかったため、Hackster.io形式ではなく、項目別リストをそのまま処理する必要があります。ごめん。

新しいデザインは次のことを行います:

  • 朝に開いて(85度回転して)光を取り入れます
  • プライバシーを確​​保するために、夕方に閉じます(0度に回転-ブラインドを下に向けます)
  • 温度が30°C(約86°F)を超える場合は、閉じます(165度に回転-ブラインドを上に向けます)-この温度は任意であり、快適さのレベルは異なる場合があります。
  • 外部配線、ボックス、デバイスなどを使用せずに、これらすべてのアクティビティを実行します。つまり、Wife AcceptanceFactorに合格します。
  • バッテリーを頻繁に交換する必要があるため、プロジェクトを放棄しないように十分に持続可能にしてください。
  • あまり費用をかけないでください。最終的な結果として、ブラインドは約50米ドルで製造できると思います。もちろん、新しいツールに投資したお金や、プログラミング、テスト、はんだ付け、いじくり回しに費やした時間は考慮されません。

これらの設計要件の理由は、それらが設計された窓が家の正面玄関の上の2階の窓であるためです。この窓は南(実際にはSSE)に面しています。つまり、冬はブラインドを開いた状態で日光が多く(そして潜在的に暖かく)なりますが、夏は暑すぎる可能性があります。

述べたように、ブラインドは約4か月間完全に機能しました(1月のインストール、6月頃に戻ってきました)。発見された欠陥は次のとおりです。

  • 家は真南に面していません.....したがって、冬には、太陽はほとんどの日窓にあり、午後遅くに窓を離れるだけです。これにより、冬の間は大量のソーラー充電が可能になります。しかし、夏の間、太陽は正午までに家を越えます。これは、日中の大部分を充電するのに十分な太陽がないことを意味します。そして、窓のソーラーパネルの元の配置は、その上に、その日の最初の数時間は日陰になります。 解決策:ソーラーパネルの位置を改善します。
  • ブラインドを制御するために使用されるサーボモーターは、連続13mAを消費します。これは私に衝撃を与えました。私の最初の試みでは、マルチメータがサーボの大容量をサポートできず、「スリープ」状態のときにそれを確認する精度を提供できなかったため、サーボを配置した状態で電流を測定しませんでした。 解決策:PNPトランジスタを使用したハイサイドスイッチ。
  • 私のオリジナルデザインの6Vソーラーパネルは、実際にはLiPo充電モジュールに対して機能します。充電モジュールの定格入力は4.5V〜5.5Vです。パネルが完全な太陽を受けて6V以上の電力を生成すると、充電モジュールはシャットダウンしました。ブラインドが取り付けられるまで、私はこれを発見しませんでした。 解決策:正しいサイズのパネル。
  • ロギング/テレメトリの収集はありません。これにより、ブラインドが誤動作し始めたときにブラインドを診断することが非常に困難になりました。 解決策:EEPROMロギング機能。
  • 診断/修正するために接続/切断する方法はありませんでした。これは、ソーラーパネルとバッテリーの両方に適用されました。 解決策:バッテリーと回路、ソーラーパネルと回路の間のJSTコネクタ。
  • 測定(温度と光)は、DC-DCブースターの5V出力ではなく、安定した5V基準電圧(ArduinoのVCC出力)に対して行う必要があります。その電圧は少し変動する可能性があり、アナログ-デジタル変換の測定に影響を与えます。私の最初の設計では、私が使用した「5V」ラインは、実際にはDC-DCブースターから出ている調整されていないラインでした。 解決策:当たり前のようですね。 Arduino ProMiniからの*安定化された* 5V出力を使用してください。

それでは始めましょう!

ステップ1:パーツリスト

<図>

このプロジェクトではArduinoを使用することにしました。それは私が知っていることです。自分に合った別のマイクロコントローラーを使用できます。あなたは私がSparkFunからたくさん買うことに気付くでしょう-彼らは私にとって地元のものです。素晴らしいのは、午前中に注文して、その日の午後に受け取りに行くことができることです。

表示される他のリンクはbanggood.comからのものです。これらには、安価なコンポーネントがたくさんあり、さまざまな電子部品があります。パーツを最大1か月以上待つことに抵抗がない場合は、安価なものを入手できます。そしてtaydaelectronics.comから。あなたが一度にいくつかのものを買うことができるならば、価格は非常に良いです。送料はかなりリーズナブルです。ですから、私のリストに表示されるパーツのいくつかは、最小注文数に達するために、実際に5、10、または20個のアイテムを注文しました。誰が知っている、多分私はこれらのいくつかを構築するでしょう。

  • Arduino Pro Mini($ 10-SparkFun)
  • Arduino Uno、Miniのプログラミング用-特別なケーブルを使用できますが、このセットアップは私にとってはうまくいきます。
  • LM35DZ温度センサー($ 1.23-Tayda)
  • PN2907A PNPトランジスタ($ 0.05-Tayda)
  • 光依存抵抗器(LDR)(banggood.comの10個パックで1.24ドル)-
  • 1つの10K-オーム抵抗器($ 0.01-Tayda)-SparkFunから抵抗器パックを$ 8で購入しました。
  • 1Kオーム抵抗器1個
  • 5V 1.5Wソーラーパネル($ 4.07 --banggood.com)
  • 5V DC-DCブースター($ 1.38 --banggood.com)
  • リチウムバッテリー充電モジュール(banggood.comの3個パックで2.89ドル)
  • JSTコネクタ(banggood.comの60パックで3.33ドル)
  • 充電式3.6Vリチウム電池(Amazonの4パックで15.39ドル、ACアダプターを含む)
  • 18650バッテリーホルダー($ 1-SparkFun)
  • サーボモーター(地元のホビーストアで見つけたHitec HS-325HBを使用しました)(これは同等のものです)どのようなトルクが必要かを推測する必要がありました。測定用のリーズナブルなトルクレンチが見つかりませんでした。
  • サーボモーターカップリング。ハイテックサーボを使っていたので、これが必要でした。 ($ 5-SparkFun)
  • 100 uFコンデンサ($ 0.03-Tayda)
  • 各種フックアップワイヤー(このキットを購入しました-Amazonで17.79ドル)
  • PCB(Amazonの10パックで2.74ドル)

ステップ2:ツール

<図>

持っていると便利なアイテム:

  • ドリル
  • はんだごて
  • SolderWire
  • ワイヤークリッパー
  • ワイヤーストリッパー
  • マルチメータ
  • ドレメルまたは同様の小さな切削工具
  • 回路基板/はんだブレッドボード
  • 熱収縮ラップ

ステップ3:プロジェクトのプロトタイプを作成する

<図> <図> <図> <図> <図>

わかった。すべてのコンポーネントと作業領域が揃ったので、今度はそれをすべてまとめて、何が起こるかを確認します。

元のプロジェクトでは、最初に2本のAA電池を5V DC-DCブースターに接続し、5Vの出力が得られたことを確認しました。今回も同じことをしましたが、実際のバッテリーであるリチウム二次電池でした。完全に充電され、4.1〜4.2Vになります。私のマルチメータによると、ブースターから5.04Vが出ています。十分です。

次のステップは、すべてのコンポーネントをはんだ不要のブレッドボードに配置して、それを制御するコードを記述し、電流と電圧を測定することでした。

  • リチウム充電モジュールの適切なコネクタをバッテリーとソーラーパネルに接続します(正から正、負から負)
  • パネルのプラス端子からアナログA0にワイヤを接続します。これにより、ロギング用のパネル電圧が提供されます。
  • バッテリーは5VDC-DCブースターにも接続します。
  • バッテリーのプラス端子からアナログA1にワイヤーを接続します。これにより、ロギング用のバッテリー電圧が提供されます。
  • ブースターからの5V出力はArduinoのRAW入力に送られます。
  • 5Vブースターからのグラウンドが全体に使用されます。
  • ArduinoVCCピンを5Vの安定化が必要なすべてのものに接続します。
  • サーボはDC-DCブースターの5V出力に接続できますが、最初にPNPトランジスタを通過します。
  • LDRから、10Kオームの抵抗をアースに接続します。 LDRと抵抗器の間にワイヤーをアナログA3に接続します。これが光の検出です。
  • 5VをLM35DZ(または温度センサー)の5V側に接続します
  • LM35DZのアースをアースに接続します。
  • LM35DZの中央(または出力)ピンからA2にワイヤーを接続します。これが温度検知です。
  • DC-DCブースターからの5V出力をPN2907AのE(エミッター)ピンに接続します。
  • トランジスタのB(ベース)ピンとピン11の間に1Kオームの抵抗を接続します。これは、サーボモーターに電流を流すための制御です。
  • トランジスタのC(コレクタ)ピンをサーボモーターの電源ピンに接続します。
  • サーボモーターのアースピンをアースに接続します。
  • サーボの信号ピンをピン10に接続します。これはサーボの制御に使用しているPWMピンです。

プロトタイプ作成中は、ソーラーパネルとリチウム充電モジュールを接続する必要はありません。手順は、アセンブリ全体についてここにあります。この時点から、充電モジュールを除くすべてのコンポーネントがすべての測定に使用できるようになります。

手順13〜16でトランジスタを追加する前に、次のシーケンスが実行されました。

  • サーボなしのアイドル電流を見てください。
  • 次に、サーボモーターを追加して、電流を記録します。

何が起きてる!?サーボを接続するだけで、システムに14mAのアイドル電流を追加しました。どうすればこれに対処できますか?私たちの親友はトランジスタです。私の最初のArduinoキットの購入には、いくつかのNPNトランジスタが含まれていました。それらについていくつか読んだ後(SparkFunに感謝します!)、ローサイドスイッチ構成を試してみることにしました。ただし、これは機能しませんでした。私は*まだ*予想よりもはるかに大きなアイドル電流を持っていました。エミッター、ベース、コレクターのピンの電圧を測定したところ、ベースピンに電圧がかかっていることがわかりました。サーボの内部回路がモーターの位置を制御するために使用されるPWMピンを介してグランドへのパスを見つけていることを除いて、何が起こっているのか100%確信していませんか?誰かがアイデアを持っているなら、私はすべての耳です。

それでは、ハイサイドスイッチ構成のPNPトランジスタを試してみましょう。

成功!さて、サーボが動いていないときは、サーボが付いていないように見えます。したがって、ステップ13〜16でのトランジスタの使用。

ステップ4:プログラミング

<図> <図> <図>

もちろん、レイアウトした後、テストするにはProMiniをプログラムする必要があります。最初にテストしますよね? SparkFun TTL-USBケーブルを使用しようとしましたが、動作しませんでした。たぶん私は間違ったケーブルを持っていますか?そこで、それがなくてもできるかどうかを確認することにしました。

さて、このサイトだけでも、ArduinoUnoを使用してArduinoProMiniをプログラミングするためのいくつかの手順があります。とても簡単です。私にとって最も怖かったのは、UnoからICを取り外すことでした(UnoをPro Miniとしてプログラムできないため、これを行う必要があります):

  • ICをUnoから取り外します(ノッチが向いている方向をメモして、元に戻すことができるようにします)。これは、iPhoneを開くために使用するようなプラスチックのナイフタイプのデバイスを使用して行いました。ピンが曲がらないように、ICの下を両側から交互にそっとこじ開けることから始めました。
  • Uno5VピンをProMiniVCCピンに接続します。
  • UnoGNDピンをProMiniGNDピンに接続します。
  • UnoTXピンをProMiniTX0ピンに接続します。
  • UnoRXピンをProMiniRXIピンに接続します
  • UnoRESETピンをProMiniRSTピンに接続します。

私は自分で2セットのワイヤーを作り、それらをブレッドボードに接続しました。ジャンパー線の両端をテープで固定したので、ピンを個別に接続する必要はありませんでした。私は、これを2回行う必要がある場合は、自動化または簡素化できると言うタイプの人です。

これで、Arduino IDEにアクセスするときに、[ArduinoProまたはProMini]を選択すると、ボードを直接プログラムできます。変更したい変更が見つかった場合は、ブラインドからアセンブリ全体を削除せずに再プログラムすることもできます。

これが、このプロジェクトで使用したSmartBlindsスケッチです。かなりよく文書化されていると思いますが、ご不明な点がございましたら、お気軽にお問い合わせください。 EEPROM Loggingクラスも必要であり、私のgithubのライブラリで利用できます。

また、プロジェクトのブレッドボードビューとスケマティックビューの両方で試行を追加しました。しかし、フリッツは私を邪魔し続けるので、見栄えがよくないかもしれません。

ステップ5:組み立てを開始する

<図> <図> <図> <図> <図> <図> <図> <図> <図>

システムに関するデータが得られたので、組み立てを始めましょう。

今回追加したのは、JSTコネクタを使用し、ソリッドコアワイヤをそれらにはんだ付けして、少し余分な範囲を与えることです。デフォルトでは、それらは非常に短いです。コネクタを使用すると、バッテリーと回路の他の部分との間に簡単に侵入できるという追加の利点があります。

私の最初のプロジェクトでは、サーボモーターが常に14 mAを消費することを発見しなかったため、この重要な測定に失敗したに違いないことに注意してください。

これは、ソリッドコアワイヤをソーラーパネルにはんだ付けするのにも良い時期です。 JSTコネクタに約2フィートのワイヤを追加して、ソーラーパネルをウィンドウ内の適切な場所に配置し、一年中太陽を最大限にカバーし、視覚的な影響を最小限に抑えました。 PCBにはんだ付けするための短い(より)コネクタを保持します。これにより、ブラインドトップレールに入る部品のサイズが最小限に抑えられます。また、ソリッドコアワイヤを使用してPCBにはんだ付けする方が、編組ワイヤを穴にはんだ付けするよりもうまく機能するようです(私にとっては)。あなたのマイレージはさまざまです。

PCBをブラインドに必要なサイズにカットします。買ったボー​​ドは3列くらいの穴が大きすぎるので、それだけ切り詰めました。私は回路をできるだけ小さく、そしてできるだけきれいにレイアウトしようとしました。ワイヤを必要なサイズに事前に切断し、少し曲げてコーナーなどを通過させます。次に、PCBの穴に下(または上)に挿入します。サーボコネクタピンの高さに注意し、コネクタがブラインド内のサーボ動作に干渉しないことを確認してください。

また、インジケーターLEDにつながるDC-DCブースターのエッチングされた線を削り取りました。常に約1mA節約できます。理想的には、サーボまたは他のコンポーネントからの潜在的な影響を減らすために、温度センサーはそれ自体でオフになります。私はそれをすることができませんでした、そしてそれはトランジスタのすぐ隣にあります。

ステップ6:組み立てを完了し、最後に1回再プログラムします

<図>

組み立てが完了した後、最後に行うことは、EEPROMロギングクラスを復元​​することです。プロトタイプを作成してさまざまなことを試している間、EEPROMに書き込みたくなかったので、そのコードをコメントアウトしてもらいました。しかし、デプロイの準備ができたので、ロギングを有効にする時が来ました。ログの出力はここにあります。元の形式のまま、以下にも添付されています。

ProMiniには1024KbのEEPROMがあります。エントリあたり22バイトのサイズと2バイトの「同期パターン」に基づいて、EEPROMがラップアラウンドする前に42エントリを取得できるはずです。これは、1日2回のアクティビティで、1か月未満のデータです。もっと入手したいのですが、SDカードかもっと大きなEEPROMが必要になります。たぶん次のリビジョン。

また、どこかにショートがないことを確認するために、最後の1つの電流測定を行います。私が測定した電流は約1.5mAです。 900 mA時間のバッテリーを使用すると、充電せずに約600時間の動作が可能になります。常にスリープ状態になるとは限らないため、少し差し引いてください。もちろん、移動するたびに、バッテリーの消耗が早くなります。 rocketlabsのLowPowerライブラリを使用すると、1.5mAでスリープします。実行中は約25mA、ブラインドを動かすときは200mAから約500mA以上になります。バッテリーをさらに長持ちさせたいのですが、動作時にLEDを点灯させて、動作していることを確認したいので、トレードオフとして問題ありません。

FEF476VIRXTB0NK.txt

ステップ7:インストール

<図> <図> <図> <図> <図> <図>

OK、ブラインドに取り付けましょう。

  • まず、プルコード用の栓抜きドライブを取り外します(ブラインドにある場合)。それらは、サーボモーターが正しく動作するには抵抗が大きすぎます。 (元のブラインドを再利用していて、その部分が見つからないため、その写真はありません)
  • LDRが突き出るように小さな穴を開けます(私はブラインドの外側に面した側を使用します)
  • 次に、Dremelまたはその他の切削工具を使用して、サーボモーターのサイズに合わせて正方形を切断します。しっかりとはめ込む必要がありますが、サーボを傷つけたり損傷させたりしたくないです(私は再び外向きの面を使用しました-装飾で覆われている可能性はありますが、家の中で見たくありませんトリム。その側を選択する場合は、トリムの邪魔にならないように注意してください)
  • 粗いエッジをテープで覆うか、なんとかして滑らかにします。
  • PCBをブラインドに挿入し、光センサーが手順2で開けた穴から突き出ていることを確認します。
  • サーボモーターをシャフトに取り付け、止めネジを締めます。この時点で、運転開始時に90度10秒待機する理由は明らかです。プログラムを開始し、サーボを90度に動かしてから、バッテリーを無効にします。次に、その位置を使用してブラインドに取り付けます。ブラインドは、一致するように手動で90度に移動しました。
  • はしごに乗ってブラインドを取り付けます。
  • ソーラーパネルを窓の上部3分の1の中央の窓に取り付けました。ペインのセパレーターに沿ってワイヤーを配線し、パネルとワイヤーを所定の位置にテープで固定して、視認性を最小限に抑えます。
  • ソーラーパネルを回路に接続します。
  • バッテリーを接続し、ブラインドをすばやく所定の位置にスライドさせます。それらは中央に移動し、10秒の遅延の後、適切な位置に移動する必要があります。接続する前に、バッテリーホルダーをブラインドレールの内側に置きます。
  • 装飾トリムを再取り付けします。
  • ビール(または私の場合はラムとコークス)を持っています。

ステップ8:リラックスしてお楽しみください!

ブラインドは自動的に開閉するので、スムーズな操作をお楽しみください。

私のデザインを使って作ったら教えてください!私はそれについて聞きたいです、そしてあなたが変更または改善をしたかどうか。ご不明な点がございましたら、お問い合わせください。このウェブサイトは、このプロジェクトに関連するさまざまなスキルを学ぶのに非常に役立ちました。お返ししたいと思います。

更新:数か月の運用後、彼らは期待どおりに動作していると言って嬉しいです!私たちが見つけた1つの癖は、2階の廊下と2階の玄関の両方のライトが点灯している場合、ブラインドは暗闇を過ぎても開いたままであるということでした。これは、会社での機能を披露するのに最適です。そして、非常に暑くなった夏の終わりの日には、非常に快適な温度での熱のためにブラインドが閉じました-窓はメインフロアよりも熱くなるので、家の中でまだ70年代(F)にある間にブラインドは閉じます。

コード

Github
https://github.com/Froz3nArcher/libraries/tree/master/EEPROMLoghttps://github.com/Froz3nArcher/libraries/tree/master/EEPROMLog
Github
https://github.com/Froz3nArcher/SmartBlindshttps://github.com/Froz3nArcher/SmartBlinds

回路図

スマートブラインド回路図
https://github.com/Froz3nArcher/SmartBlinds/blob/master/SmartBlinds.fzz

製造プロセス

  1. スマートバーテンダー
  2. スマートブラインド
  3. Arduinoを搭載したシンプルな障害物センサー
  4. スマートシューズ(自動レーシングおよび発電)
  5. モノのインターネット(IoT)ベースのソーラートラッカー
  6. Arduinoを使用したシンプルでスマートなロボットアーム
  7. 学校向けのSMART温度監視
  8. スマートハンドグローブ
  9. スマートディスプレイを備えたスマートバッテリー充電器マルチプレクサ
  10. Arduino用の絶縁アナログ入力
  11. Arduinoに基づくスマートエネルギーモニター