我在和我的覆盆子斗争。终端打印出一个浮点数除以零,但我没有在代码中除以任何东西。 我已经重置了整个Pi,并重新安装了所有东西。重置后的第一次运行成功,但之后每次运行都会显示以下错误
如果你能帮我,那就太棒了! 谢谢
Traceback (most recent call last):
File "robot2.py", line 43, in <module>
kit.servo[servo1].angle = length1
File "/usr/local/lib/python3.6/site-packages/adafruit_servokit.py", line 150, in __getitem__
servo = adafruit_motor.servo.Servo(self.kit._pca.channels[servo_channel])
File "/usr/local/lib/python3.6/site-packages/adafruit_motor/servo.py", line 103, in __init__
super().__init__(pwm_out, min_pulse=min_pulse, max_pulse=max_pulse)
File "/usr/local/lib/python3.6/site-packages/adafruit_motor/servo.py", line 45, in __init__
self.set_pulse_width_range(min_pulse, max_pulse)
File "/usr/local/lib/python3.6/site-packages/adafruit_motor/servo.py", line 49, in set_pulse_width_range
self._min_duty = int((min_pulse * self._pwm_out.frequency) / 1000000 * 0xffff)
File "/usr/local/lib/python3.6/site-packages/adafruit_pca9685.py", line 71, in frequency
return self._pca.frequency
File "/usr/local/lib/python3.6/site-packages/adafruit_pca9685.py", line 145, in frequency
return self.reference_clock_speed / 4096 / self.prescale_reg
ZeroDivisionError: float division by zero
Traceback (most recent call last):
File "robot2.py", line 43, in <module>
kit.servo[servo1].angle = length1
File "/usr/local/lib/python3.6/site-packages/adafruit_servokit.py", line 150, in __getitem__
servo = adafruit_motor.servo.Servo(self.kit._pca.channels[servo_channel])
File "/usr/local/lib/python3.6/site-packages/adafruit_motor/servo.py", line 103, in __init__
super().__init__(pwm_out, min_pulse=min_pulse, max_pulse=max_pulse)
File "/usr/local/lib/python3.6/site-packages/adafruit_motor/servo.py", line 45, in __init__
self.set_pulse_width_range(min_pulse, max_pulse)
File "/usr/local/lib/python3.6/site-packages/adafruit_motor/servo.py", line 49, in set_pulse_width_range
self._min_duty = int((min_pulse * self._pwm_out.frequency) / 1000000 * 0xffff)
File "/usr/local/lib/python3.6/site-packages/adafruit_pca9685.py", line 71, in frequency
return self._pca.frequency
File "/usr/local/lib/python3.6/site-packages/adafruit_pca9685.py", line 145, in frequency
return self.reference_clock_speed / 4096 / self.prescale_reg
ZeroDivisionError: float division by zero
Traceback (most recent call last):
File "robot2.py", line 43, in <module>
kit.servo[servo1].angle = length1
File "/usr/local/lib/python3.6/site-packages/adafruit_servokit.py", line 150, in __getitem__
servo = adafruit_motor.servo.Servo(self.kit._pca.channels[servo_channel])
File "/usr/local/lib/python3.6/site-packages/adafruit_motor/servo.py", line 103, in __init__
super().__init__(pwm_out, min_pulse=min_pulse, max_pulse=max_pulse)
File "/usr/local/lib/python3.6/site-packages/adafruit_motor/servo.py", line 45, in __init__
self.set_pulse_width_range(min_pulse, max_pulse)
File "/usr/local/lib/python3.6/site-packages/adafruit_motor/servo.py", line 49, in set_pulse_width_range
self._min_duty = int((min_pulse * self._pwm_out.frequency) / 1000000 * 0xffff)
File "/usr/local/lib/python3.6/site-packages/adafruit_pca9685.py", line 71, in frequency
return self._pca.frequency
File "/usr/local/lib/python3.6/site-packages/adafruit_pca9685.py", line 145, in frequency
return self.reference_clock_speed / 4096 / self.prescale_reg
ZeroDivisionError: float division by zero
Traceback (most recent call last):
File "robot2.py", line 43, in <module>
kit.servo[servo1].angle = length1
File "/usr/local/lib/python3.6/site-packages/adafruit_servokit.py", line 150, in __getitem__
servo = adafruit_motor.servo.Servo(self.kit._pca.channels[servo_channel])
File "/usr/local/lib/python3.6/site-packages/adafruit_motor/servo.py", line 103, in __init__
super().__init__(pwm_out, min_pulse=min_pulse, max_pulse=max_pulse)
File "/usr/local/lib/python3.6/site-packages/adafruit_motor/servo.py", line 45, in __init__
self.set_pulse_width_range(min_pulse, max_pulse)
File "/usr/local/lib/python3.6/site-packages/adafruit_motor/servo.py", line 49, in set_pulse_width_range
self._min_duty = int((min_pulse * self._pwm_out.frequency) / 1000000 * 0xffff)
File "/usr/local/lib/python3.6/site-packages/adafruit_pca9685.py", line 71, in frequency
return self._pca.frequency
File "/usr/local/lib/python3.6/site-packages/adafruit_pca9685.py", line 145, in frequency
return self.reference_clock_speed / 4096 / self.prescale_reg
ZeroDivisionError: float division by zero
正如其他人所指出的,错误来自库代码,并且没有被
try
捕获以将其转换为friendly error message。您只能通过检查另一个库的实现来判断,但是self.prescale_reg
中有问题的值实际上是通过i2c总线从控制器设备读取的值在Adafruit Forums: RaspberryPi Stepper HAT - example code not working上有一个类似的例子,它被诊断为使用GPIO运行的两个程序之间的冲突
我将仔细检查与控制器设备的物理i2c连接,确保当您使用
i2cdetect
(例如Adafruit Learn: Adafruit 16 Channel Servo Driver with Raspberry Pi: Configuring Your Pi for I2C)扫描i2c总线时,它会做出响应,并确保您的代码中没有对i2c的GPIO引脚的任何其他冲突使用相关问题 更多 >
编程相关推荐