使用 Python 模块 SMBus、Raspberry Pi 和 Arduino 时出现输入/输出错误

2024-01-06

我已经连接了一个树莓派 http://en.wikipedia.org/wiki/Raspberry_Pi and 彩虹杜伊诺 http://en.wikipedia.org/wiki/List_of_Arduino_boards_and_compatible_systems#Software-compatibility_only和自制的一起I²C http://en.wikipedia.org/wiki/I%C2%B2C电平转换器,并安装了Python http://en.wikipedia.org/wiki/Python_%28programming_language%29 module SMBus http://www.acmesystems.it/i2c,Raspberry Pi 可以与 Rainbowduino 通信,但在尝试该命令时,我经常收到输入/输出错误消息bus.write_i2c_block_data(address, signal, data).

It says:

IOError: [Errno 5] 输入/输出错误

为什么会发生这种情况以及如何修复或忽略这些错误?


长话短说,很多人都被这个问题困扰,我发现一个非常简单的解决方法如下。

它会让你忽略错误并保持 tx/rx-ing,调用 i2cdetect 似乎会以某种方式重新初始化总线,而不是 arduino 从中消失。

我在这里发布了如何找到此解决方案的解释(现在正在等待 mod 批准)

try:
    bus.write_i2c_block_data(address, signal, data)
except IOError:
    subprocess.call(['i2cdetect', '-y', '1'])
    flag = 1     #optional flag to signal your code to resend or something

即使这允许 Pi 继续传输坏数据,仍然会发送到 arduino。我发现解决这个问题的最简单方法是在数据块的末尾添加一个额外的校验和字节。

我将消息的每个字节添加到一个字节变量中,允许值翻转,然后为校验和字节分配将整个消息求和为零所需的任何值。

然后,arduino 可以通过对所有字节求和来检查每个传入的传输。如果消息的总和不为零,则将其视为错误传输而被忽略。

