ラズパイでスイッチボット的なの作ろうよって話
ラズパイで接点のオンオフしたいよね?したくない?
import discord
import time
from discord import app_commands
import RPi.GPIO as GPIO
TOKEN = ""
#CHANNELID =
intents = discord.Intents.default()
intents.message_content=True
client = discord.Client(intents=intents)
tree = app_commands.CommandTree(client)
GPIO.setmode(GPIO.BCM)
GPIO.setup(16,GPIO.OUT)
@client.event
async def on_ready():
print('ログインしました')
await tree.sync()
@tree.command(name="rbutton1p",description="1P")
async def button1P(interaction: discord.Interaction):
button1 = discord.ui.Button(label="A",style=discord.ButtonStyle.red,custom_id="A")
view = discord.ui.View()
view.add_item(button1)
await interaction.response.send_message("ボタンだよ",view=view)
@client.event
async def on_interaction(inter:discord.Interaction):
try:
if inter.data['component_type'] == 2:
await on_button_click(inter)
#elif inter.data['component_type'] == 3:
#await on_dropdown(inter)
except KeyError:
pass
async def on_button_click(inter:discord.Interaction):
custom_id = inter.data["custom_id"]
if custom_id == "A":
GPIO.output(16,GPIO.HIGH)
time.sleep(0.2)
GPIO.output(16,GPIO.LOW)
client.run(TOKEN)
ディスコードBOTを使ってラズパイに指示を出す想定をしています。
図面上のリレーはアマゾンとかでモジュール単位で安く売ってるよ。
実はスイッチボットって言ったけど家電のオンオフとかは考えてなくて、実体配線図にもあるようにゲーム機のボタンにはんだ付けする想定。
これでオンライン対応してないゲームでも理屈上は対戦できるんだよね。
DS、GBA世代のポケモンでオンライン対戦とかできるよ。実機が2台手元にあって、画面配信さえできればね。夢がある話じゃないかな?