Schließen Sie den taktilen Schalter an GPIO von Raspberry Pi an, und wenn der Schalter gedrückt wird, ": RUN" ": STOP" von [SCPI-Befehl](https://www.google.co.jp/search?hl=ja&as_q=SCPI Befehl) Wird an das Oszilloskop gesendet. Verwenden Sie pyVISA, um SCPI-Befehle zu senden.
|BCM|Physical|I/O|Funktion |---+--------+---+---- | 2 |3 |IN |Führen Sie den Befehl aus(:RUN)Problem | 3 |5 |IN |STOP-Befehl(:STOP)Problem |17 |11 |OUT|LED-Beleuchtung
Die LEDs sind über einen 3kΩ Strombegrenzungswiderstand angeschlossen.
--Bitte installieren Sie pyUSB, pyVISA, pyVISA-py auf Raspeye mit dem Befehl pip im Voraus.
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()
――Wenn Sie den Fußschalter verwenden, können Sie ihn auch dann mit Ihren Füßen bedienen, wenn beide Hände besetzt sind.
Dies ist ein Artikel, den ich beim Erstellen dieses Artikels als Referenz verwendet habe.
Verbinden Sie Oshiro und Raspeye (oder PC) im Voraus über USB.
> sudo python
>>> import visa
>>> rm = visa.ResourceManager()
>>> print(rm.list_resources())
('USB0::0x1AB1::0x04CE::DS1Zxxxxxxxxxx::0::INSTR')
Recommended Posts