我还为我的消息分配了一个单字节消息 ID,该 ID 在每次成功传输后都会递增,从而消除了意外重复发送的可能性。但这可能并不是真正必要的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Python 模块 SMBus、Raspberry Pi 和 Arduino 时出现输入/输出错误 的相关文章

  • Tkinter - 打开一个窗口并关闭另一个窗口

    我想要一个登录屏幕 当登录成功时 屏幕将关闭并创建一个新屏幕 问题是 当我执行以下代码时 两个屏幕同时打开 如果您有任何改进代码的建议 请提出 from Tkinter import import mysql connector impor
  • Opencv未找到所有轮廓

    我试图找到该图像的轮廓 但是该方法查找轮廓只返回1轮廓 轮廓突出显示image 2 我正在努力寻找all外部轮廓就像这些圆圈 里面有数字 我究竟做错了什么 我可以做什么来实现它 image 1 image 2 以下是我的代码的相关部分 th
  • 如何将自定义 CSS 添加到脆皮表单?

    我正在尝试在脆皮表单的帮助下为我的网站创建一个响应式表单 我没有使用引导程序 我想将自定义 CSS 添加到脆皮表单以匹配我的整个网站 HTML
  • 如何忽略在另一个任务的 run() 内触发的 Luigi 任务的失败

    考虑以下任务 import luigi class YieldFailTaskInBatches luigi Task def run self for i in range 5 yield FailTask i j for j in ra
  • 我知道 scipy curve_fit 可以做得更好

    我使用 python numpy scipy 来实现此算法 用于根据地形坡向和坡度对齐两个数字高程模型 DEM 用于量化冰川厚度变化的卫星高程数据集的联合配准和偏差校正 C Nuth 和 A K b doi 10 5194 tc 5 271
  • Python 3.8 的点子

    如何安装适用于 Python 3 8 的 Pip 我将 3 8 设置为我的默认 Python 版本 sudo apt install python3 8 pip gives 无法找到包 python3 8 pip 和跑步 python3 8
  • 在 python 中读取具有恶意字节 0xc0 的文件,导致 utf-8 和 ascii 出错

    尝试将制表符分隔的文件读入 pandas 数据帧 gt gt gt df pd read table fn na filter False error bad lines False 它会出错 如下所示 b Skipping line 58
  • 如何获取 ndarray 的 x 和 y 维度 - Numpy / Python

    我想知道是否可以分别获取 ndarray 的 x 和 y 维度 我知道我可以使用ndarray shape获取表示维度的元组 但如何在 x 和 y 信息中分离它 先感谢您 您可以使用元组拆包 y x a shape
  • Tensorflow无法分配设备进行操作

    我正在尝试跑步NVidia 脸部生成器演示 https github com tkarras progressive growing of gans在我的电脑上 我使用的是 Windows 10 我已经下载了源代码 并尝试按照页面下方的步骤
  • 预期设备类型为 cuda 的对象,但在 Pytorch 中获得了设备类型 cpu

    我有以下计算损失函数的代码 class MSE loss nn Module metric L1 L2 norms or cosine similarity mode training or evaluation mode def init
  • Google Cloud SDK 安装失败 UnicodeDecodeError:“ascii”编解码器

    我在安装时遇到以下错误谷歌云SDK https cloud google com sdk docs 在我的 Windows 10 计算机上 ERROR gcloud failed to load ascii codec can t deco
  • subprocess.Popen args 参数的最大长度是多少?

    我在用Popen http docs python org library subprocess html using the subprocess modulesubprocess 模块中的函数来执行命令行工具 subprocess Po
  • python执行列表和函数列表[重复]

    这个问题在这里已经有答案了 我正在将 Python 2 7 与 Autodesk Maya 结合使用 这是我的问题的一个例子 import maya cmds as m def a passedString print this passe
  • 获取小部件的背景颜色 - 真的

    我无法获取小部件的实际背景颜色 在我的特殊情况下 我在使用 QTabWidget 中的小部件时遇到问题 这是在Windows7上 因此 经典的小部件有一些灰色背景 而选项卡内的小部件通常用白色背景绘制 I tried def bgcolor
  • 在组织内部分发我的 python 模块

    我用 python 制作了一些模块 我想将它们分发到我的组织内 这些模块已经存储在BitBucket中 例如 有什么方法可以使用 pip install 来分发它们吗 正确的方法是什么 您可以从 GitHub 进行 pip 安装 并且应该能
  • 如何使用高复制数据存储

    好的 我已经看过了video http www google com events io 2011 sessions more 9s please under the covers of the high replication datas
  • 如何编写凯撒密码 Python

    我不知道如何开始编写程序 input input Input the text you would like encrypted def cipher text letter code for i in input number code
  • Python 类:通过传递值实现单例还是非单例?

    我有一个 Python 3 类 目前是使用 a 定义的单例 singleton装饰器 但有时需要not成为单身人士 问题 是否可以在从类实例化对象时执行类似于传递参数的操作 并且该参数确定该类是否是单例 我试图找到一种替代方法来复制类并使其
  • 从Python中的URL中提取域[重复]

    这个问题在这里已经有答案了 我有一个像这样的网址 http abc hostname com somethings anything 我想得到 hostname com 我可以使用什么模块来完成此任务 我想在python2中使用相同的模块和
  • Python:定义多个相同类型的变量?

    可能是重复的 但至少我无法通过搜索这些术语找到答案 在Python中有没有更快的方法来做到这一点 level1 level2 level3 我试过了 level1 level2 level3 但这似乎创建了该对象的副本 这不是我想要的 和

