![](/img/trans.png)
[英]How can I use an Arduino Ultrasonic Sensor connected to an Arduino UNO to measure distance using Pyfirmata or Python Generally?
[英]How to use an Arduino joystick button with Pyfirmata
我在 Arduino 中制作了一个使用 PyFirmata 和操纵杆的程序。 除按钮外,一切正常。 我的理解是,我知道我需要先写一个电压,但之后当我读取该值时,无论如何它都保持在 1。 为了确保我的主板或操纵杆或其他东西没有故障,我使用 c++ 默认 Arduino 语言运行它并且它工作。 请注意,我是 Arduino 的新手,所以请记住这一点。 这是我的代码:
from pyfirmata import Arduino
from pyfirmata.util import Iterator
import time
# Setup
try:
board = Arduino('COM6')
iterator = Iterator(board)
iterator.start()
print("Successfully Connected to Arduino Board")
except:
print("ERROR: Could Not Connect to Arduino Board")
board = None
exit()
joystick_x = board.get_pin("a:0:i")
joystick_y = board.get_pin("a:1:i")
joystick_switch = board.digital[3]
dt = 0.1
val_x, val_y, val_s = .5, .5, 0
joystick_switch.write(1)
while True:
time.sleep(dt)
val_x = joystick_x.read()
val_y = joystick_y.read()
val_s = joystick_switch.read()
print(val_s)
我想出了答案。 使用 PyFirmata 编写时,您无法再次正确读取它。 虽然在 c++ 你可以。 所以为了解决这个问题,我编辑了我的电路,以便我写入另一个引脚,然后在它们之间切换操纵杆,最后进行模拟读取。 我必须进行模拟读取,因为一些电流会通过。 为了解决这个问题,我使用了数学库中的地板 function 来获得正确的值。 感谢所有试图提供帮助的人。 这是任何想要查看它的人的代码:
from pyfirmata import Arduino, PWM, INPUT, OUTPUT
from pyfirmata.util import Iterator
import time
from math import floor
# Setup
try:
board = Arduino('COM6')
print("here")
iterator = Iterator(board)
iterator.start()
print("Successfully Connected to Arduino Board")
except:
print("ERROR: Could Not Connect to Arduino Board")
board = None
exit()
joystick_x = board.get_pin("a:0:i")
joystick_y = board.get_pin("a:1:i")
joystick_x.enable_reporting()
joystick_y.enable_reporting()
joystick_switch = board.get_pin("a:3:i")
joystick_switch2 = board.digital[2]
joystick_switch.enable_reporting()
dt = 0.1
val_x, val_y, val_s = .5, .5, 0
joystick_switch2.write(1)
while True:
time.sleep(dt)
val_x = joystick_x.read()
val_y = joystick_y.read()
val_s = floor(joystick_switch.read())
# if val_x is None or val_y is None or val_s:
# val_x, val_y, val_s = .5, .5, 0
print(val_s)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.