You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派4用Python读取AS5600传感器遇ModuleNotFoundError求助

解决树莓派4读取AS5600的ModuleNotFoundError问题

问题根源

你用的AS5600脚本是针对MicroPython编写的,而树莓派默认运行标准Python(CPython)。machine是MicroPython专属的硬件控制模块,CPython环境下无法直接使用,所以安装machine或micropython-machine均无效。

解决方案

方案1:改用CPython兼容的AS5600驱动

直接用树莓派CPython支持的库实现读取,步骤如下:

  • 开启树莓派I2C功能:
    1. 运行sudo raspi-config,进入Interface Options -> I2C选择启用。
    2. 重启树莓派:sudo reboot
  • 安装依赖库:
    sudo apt-get install python3-smbus2
    
  • 编写适配CPython的读取代码(示例):
    import smbus2
    import time
    
    AS5600_ADDR = 0x36
    RAW_ANGLE_H = 0x0C
    RAW_ANGLE_L = 0x0D
    
    bus = smbus2.SMBus(1)  # 树莓派4默认使用I2C总线1
    
    def read_angle():
        high_byte = bus.read_byte_data(AS5600_ADDR, RAW_ANGLE_H)
        low_byte = bus.read_byte_data(AS5600_ADDR, RAW_ANGLE_L)
        raw_angle = (high_byte << 8) | low_byte
        return (raw_angle / 4096) * 360
    
    if __name__ == "__main__":
        try:
            while True:
                print(f"当前角度:{read_angle():.2f}°")
                time.sleep(0.5)
        except KeyboardInterrupt:
            print("程序终止")
            bus.close()
    

方案2:在树莓派上运行MicroPython

如果坚持使用原GitHub脚本,可在树莓派上刷入MicroPython:

  1. 下载对应固件:
    wget https://micropython.org/download/rpi4/rpi4-20240602-v1.22.2.uf2
    
  2. 树莓派关机后按住BOOT键开机,此时会弹出U盘。
  3. 将下载的uf2文件复制到该U盘,树莓派会自动重启刷入MicroPython。
  4. 用Thonny IDE或串口工具(如picocom)连接树莓派,即可运行原脚本,此时machine模块可正常使用。

额外提示

  • CPython和MicroPython是完全不同的运行环境,不要在CPython下安装MicroPython专属模块。
  • 可通过i2cdetect -y 1命令验证AS5600是否被识别(正常会显示36)。

内容的提问来源于stack exchange,提问作者Toni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 10:21:39