上位に戻る Arudinoを使ったリモコン電動カーテン 初版2022/1/28

ダイニングキッチンのテレビが、カーテンの後ろに隠しているので、毎回、カーテンを上げないといけない、また 外部スピーカもつけているので
スピーカの電源を入れないといけない。パソコンも裏面に貼り付けいますが、これは、スマホからWOLで電源を入れてます PC切るときは
ワイヤレスキーボードからシャットダウンを選択しています
先日買った、ELEGOOのArduinoのキットには、赤外線のリモコンや、ステッピングモータが付いていましたので、これを使って 赤外線リモコン
でカーテンの上げ下げ スピーカ電源を連動で、入れる パソコンの電源の入り切りをできるようにしました
後は、オッケーグーグルで音声で操作できるようにしようにしました

1.Arduinoを使って赤外線リモコンで、カーテンの上げ下げと、アンプスピーカの電源制御及びパソコンの電源制御を行う



2.Arduinoを使って、ソニーのテレビを制御する

3.スマートリモコンを使って音声で制御する


  1. Arduinoを使ってカーテンの上げ下げを行う

    @使ったもの

    先日買ったELEGOOのキットについていた
    赤外線リモコンカードと、受信素子
                当初使うつもりだったステッピングモータ
    試作は、キットでするとして今回は組み込む
    ので、別にArudino Nanoを購入しました
    軸受け用にベアリングを購入しました
    巻き上げ用にステンのパイプ
    DC5V 2回路2接点(C接点)リレー
    ステッピングモータで作ってみたものの
    回転数が遅すぎて巻きあがるのに、2分
    以上かかります
    ヨメハンに
    「こんなにかかるやったら
    今までみたいに、自分でやるわ!!」
    ごもっともです
    で、
    最初100rpm のuxcell 減速モータ 減速電機
    ポチろうと思ったのですが、よく見たらメチャ
    ちっちゃい 10mm角 こらあかん
    Amazonでは適当なものがひっからず
    別件で、コーナン行ったら乾電池式
    ドリルドラーバが、1280円
    これならトルクも十分 回転数も無負荷で
    200RPM
    パイプと繋ぐのに、チャックも買おうかと
    迷ったのですが、チャックが、700円もする
    ので止めました
    で、ステッピングモータじゃないので、回転数
    を数えて止めないといけないので、
    リードスイッチを買いました
    光学センサーと迷ったのですが、
    こちらのほうが取付構造が簡単そうなので
    ダイソーのマグネット 9個入りの
    一番小さいものを買いました


    Aステップモータでやってみることに

    Bステップモータ時のソース
     ソースプログラム

    赤外線リモコンを使って上げ下げ 上げは、VOL+ボタン 下げは、VOL-ボタン 後は必要回転数をステッピングモータを回転させる
    だけの単純なプログラムです
    製品付属のStepperライブラリですが 回転できる最大数が、12回転までしかできません。回転数のステップ変数をLongにしてみましたが
    ダメでした。ライブラリの中修正しようかとも思ったのですがとりあえず、3回呼び出して、34回転させることにしました

    あと、問題は、Arudinoが、マルチタスクできないので、回転制御中はなにもできません。ちょっと、疑似マルチタスクのライブラリがあった
    のでチャレンジしてみましたがモータ制御のタイミングが細かいので、ちょっと小生の能力では無理でした。で、緊急停止用に電源スイッチ
    をつけました
    ステップモータですが、最大回転でも15RPMくらいしかでません。カーテン巻き上げるのに、2分以上かかります。ヨメハンにダメ出しをもらった
    ので、100RPMくらい回せるモータを探すことにしました


    Cドリルドライバーに変更

    買ってきたドリルドライバーをばらしてみました
    モータを固定するのが、ちょっと厄介です
    ケースに納めないと、ギア部がばらけてしまう
    ので、ケースの電池部分をぶった切って
    利用しました
    6Vで、回したところ、1A以上消費します
    ちょっと、強力すぎですね・・・・。
    電磁波ノイズと、始動時の突入電流が
    気になります
    シリコンドロッパでダイオード入れて
    4.3Vで回すことにしました
    パイプとの接続部ですが、ステップモータの
    時は先端が小さいので、パイプに突っ込んで
    ネジで止めれるようステンのパイプに4箇所
    穴を開けてましたが
    これは、無理です
    ステンのパイプを開けたので、2mmの切りさき
    がお釈迦になってしまったので、
    六角のドリルの先をパイプに突っ込んで
    PVCテープでぐるぐる巻きにしました
    まあ適当ですが、PVCなので、ねちょねちょ
    になることはないです
    リードスイッチと、磁石は、これも PVCテープ
    で巻いて止めました
    んん 適当だあ
    カウントできて、止まるかのテスト
    大丈夫そうです
    ただし、モータの音がうるさすぎる!!





    Dドリルドライバーの回路



    最初上記回路で、使っていたのですが、どうも たまに、誤カウントして、巻き下げの数が、1回少なくなるときがあります
    リードリレーの動作を検知してから次のセンスまでのディレイをギリギリまで長くすると、でなくなりましたが、おそらく、モータの
    始動電流で、始動時に電圧降下を起こして誤カウントしているんじゃないかと思われます
    おもちゃシンクロスコープで見てみることにしました
    このおもちゃシンクロ壊れてシンクロ
    しない ただのオシロで、
    同期が取れていないので
    線が2本になって見えています

    巻き下げの時の始動時

    やはり、立ち上がりが
    すぐに上がっていません
    巻き上げ時の始動
    巻き下げに比べて立ち上がりが良い
    モータの回転の向きで始動電流
    が違うのだろうか・・・・。
    巻き下げ時が音が大きい・・
    ギアの問題か?
    ただし、通常時も立ち上がり
    よくありません


    pinMode(kaitenR, INPUT_PULLUP)

    コマンドでプルアップしてますが
    インピーダンス高過ぎなのか



    1KΩのプルアップ抵抗を入れることにしました。これでかなり改善見込めますが、万が一巻き下げの数が少ないと、
    次に巻き上げた時に、巻きすぎてワイヤーが切れてしまうかもしれないので、電源の対策もとることにします
    電圧が落ちないように回路をいれようかとも思ったのですが、ケース内にスペースがもうありません
    スマートじゃないけど、単純に電源を分けることにしました


    ピンボケですが、始動時です
    きれいな矩形波になりました
    通常時も立ち上がり
    なまっていましたが
    きれいになりました

    ヤレヤレ ス!



    ステッピングモータのドライバーの変わりに、リレーを2個追加しました もう パツパツです

    Eドリルドライバー時のソースファイル
     ソースプログラム

    F追記
     しばらく使っていると、まず、リードリレーを固定するのに、鉄制のLアングルと、ネジを使っていましたが、磁化して誤カウント
    が発生するいうになりましたので、木部で固定し、ネジもプラネジに交換しました
     モータの上げ下げですが、モータの電源を切ってから停止するまで自己誘導で、しばらく回転します。まあ即時停止したい
    だったら、電源をショートすればいいかもですが、上げ下げで、残回転数が、やはり上げるほうが力が必要なため、上げるほうが
    若干残回転数が少ないです この為、上げる 下げるで若干カットアンドトライで モータ電源を切るディレイ時間挿入してを調整
    しました

  2. Arduinoを使って、ソニーのテレビを制御する
    せっかくなので、カーテンを上げると同時にテレビの電源をONに カーテンを下げると同時にテレビをOFF パソコンを起動させる時に
    テレビの入力ソースを切り替えてパソコンに接続させる パソコンを切るときは、入力切り替えで、地デジに戻す回路を追加しました


    追加で買ったもの
    ELEGOOのキットに付属していた
    赤外線リモコンカードですが、
    早くも、接触具合が良くありません
    ちょっと高いですがエルパのリモコン
    を買いました
    赤外線の送信用LEDが必要になるのと、
    給水器制御で、受光器が必要になるの
    で送受信セットを購入
    しかし、30組もいらないんだけど
    まあ、いいか




























    以上間違い等ありましたら、以下ご意見箱にお願いします

   

    ご意見箱