ミニバンクを作ろう2025

イメージ
 ミニバンク2025を電通大でやりました。5台が使える状態まで完成しました。2年前よりも先まで進みました。いろんな意味で異常な会が無事終わって良かったです。 全国から25名(学生15名、スタッフ10名)のご参加を頂きました。(韓国からも一名) 新規に5台の40テスラミニバンクおよび2個のパルスマグネットを製作した。すべて高電圧テスト、パルス磁場発生に成功。さらに複数グループで強磁性体の磁化測定まで成功。 手を動かして作ることで、パルス強磁場の発生法を理解し、心理的障壁が無くなった。 参加した研究者同士・若手学生同士の親交が深まった。 ご参加頂きありがとうございました!! 準備 組み立て開始 電流計 初日夜 2日目 3日目コイル巻き お手製トリガージェネレーター カチッとな 4日目だいたい完成 充電接地、放電、磁化測定まで・・・ ’ たたずむミニフィグたち 感想を言い合う お手製トリガー発生器で安定的に放電できたのも良かった。 できたミニバンクは会議室の側室に一時保管。調布祭とかぶって搬出は後日に。

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])


コメント

このブログの人気の投稿