【ラズパイPico】リードスイッチでドアの開閉を監視・検知してみた【リクエスト】

Поделиться
HTML-код
  • Опубликовано: 1 фев 2025

Комментарии • 65

  • @kaseshouten
    @kaseshouten 9 дней назад

    面白い動画ですね。
    ブザーがはみ出てるのは自作の味がでてていいですね!笑

  • @虎愛護協会
    @虎愛護協会 Год назад

    学校でPython習ってるけど、
    難しすぎて身の回りで応用できる気がしないw

  • @_lite8945
    @_lite8945 3 года назад +2

    リクエストが実現して嬉しいです!

    • @Shartick
      @Shartick  3 года назад +2

      遅くなりましたが動画化できました!リクエスト有難うございます!
      …こんな感じでよかったですかね?😂

  • @Inuyama_unagi
    @Inuyama_unagi 3 года назад +1

    これは良いですね!

    • @Shartick
      @Shartick  3 года назад +1

      ありがとうございます!
      リードスイッチの勉強がてら作ってみましたが実用的なものができてよかったです。
      ほかの用途にも転用できそうですし色々な使い道がありそうです。

  • @ichio461
    @ichio461 2 года назад

    リードスイッチの思い出として、ガラス管部分よりも、足の部分に磁石を向けた方が、反応距離が長くなる。というのを思い出しました。
    コア部分が弱点に見えたが、実は目立たない地味な部分が弱点だった、見たいな感覚でしたw

    • @Shartick
      @Shartick  2 года назад +1

      今回初めてリードスイッチを触って私も同じことを思いました!
      どう見てもガラス管が本体っぽいんですけどね…w

  • @MichaelKingsfordGray
    @MichaelKingsfordGray 2 года назад

    Arigato Gozaimashita Sensei, from Australia.

    • @Shartick
      @Shartick  2 года назад

      Douitashimashite! Kochirakoso Komento Arigatou Gozaimasu.

  • @fugaku1480
    @fugaku1480 3 года назад

    かなり前(8ビットCPUの時代)に使っていた富士通のキーボードを押すとリードスイッチの音がしていました。
    リードスイッチの工作をしたことは無いのですが、磁気を使ったスイッチと考えています。

    • @Shartick
      @Shartick  3 года назад

      リードスイッチを使ったキーボードがあったんですね!それは存じ上げませんでした。ぜひ一度触ってみたいものです。

  • @moritashigeru
    @moritashigeru 2 года назад

    リードスイッチを直列に繋げばいいんじゃない?  ウチは6ドア冷蔵庫なのでスイッチを6個直列で繋いでやってます。

    • @Shartick
      @Shartick  2 года назад +1

      今回は2ドアで数が少なかったのと、それぞれのドアで違う制御を入れる可能性を考えて別々の回路にしましたが、6ドアとなると直列に繋いだ方が良さそうですね。
      とても参考になるご意見ありがとうございます!

  • @Hemyu
    @Hemyu 3 года назад +4

    うちはポストになにか投函(リードスイッチで検知)されたら、ポストの中を撮影してLINEで送ってもらうようにしてます。 再配達って17時までが多いので、仕事終わって家に帰る前に依頼出せるから便利('ω')
    プログラムは誰かの作ったものの流用だけど。

    • @Shartick
      @Shartick  3 года назад

      ポストにセンサー、めっちゃ便利そうですね!
      私もほんと再配達が煩わしいので何とかしようと光センサーを買っていたのですが、リードスイッチの方が確実に検出できそうですね。
      電源が遠いのでどうするかだけがネックになっています…。

    • @Hemyu
      @Hemyu 3 года назад

      @@Shartick うちの電源は20Wくらいのソーラーパネル+バイクのバッテリーです。1年ほど使ってますが、問題なく動いてますよ。

    • @Shartick
      @Shartick  3 года назад

      ソーラー+バッテリーはとてもいいアイデアですね!ぜひ参考にさせていただきます😆

  • @koneko_chan_w
    @koneko_chan_w 3 года назад

    我が家の冷蔵庫は一定時間でアラームなります。

    • @Shartick
      @Shartick  3 года назад +1

      コメントありがとうございます!
      最近の冷蔵庫にはアラームがあるみたいですね。我が家のは古いので羨ましいです。

  • @kaoruh5658
    @kaoruh5658 3 года назад +2

    MicroPythonの初学者なので、このような解説はためになります。ありがとうございます。
    もっとも自分で作る時には、6ピンか8ピンのPICマイコンのアセンブラで組むかなぁ。(*^_^*)

    • @Shartick
      @Shartick  3 года назад +2

      動画をご覧くださいありがとうございます。マイコン初心者なりに四苦八苦した末の動画ですが、少しでもご参考になれば幸いです。
      アセンブラとは相当な熟練者とお見受けします。私はまだまだ不勉強でC言語とPythonぐらいしかわかりません。
      マイコンは奥が深く、噛めば噛むほど面白いですね。またコメントでご教示いただければ幸いです。

    • @resistan-y1h
      @resistan-y1h 8 месяцев назад

      PICだったら
      リードスイッチの入力ピンが変化したら割り込みが入るように設定して
      リードスイッチが変化した際の割り込みで
      リードスイッチが導通していない場合は
      ハードウェアタイマーを3秒でオーバーフローするようにスタートさせて
      タイマーオーバーフロー割り込みでハードウェアPWMのブザーを鳴らす。
      リードスイッチが変化した時の割り込みで
      リードスイッチが導通していたらタイマーを無効化および初期化とブザーの停止処理
      みたいな感じにすればループなしで作れますよね。
      ラズパイPicoでも似たような感じの設計にした方がいいかもしれません。

  • @ledblack2474
    @ledblack2474 2 года назад +1

    物つくりは楽しいですよね
    リードスイッチでは扉の開閉隙間の調整が、難しくないですか
    圧力センサーなら扉が閉まったことを感知できるので、今回の目的に合っているかも

    • @Shartick
      @Shartick  2 года назад

      コメントありがとうございます。
      今回はリードスイッチありきで自分用に作ったのであまり困ってませんが、市販の冷蔵庫のようなドアスイッチにした方が利便性は高そうですね。
      次回は圧力センサーを試してみたいと思います!ありがとうございます。

  • @ショウ-m9y
    @ショウ-m9y 2 года назад

    ラズパイ4でもこのプログラムは
    動くでしょうか?

    • @Shartick
      @Shartick  2 года назад

      冒頭のimportとそれに伴うPin制御の記述はラズパイ4向けに書き換える必要がありますが、それ以外は通常のPythonでも動作すると思います!

    • @ショウ-m9y
      @ショウ-m9y 2 года назад

      @@Shartick 分かりました。ありがとうございます

  • @asa_212
    @asa_212 3 года назад

    リクエスト
    ラズベリーパイで7セグメントLEDを光らせる方法が知りたいです

    • @Shartick
      @Shartick  3 года назад

      リクエストありがとうございます!!
      デスマーチ社畜生活から抜け出したら必ず動画作ります!

  • @Dont_run_away_from_change.
    @Dont_run_away_from_change. 3 года назад

    電源の供給はどの様に行われておりますか?
    コンセント→ACアダプター→ラズパイ
    でしょうか?

    • @Shartick
      @Shartick  3 года назад

      はい、そのとおりでACアダプタを使っています。検証中はPCのUSBを使うこともあります。

  • @箱男-i7x
    @箱男-i7x 3 года назад

    自転車のホイールに磁石を、フロントフォークにリードスイッチをつければ、オンになる間隔からホイールの回転数を測定して、自転車の速度計なんか作れたりしますかね...?

    • @箱男-i7x
      @箱男-i7x 3 года назад +1

      サイクルコンピュータの仕組みを調べたところ、全くそのままでした...笑
      コメント欄で勝手に盛り上がってしまい、すみませんでした...

    • @Shartick
      @Shartick  3 года назад

      お見事です👏
      私も動画作る際に調べたのですが、まさにこのリードスイッチで実現しています。
      部品サイズの関係上、スポークの方に小さな磁石、フレーム側にリードスイッチや電池などを内蔵した「本体」を取り付けることが多いようです(改めて確認したら私が持ってるサイクルコンピュータもそうでした)

  • @eggplant2095
    @eggplant2095 3 года назад

    # 所定時間以上ドアが開いている場合
      if ((door_diff/1000) > alart_secs): の 1000とは何のことなのでしょうか?
    全然プログラミングのことがわからないので、教えていだだけたら嬉しいです。

    • @Shartick
      @Shartick  3 года назад +1

      ticks_ms()はミリ秒(1/1000秒)の数値を返してくれる関数なので、これを1000で割ってやると単位が秒になります。
      冒頭でalart_secsを30秒と定義したので、大小比較をする時に単位を秒に合わせる為に/1000しています。

  • @19591122
    @19591122 2 года назад

    # 1秒前にドアは閉まっていた
    if(door_time == 0):
    # 今も閉まっている
    if(value == 0):
    return [False,False,0]
    # 今は開いている
    else:
    return [True,False,time.ticks_ms()]
    else:
    # 1秒前にドアは開いていた
    if(value == 0):
    # 今は閉まってる
    return [False,False,0]
    1秒前がどうでも、今、閉まっていれば
    return [False,False,0]
    するから、
    if(door_time == 0):
    より先に
    if(value == 0):
    を判断した方が単純なプログラムになると思います。
    いかがでしょう?

    • @Shartick
      @Shartick  2 года назад +1

      はい、その通りです👏
      サンプルコードではステップが分かりやすいようにif elseをかなり冗長に書いています。
      丸々コピペというのも面白くないでしょうから、ぜひお好みに合わせて最適化するなど手を加えてみてください😆

  • @waisneos7082
    @waisneos7082 3 года назад

    はえー そんな簡単な仕組みなんか

    • @Shartick
      @Shartick  3 года назад

      そうなんですよ。調べてみてびっくりしました。
      いかつい基板でも入ってるのかと思ったらぽつんとガラス管が入ってるみたいです。

  • @phantom4drone77
    @phantom4drone77 2 месяца назад

    エンジニアです。
    この程度ならディスクリートですぐに作れちゃう。
    プログラムだとかえって高価
    液晶モニターつけたり、ログをとったり、LINEに通知したり
    大規模にするほど、マイコンは生きる

    • @Shartick
      @Shartick  2 месяца назад +1

      このサンプルと全く同じものをわざわざラズパイPicoで作る必要があるかといえば、無いです。555とかのタイマーICでも同じ事ができますし。
      おっしゃる通り複数機能を組み合わせて「製品」として完成するわけですが、動画としては1機能に絞って解説しないと要領を得ないものになってしまいますので。
      別動画ではネットワークに接続したりもしてますので、その辺りとも組み合わせてぜひお楽しみください。

    • @phantom4drone77
      @phantom4drone77 2 месяца назад

      @Shartick マイコンだと常時電源が必要になる。
      IC555でも高いぐらいで、安価な部品を作って、冷蔵庫が空けられると電源が入り、時定数回路で一定時間経過後に、点滅とアラームを鳴らす。
      これを単三電池1本で供給する。
      大半の時間は電源が入らないので、実際単三電池1本で一年は稼働し続ける。
      単三電池1本でLED点滅回路組むと半年は点滅し続けるので、不可能ではないかなと考えています。
      マイコンにしかできない”何か”を作っていきたいですね😀

    • @Shartick
      @Shartick  2 месяца назад +1

      安価を目指すのか、省電力長時間稼働を目指すのか、小型化、機能性、拡張性などなど、設計思想は皆さんそれぞれだと思います。
      それぞれの思想のなかで、ラズパイPicoを使って"何か"を作りたいと思った人の一助になれば幸いです。

  • @秋吉太郎
    @秋吉太郎 9 месяцев назад

    OpenPLCでプログラムを作成する方が簡単ですね。

  • @zutuku
    @zutuku 3 года назад

    磁石は、seria製?

    • @Shartick
      @Shartick  3 года назад

      この磁石はキャンドゥで買ったものです。
      だいたい何処の100円ショップでもこの手の磁石を取り扱っているみたいで助かります。

  • @seatron6135
    @seatron6135 3 года назад

    思った以上に小さかった

    • @Shartick
      @Shartick  3 года назад +1

      そうなんですよ、小さいですよね!
      磁石が反応する範囲も小さくてドア側に設置する磁石の位置調整が大変でした。

  • @ken6261
    @ken6261 3 года назад

    なかなかオーバースペックですね!
    タイマーIC 555とかでいいのでは

    • @Shartick
      @Shartick  3 года назад +1

      コメントありがとうございます。
      この動画は「ラズパイPicoとリードスイッチで簡単なものを作ってみる」が主目的なので😅 最終目的が「ドア開閉検出器を作ること」であればご指摘のとおりもっと適した方法があると思います。555はタイマーICの王道ですから、いつか「電子工作」を主眼に置いた動画も作ってみたいですね!

    • @ken6261
      @ken6261 3 года назад

      @@Shartick
      それは失礼しました、自分もラズパイとM5stackの勉強中なので参考にさせて頂きます。

  • @藤原光洋-p5w
    @藤原光洋-p5w 2 месяца назад

    メモリーリークは考慮しなくて良いのですか? 長期監視するプログラムは定期的にリセットが必要なのですが? ウォッチングタイマーも使って無いですし、ある程度実用化を考慮したプログラムの手本が見たいです。

    • @藤原光洋-p5w
      @藤原光洋-p5w 2 месяца назад

      ウォッチドグタイマーの間違いでした。

    • @Shartick
      @Shartick  2 месяца назад

      メモリリーク?どこにそんな余地があるのですか?高度なメモリ操作をしているならまだしも、この程度のコードでWDTを使う必要があるのであれば、そもそもコード自体に致命的な問題がある筈で先にそちらを見直すべきです。
      何をもって「実用的」と言われてるのか不明瞭ですが、実際年単位で使用しておりご心配のようなトラブルには遭遇していません。

    • @藤原光洋-p5w
      @藤原光洋-p5w 2 месяца назад

      @@Shartick マイコンで実用的な回路を組むにはマイコンは故障する物と考えて組む物と思います。 ブレッドボードで組む限り問題は起きないでしょうがスイッチが数m伸びるとスイッチの配線がノイズを呼び込むアンテナとなります。 マイコンの電源も瞬断やらカミナリのサージ電圧で誤動作を起こします。
      実用回路なら、同じ装置を3台用意して同じ働きをさせ、多数決回路でエラーを防ぐとか、コストダウンを求めるなら1台のマイコンで頻繁にリセットして装置のリセット前の状況を移動平均させて変化の平均を取りエラーを弾く等の設計が必要と思います。
      例えばですが、自動車には数十のマイコンが使われているらしいですね、トヨタは故障は少いらしいですが、韓国は多い。 マイコンが故障しないので有ればトヨタと韓国のメーカーで有意差は現れない筈です。 恐らくソフトウエアの稚拙さでしょう、フェイルセーフの考え方に差が有るのではないでしょうか、と思います。
      そこにプロとアマの違いが有ると思います。

    • @Shartick
      @Shartick  2 месяца назад

      えっと、プログラムの話ではなかったのですか?メモリリークの話はどこにいったんですか?
      話が逸れすぎて仰りたいとこがよく分かりません。回路設計?フェイルセーフの話?プロアマ論?
      恐れ入りますが要点をまとめてから投稿いただけますと幸いです。

    • @藤原光洋-p5w
      @藤原光洋-p5w 2 месяца назад

      @Shartick  釈迦に説法になります。 プログラマーの貴方にお願いしたい事ですが、コンピューター(マイコンを含む)コンピューターは誤動作してはなりません、類稀な信頼性が必要です。
      プログラム1行の実行速度が何mSか分かりませんが計算を簡単にする為に1mSと仮定しましょう。 滅多に起きない事を万が一と言いますが信頼性が万が一の場合、1/10000の場合10秒で起きてしまいます。 万が一に万が一を重ねて万万が一の場合69日でエラーが起きます。 万万が一に万万が一を重ねた場合、1890年となりますが、プログラム行が1万桁の場合、69日になります、この一例がメモリーリークなのでしょうね。
      前回、車の例を示しましたが、車の部品は1万点の部品で構成されているらしいです。 すると各部品の故障率は(10年程度の信頼性)の場合0.000001でなければなりません。 つまり部品のマイコンも、マイコンはハードとソフトで構成されています、するとソフトの信頼性はその2倍必要です。
      コンピューター(マイコンを含む)はバベルの塔でコンピューターを真に理解出来るのはプログラマーですね、プログラムを依頼する人はコンピューターを真に理解出来ない。 その断絶がバベルの塔の階段ですね、システムを理解出来て俯瞰出来るのはプログラマーのみですね。 プログラマーには深い見識が必要です。 システム工学や確率、その他数学や科学、その他の知識が必要です、数学と言えども高度な数学でなくとも、古代の数学ユークリッド幾何学程度を理解する見識が必要です。 ユークリッド幾何学は直線(定規)、円(コンパス)、直角(直角定規)の3点で証明する学問です、これで論理矛盾が無ければ良い、簡単でしょう。 
      私達は貴方に教えをこう立場ですがコンピューターのバベルの塔の段差で言葉が通じません。 貴方、プログラマーの歩み寄りが必要です、一言これが言いたかったです。