Connectez le commutateur tactile au GPIO du Raspberry Pi, et lorsque le commutateur est enfoncé, ": RUN" ": STOP" de la [commande SCPI](https://www.google.co.jp/search?hl=ja&as_q=SCPI commande) Est envoyé à l'oscilloscope. Utilisez pyVISA pour envoyer des commandes SCPI.
|BCM|Physical|I/O|une fonction |---+--------+---+---- | 2 |3 |IN |Commande RUN(:RUN)Problème | 3 |5 |IN |Commande STOP(:STOP)Problème |17 |11 |OUT|Éclairage LED
Les LED sont connectées via une résistance de limitation de courant de 3 kΩ.
scpi-commander.py
import RPi.GPIO as GPIO
import time
import visa
PORT_RUN = 2
PORT_STOP = 3
PORT_LED = 17
VISA_ADDR = "USB0::6833::1230::DS1Zxxxxxxxxxx::0::INSTR"
GPIO.setmode(GPIO.BCM)
GPIO.setup(PORT_LED, GPIO.OUT)
GPIO.setup(PORT_RUN, GPIO.IN)
GPIO.setup(PORT_STOP,GPIO.IN)
def open_dso():
rm = visa.ResourceManager()
resources = rm.list_resources()
#print(resources)
try:
dso = rm.open_resource(VISA_ADDR)
except:
print("Not Found:", resources)
else:
pass
#print("Detected")
return dso
def main():
try:
dso = open_dso()
except:
print("DSO Open Failed, exit.")
exit(1)
else:
print("DSO Open Success.")
try:
while True:
port_run = GPIO.input(PORT_RUN)
port_stop = GPIO.input(PORT_STOP)
if port_run == GPIO.LOW:
GPIO.output(PORT_LED,GPIO.HIGH)
#print(dso.query("*IDN?"))
print(":RUN")
dso.write(":RUN")
while(GPIO.input(PORT_RUN)==GPIO.LOW):
#print("pressing...")
time.sleep(0.1)
if port_stop == GPIO.LOW:
GPIO.output(PORT_LED,GPIO.HIGH)
print(":STOP")
dso.write(":STOP")
while(GPIO.input(PORT_STOP)==GPIO.LOW):
#print("pressing...")
time.sleep(0.1)
GPIO.output(PORT_LED,GPIO.LOW)
time.sleep(0.1)
except KeyboardInterrupt:
GPIO.cleanup()
main()
――Si vous utilisez la pédale, vous pouvez la faire fonctionner avec vos pieds même si les deux mains sont occupées.
C'est un article que j'ai utilisé comme référence lors de la création de cet article.
Connectez Oshiro et Raspeye (ou PC) à l'avance via USB.
> sudo python
>>> import visa
>>> rm = visa.ResourceManager()
>>> print(rm.list_resources())
('USB0::0x1AB1::0x04CE::DS1Zxxxxxxxxxx::0::INSTR')