いろんなデータがではじめたか?

 研究室ができてから2年がたち、だんだん装置もできてきて、新しい測定もできる兆しが出てきている。それが自分がいない場所で起こってたりするので、これはなかなか研究室っぽくて素晴らしいことです。 ただし一番の問題は自分の領分たるSACLAでのPINK-02実験の準備が万全ではないことです。これではどうしようもないので、みんなに負けないように頑張ろうと思います。 年明けに旅行してから家族親族全員が胃腸炎に倒れたので、復活して勢いを出していこうと思います。 人間ドックに初めて行きましたが、デブと診断されました。今年は運動も復活させないといけないということか。

Raspberry Piでリレーを動かす

そろそろミニバンクをつくらねば、ということで少しやる。

野田くんたちに任せっきりになっていたので申し訳ない。

このリレーをつかってみる。うごきました。



RaspberryPi4にリレーをつないで、GPIOをpythonでいじります。
tkinterをつかってGUIもつくりました。
RPiにVNC(リモートデスクトップ)接続もできたので、
遠隔操作もできました。

これはいいですね。
あとADコンバータをつなげば、ミニバンクのUIはできそう。

残念ながらRPiがなかなか手に入らない様子ですが。

 
コードはこちら
            
from tkinter import *
from tkinter import ttk
import RPi.GPIO as GPIO # RPi.GPIOモジュールを使用
import time

#GPIO initial set up
gpio_relay = [4, 17, 27, 22]
GPIO.setmode(GPIO.BCM)
for i in range(4):
    GPIO.cleanup(gpio_relay[i])
for i in range(4):
    GPIO.setup(gpio_relay[i], GPIO.OUT)
    GPIO.output(gpio_relay[i], 0)
    

#tk initial set up
root = Tk()
root.title('Checkbutton 1')


# Frame
frame1 = ttk.Frame(root, padding=(10))
frame1.grid()

# Checkbutton 1
v1 = BooleanVar()
v1.set(0) # 初期化
cb1 = ttk.Checkbutton(
    frame1, padding=(30), text='Relay 1',
    variable=v1,
    command=lambda: GPIO.output(gpio_relay[0], v1.get()))

# Checkbutton 2
v2 = BooleanVar()
v2.set(0) # 初期化
cb2 = ttk.Checkbutton(
    frame1, padding=(30), text='Relay 2',
    variable=v2,
    command=lambda: GPIO.output(gpio_relay[1], v2.get()))

# Checkbutton 3
v3 = BooleanVar()
v3.set(0) # 初期化
cb3 = ttk.Checkbutton(
    frame1, padding=(30), text='Relay 3',
    variable=v3,
    command=lambda: GPIO.output(gpio_relay[2], v3.get()))

# Checkbutton 4
v4 = BooleanVar()
v4.set(0) # 初期化
cb4 = ttk.Checkbutton(
    frame1, padding=(30), text='Relay 4',
    variable=v4,
    command=lambda: GPIO.output(gpio_relay[3], v4.get()))


exit_button = ttk.Button(
    root,
    text='Exit',
    command=lambda: root.quit()
)
            
# Layout
cb1.grid(row=0, column=0)
cb2.grid(row=0, column=1)
cb3.grid(row=0, column=2)
cb4.grid(row=0, column=3)
exit_button.grid(row=1, column=0, columnspan=2)

root.mainloop()
    
for i in range(4):
    GPIO.cleanup(gpio_relay[i])


コメント

このブログの人気の投稿

いろんなデータがではじめたか?

34 kAも流せました。