随机推荐

  • ARM 周期精确模拟器

    是否有免费且周期精确的 ARM Cortex A9 模拟器 我认为 ARM IDE 提供了某种分析器 但首先我不确定它是否提供命令行界面 其次它不是免费的 我希望能从 GNU 找到一些东西 但我找不到 没有可用于最新 ARM 内核的免费周期
  • 以编程方式获取 12 Hive 的目录路径

    有没有办法以编程方式获取12 Hive的目录路径 我正在创建一个功能 将文件传递到 12 配置单元中的 XML 目录 并且我不想在代码中硬编码目录路径 是否有任何对象模型属性将 12 Hive 目录路径字符串公开为属性 您可以使用 Micr
  • SQL DataReader 网络使用限制

    我有这样的想法 不知道好坏 我有实用程序 它通过 reglament 连接到 SQL Server 并将一些数据获取到应用程序 数据很简单 2 个 varchar 文本属性 但数据数量约为 300 万行 因此 我的应用程序非常频繁地使用网络
  • 使用 PHP Simple HTML DOM Parser 之前登录 ASP 网站

    我正在使用 PHP Simple HTML DOM Parser 来解析来自游戏 ASP 网站的数据 我需要获取的数据仅对注册用户可见 因此在开始使用之前我需要一些东西来登录网站 有人可以建议我一个脚本或可以做到这一点的东西吗 预先非常感谢
  • 如何在 guile-2.0.11 的 macOS Sierra 版本上修复 libguile/stime.c?

    在此输入链接描述 http lists gnu org archive html bug guile 2016 06 msg00252 htmlguile 2 0 11 的构建因以下错误而停止 Undefined symbols for a
  • 如果命名空间也定义为默认值,则强制 XDocument 不使用命名空间前缀

    我有一个 xml 文件 其中指定了带或不带名称空间前缀的默认名称空间 当我生成 xml 输出时 我会为所有 xml 元素添加前缀 由于我使用的是默认命名空间 有没有办法摆脱前缀 class Program static void Main
  • 物理内存的对齐是如何保证的?

    malloc 返回适合任何内置类型的内存 如果需要更具体的对齐 例如 16 或 32 字节 可以在应用程序级别完成 但这种对齐是在虚拟内存级别 如何保证底层物理内存也处于相同的对齐方式 虚拟内存是在页面级别实现的 因此每个虚拟机页面在加载到
  • 从 F# 中的序列中删除单个非唯一值

    我有一个代表 F 中骰子的整数序列 在所讨论的游戏中 玩家有一池骰子 可以选择玩一个 受某些规则约束 并保留其余的 例如 如果玩家掷出 6 6 和 4 并决定玩一个 6 是否有一种简单的方法可以返回仅删除一个 6 的序列 Seq filte
  • Python - 快速批量修改PNG

    我编写了一个 python 脚本 以独特的方式为 OpenGL 着色器组合图像 问题是我有大量非常大的地图 需要很长时间来处理 有没有办法以更快的方式写这个 import numpy as np map data image data fo
  • 反应本机构建错误:包 android.support.annotation 不存在

    我必须完全重写这个问题 我有一个反应本机 Android 应用程序 当我建造apk文件与 gradlew assembleRelease x bundleReleaseJsAndAssets 一切顺利 但之后就完全停止编译了 甚至react
  • 无限斐波那契数列

    我正在尝试使用序列在 F 中模仿 Haskell 著名的无限斐波那契列表 为什么以下序列的计算结果不符合预期 它是如何被评估的 let rec fibs lazy Seq append Seq ofList 0 1 Seq map2 fib
  • Wicket 是适合单页应用程序的 Web java 框架吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • linq toEntity vs Fluent nhibernate vs linq to sql(帮助)

    我必须为新闻频道建立一个网站 请帮我决定使用哪种技术进行数据操作 1 实体连接 2 Linq 到 SQL 3 流畅的NHibernate 4 ADO Net 网站将基于 ASP Net MVC 和 C 主要问题 1 应该易于维护和扩展 2
  • Visual Studio Code Intellisense 不适用于 Javascript

    我在 Windows 和 Mac 上使用 Visual Studio Code VSC 0 10 11 为了解决这个问题 我有这个小 JavaScript 片段 use strict const os require os console
  • 每天在 8:00、12:30、17:00 运行 Gmail Google Apps 脚本

    我需要每天运行 Google Apps 脚本 3 次 8 00 12 30 17 00 这个怎么做 我已经看过了Triggers 更具体地说Time driven 小时计时器 但是Every hour Every 2 hours Every
  • 如何获取扩展列表视图项中复选框的ID?

    我有一个扩展列表视图 其中父节点和子项目中都有复选框 所有数据均来自网络服务 因此是动态的 附图 现在在菜单项上单击 我想获取所有复选框状态 请指导我如何获取其中使用的复选框的 ID 附代码 public class Object Secu
  • 获取当前页面的url

    在使用 GAS HtmlService 的 Web 应用程序上 我需要获取当前页面的 url 以在模板中构建新链接 该网络应用程序将在 Google 站点页面 GAS 作为小工具 中运行 但也可以独立运行 我正在尝试 var pageUrl
  • 使用 Open XML sdk 检索内容控件时出现问题

    我正在开发一个可以生成Word文档的解决方案 Word文档是根据已定义内容控件的模板文档生成的 当我的模板中只有一个内容控件时 一切都很顺利 但在使用更多内容控件扩展模板文档后 我遇到了异常 我似乎没有找到内容控件 这是我的方法 priva
  • UIWebView PaginationMode总是显示白色背景,如何使其透明?

    我尝试使用 paginationMode 为 iOS 7 进行 html 内容分页 set webview to transparent webView backgroundColor UIColor clearColor webView
  • 使用 Python 模块 SMBus、Raspberry Pi 和 Arduino 时出现输入/输出错误

    我已经连接了一个树莓派 http en wikipedia org wiki Raspberry Pi and 彩虹杜伊诺 http en wikipedia org wiki List of Arduino boards and comp