3duilabのアイコン画像
3duilab 2022年09月30日作成 (2022年09月30日更新)
製作品 製作品 閲覧数 769
3duilab 2022年09月30日作成 (2022年09月30日更新) 製作品 製作品 閲覧数 769

自動ライト(非接触空間センサー)

自動ライト(非接触空間センサー)

概要

非接触空間センサー「双方向ハンドセンサー」を使い部屋の明かりを自動制御しました。簡単そうですがカメラやLidar、他の非接触センサーでは難しいかもしれません。

動画

写真

明かりの制御は蛍光灯のリモコンから線を引き出してMOSFETでスイッチしています。最初は壁のスイッチをサーボモーターで制御する予定でした。試しに蛍光灯のリモコンを分解すると、ハードもソフトも簡単そうなのでこちらにしました。
センサーとコントローラ
リモコン

配線図

センサーで方向を判断し入室したときに点灯、退室で消灯します。リモコンのジャンパー線はGNDがあります。(リモコンの写真参照)
配線図

プログラム

AutoLight

from machine import PWM from Sensor_CLED import * def makePwm(gpio, freq, duty16): pwm = PWM(gpio) pwm.freq(freq) pwm.duty_u16(duty16) makePwm(pwmCled_gpio, 50, 1<<14) # set pwm def makeIndi(): val = True def closure(timer): nonlocal val CLed.setIndi(val) val = not val return closure indi = makeIndi() tim = Timer() tim.init(freq=3, mode=Timer.PERIODIC, callback=indi) # ***************** AutoLight ******************** class AutoLight(): AD_CRI = 300 WAIT_MS = 300 def __init__(self, pin): self.sw = GPIOOUT(pin) self.in0out7 = True self.isOn = False self.goOut = False def exec(self): adLst = Sensor.getAdLst() outSum = sum(adLst[5:]) if self.in0out7 else sum(adLst[0:3]) inSum = sum(adLst[5:]) if not self.in0out7 else sum(adLst[0:3]) isIn = inSum > self.AD_CRI isOut = outSum > self.AD_CRI inout = (isOut, isIn) if self.isOn: if not any(inout) and self.goOut: # turn off self.goOut = self.isOn = False self.swOn() else: self.goOut = (isOut and not isIn) elif isOut: self.isOn = True self.swOn() # turn on def swOn(self): self.sw(True) time.sleep_ms(self.WAIT_MS) self.sw(False) if not self.isOn: time.sleep_ms(self.WAIT_MS * 2) self.sw(True) time.sleep_ms(self.WAIT_MS) self.sw(False) # ***************** main ******************** if __name__ == '__main__': try: al = AutoLight(28) # output:28pin cled = CLed() Sensor.init() # *** initialize Sensor *** print('Row', ROW_LEN, '******************* ') cled.turnOn(5) time.sleep(1) while True: Sensor.setAd() cled.turnOn() al.exec() except KeyboardInterrupt: print("\nCtl+C") CLed.turnOn(0)

感想

  • やってみるととても楽しくて便利です。
  • 胸の位置は100%反応します。
  • 足元はセンサーの検出距離20センチを超えて反応しないことがあります。
  • 一人じゃない状況にはソフトの修正が必要です。

終わりに

一般的な電気製品はコモディティ化で下り坂ですがこれはチャンスかもしれません。マークされていない上、コピーが難しく、代替えの出来ない用途があるからです。不安定なところを創造力(想像力)で解決するのが現代の開発です。これを製品化して事業を始め、子どもたちに希望を残したいです。

リンク

YouTubeショート動画:https://youtube.com/shorts/MhElkg5Dx4U
website:https://interactive-hand-sensor.com/root/
ラズパイピコプログラム例:https://interactive-hand-sensor.com/root/raspberry-pi-pico-example
発売中:https://www.switch-science.com/products/6495/
Instagram:https://www.instagram.com/3duilab/?hl=ja
ツイッター:https://twitter.com/TakahiroMaeda3

2
3duilabのアイコン画像
赤外線フォトリフレクタを利用した次世代の非接触空間センサー「双方向ハンドセンサー」を開発しています。電子回路と組込みソフトウェアのエンジニアです。事故で指先を失いました(冬山で凍傷になって)😁 動画まとめ https://imgur.com/user/3duilab/posts  website https://interactive-hand-sensor.com/root/
ログインしてコメントを投稿する