宝くじ 売り場 山科k8 カジノNゲージの模型をラズパイで動かす “らずてつ”その8――スタートボタンを取り付けてみる仮想通貨カジノパチンコ愛知 県 パチンコ 新台

宝くじ 売り場 山科k8 カジノNゲージの模型をラズパイで動かす “らずてつ”その8――スタートボタンを取り付けてみる仮想通貨カジノパチンコ愛知 県 パチンコ 新台

パチンコ ファン 感謝 デー 東北k8 カジノ

パチンコ 沖縄 4 セグ ここまでの連載で、鉄道模型をラズパイでコントロールする方法についてイメージがつかめてきたかと思います。そこで最終目標の「トミックスレイアウトベースキット」に似た形で線路を配置し、シミュレーションしていきたいと思います。

 まずセンサーですが、2つある引き込み線にそれぞれ1個ずつ、またポイントの近くに1個ずつの計4個を配置します。センサーは以前工作した「TPR-105」です。以前は「S280」の長いレールに取り付けていましたが、短い「S140」のほうが取り回しが効きますので、こちらに変更しました。また「D.C.フィーダーN」の取り付け箇所にTPR-105を通す形で作りましたが、リード線の穴を開けた方がよいと思い、変更しました。

 これらを組み込んだのがこちらのレイアウトです。レイアウトベースキットではループを描いていますが省略し、カーブも「280-45」から半径が小さい「C343-45」にしてあります。

Raspberry PiレールにTPR-105を取り付けるRaspberry Pi背面はホットボンドで絶縁Raspberry Pi組み上げたレイアウト

 また、センサーがしっかりと動作しているのかを知るためにLEDをセンサーの抵抗と並列に入れました。センサー上を模型が通過して反応すると点灯する仕組みです。

Raspberry Piセンサーの抵抗と並列にLEDを取り付けるRaspberry Pi実際に設置している様子

 さてレイアウトですが、ボタンを押したら模型が走り出すようにしてみたいと思います。ボタンの入力についてはgpiozero「Button」というクラスで扱えます。ボタンが押されたらLEDが点灯する、という仕組みは以下のプログラムで実行できます。

#!/usr/bin/env python# -*- coding: utf-8 -*-from gpiozero import Button, LEDbutton = Button(13)led = LED(26)try: while True: if button.is_pressed: led.on() else: led.off()except: KeyboardInterruptled.off()button.py

 ここではラズパイのGPIO26(37番ピン)にLEDを接続し、ボタンスイッチをGPIO13(33番ピン)とGNDに接続しています。ボタンを押すとLEDが点灯し、Ctrl+Cでプログラムを終了します。

Raspberry Piボタンスイッチの配線

 このプログラムを「button.py」として保存しましょう。

$ python3 button.py

 と入力すると、ボタンを押すとLEDが光ります。

 クラスButtonにはこの他、ボタンが押されるまで入力を待つ「button.wait_for_press()」があります。これを使うことで、ボタンを押したら模型が発車する仕組みを作ることができます。gpiozeroのチュートリアルにあるサンプルプログラムを使うことで、この仕組みを知ることができます。

#!/usr/bin/env python# -*- coding: utf-8 -*-from gpiozero import Buttonbutton = Button(13)button.wait_for_press()print "ボタンが押されました"buttonpush.py$ python3 button.py

 では実際に模型が発車するようにしましょう。前回、センサーで模型を動かしたものを改造して使います。プログラムは以下のようになります。4つ取り付けたセンサーのうち、引き込み線にある3と4のセンサーを使って反転させています。

#!/usr/bin/env python# -*- coding: utf-8 -*-from gpiozero import Motor, Button, MCP3008import timemotor = Motor(forward=20, backward=21)button = Button(13)sen03 = MCP3008(channel=2)sen04 = MCP3008(channel=3)speed = 0.25 # 模型のスピードbutton.wait_for_press()try: motor.forward(speed) while True: rail3 = round(sen03.value * 100,2) rail4 = round(sen04.value * 100,2) print (rail3, rail4) time.sleep(0.01) #センサーの読み取り間隔 if rail3 >= 50: # フォトセンサーの返り値が50以上であれば反転 motor.stop() time.sleep(1) print("sensor1 detected") motor.backward(speed) time.sleep(15) motor.stop() time.sleep(1) if rail4 >= 50: motor.stop() time.sleep(1) print("sensor2 detected") motor.backward(speed) time.sleep(15) motor.stop() time.sleep(1) else: motor.forward(speed)except: KeyboardInterruptprint ("\nStop")motor.stop()movetest3.py

 これを「movetest3.py」として保存し、以下を実行してみましょう。引き込み線から発車した列車が、反対の引き込み線で反転して戻ります。

$ python3 movetest3.py仮想通貨カジノパチンコwru registration

コメントを残す