pySerial 与 python 2.7 和 3.4 的差异

2024-03-30

我正在开发一个项目,需要通过串口将一些数字从 Windows 10 中的 python 发送到 arduino uno。作为一个简单的测试,我只想通过发送“2”来打开 LED,并通过从命令提示符发送“4”来关闭 LED,尽管我希望最终能够将 0-99 中的任何数字用于不同的目的。这是我的arduino代码:

    const int ledPin = 13; 
    byte b1, b2;
    int val;

    void setup() {
        Serial.begin(9600);
        pinMode(ledPin, OUTPUT);
    }

    void loop() {
        if (Serial.available() > 1) {
        b1 = Serial.read();
        b2 = Serial.read();
        val = ((b1-48)*10) + (b2-48);

        if (val == 2) {
            digitalWrite(ledPin, HIGH);
        }

        if (val == 4) {
            digitalWrite(ledPin, LOW);
        }
    }

这感觉像是一种 hack,但确实有效,因为 '0' 在 ASCII 表中从 48 开始(因此 2 = 50 等),这就是当我使用以下 python 代码发送一些数字时 arduino 实际接收到的内容:

    import serial
    ser = serial.Serial('COM4',9600)
    n = 2
    s = str(n)
    t = s.rjust(2,'0')
    ser.write(t.encode())

所以我发现,在桌面上使用 python 3.4 时,这确实会打开我的 LED,而使用 n = 4 则会将其关闭。无论我为 n 选择什么数字,它总是返回“2”,如“2 个字节已发送”,这就是我想要的。我遇到的问题是,这在 python 3.4 中一切都很好,但是当我尝试使用 python 2.7 在我的笔记本电脑上加载这个项目时,我得到一个“2L”返回而不是“2”,并且 LED 不再亮起打开。

我的笔记本电脑和台式机都使用 pySerial 3.3,并且我已经确认,当我在台式机上使用 python 2.7 时,会发生同样的事情(不起作用),而当我在笔记本电脑上使用 python 3.4 时,它会起作用。

我需要在这个项目中使用 python 2.7,因为我想稍后添加一些额外的硬件/API,那么这个“L”附加在串行返回上的意义是什么?为什么这不适用于 python 2.7?


因此,对于将来遇到此问题的任何人,我终于在各个地方的 Arduino 网站上找到了答案:http://playground.arduino.cc/interface/python http://playground.arduino.cc/interfacing/python

简而言之,python 3 字符串是 Unicode,而 python 2 字符串不是。

我在问题中提到的“L”我相信代表“Literal”,这意味着字符串已以其文字字符串形式发送,而不是 0-255 值的 ASCII 字节。因此,使用 python 2 解释 Arduino 上的串行数据要简单得多。对于此应用程序,您可以仅使用 serial.parseInt() 将字符串转换为 int,而不是使用 serial.Read() 读取单个字节。默认情况下,此函数有 1 秒超时,尽管您可以在设置块中添加 Serial.setTimeout(n),其中 n 是您想要等待的毫秒数(这对于我的特定情况很重要 - 我发现 5才能有效)。

至于 python 部分, ser.write('2') 使用 python 2 执行与我在 python 3 的问题中显示的相同的功能 - 不需要使用 0 或编​​码进行调整。

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

pySerial 与 python 2.7 和 3.4 的差异 的相关文章

  • 使用 Ardulink 命令 Arduino Uno

    我试图在我的 JAVA 应用程序中使用 Ardulink 库来命令我的 Arduino Uno 但没有成功 我不知道我错过了什么 这是我的代码 Link link Link getDefaultInstance boolean connec
  • 如何在变量周围打印双引号?

    例如 我们有 word Some Random Word print word 有没有更好的方法在变量周围打印双引号 Update From Python 3 6 https docs python org 3 whatsnew 3 6 h
  • pandas.concat 和 numpy.append 大数据集的内存错误

    我面临一个问题 我必须在循环中生成大型 DataFrame 每次两个 2000 x 800 pandas DataFrame 时进行 50 次迭代计算 我想将结果保存在内存中更大的 DataFrame 中 或者保存在类似字典的结构中 使用
  • !r 在 str() 和 repr() 中做什么?

    根据Python 2 7 12 文档 https docs python org 2 tutorial inputoutput html fancier output formatting s apply str and r apply r
  • 如何提高 PySerial 读取速度

    我目前正在构建一台使用 Arduino Mega2560 作为主控制器的机器 Arduino 通过串口连接 获取命令 执行它并每 1ms 吐出一堆测量数据 我有一个运行 Python 的 Raspberry Pi 为用户提供一个漂亮的 GU
  • 在具有分层索引的 pandas 数据框中使用 iloc 时出现问题

    每当我尝试向具有分层索引的数据帧上的 iloc 提供列表时 我都会收到此 ValueError 我不确定我是否做错了什么或者这是否是一个错误 我在使用 iloc 时没有遇到任何问题 就像使用非分层索引一样 这是使用 Pandas 0 12
  • openpyxl 图表误差线样式

    我被分配了一项 简单 的任务 即将一系列数据列收集到结果工作簿中 结果工作簿包含分析结果所需的公式和图表 这些数据是由我用 python 编写的图像分析应用程序生成的 作为一系列 Excel 工作簿 现在的问题是 openpyxl 会删除
  • Selenium find_elements_by_css_selector 返回一个空列表

    我正在尝试选择包含以下内容的所有 idcoupon link关键字与以下脚本 from selenium import webdriver from selenium webdriver common keys import Keys dr
  • 使用 numpy 计算文本文档之间的 Kullback-Leibler (KL) 距离

    我的目标是计算以下文本文档之间的 KL 距离 1 The boy is having a lad relationship 2 The boy is having a boy relationship 3 It is a lovely da
  • 将列的百分比设置为 0 (pandas)

    我有一个 pandas 数据框 我想将列的某些百分比设置为 0 假设 df 有两列 A B 1 6 2 7 3 8 4 4 5 9 我现在想将 df 的前 20 和后 20 的 B 设置为 0 A B 1 0 2 7 3 8 4 4 5 0
  • 在 Python 中通过 TCP 套接字发送文件

    我已经成功地将文件内容 图像 复制到新文件 然而 当我通过 TCP 套接字尝试同样的事情时 我遇到了问题 服务器循环未退出 客户端循环在到达 EOF 时退出 但服务器无法识别 EOF 这是代码 Server import socket Im
  • 通过iPhone音频插孔读取数据

    我正在寻找一种方法来读取通过 iPhone 的音频插孔从 Arduino 发送的原始数据 我搜索了很多并发现this https github com sanjibahmad Is Headphone Plugged In tree mas
  • Python Pandas 检查某个值在同一天内是否出现多次

    我有一个 Pandas 数据框 如下所示 我想做的是检查一个电台是否有变量yyy以及同一天的任何其他变量 如station1 如果这是真的 我需要删除包含的整行yyy 目前我正在使用iterrows 并循环搜索该变量出现的日期 将变量更改为
  • 从 iBeacon 接收 BLE 信号到 Bluno(arduino with BLE)

    我想从 iBeacon 到 Bluno 接收 rssi 信号和 UUID Arduino 板具有 BLE 对此有一些疑问 有没有从 BLE 到 BLE 接收 UUID 和 rssi 的解决方案 两个BLE设备可以互相通信吗 我想找一些网站来
  • 无法为“python 3.3”安装“pip”,但在“python 2.7”上运行良好

    我是 python 新手 但不是编程 我的目标是学习 Django 进行 Web 开发 我一直在尝试安装更高版本的python pip and Django 我可以安装pip for python 2 7很好 但现在我正在尝试安装它pyth
  • Functools.update_wrapper() 无法正常工作

    I use Functools update wrapper 在我的装饰器中 但看起来像update wrapper仅重写函数属性 例如 doc name 但不影响help 功能 我知道这些答案 https stackoverflow co
  • 带参数的多重继承

    我已经阅读了很多有关继承的内容 但我似乎无法理解为什么这会给我一个错误 使用Python 2 7 x class A object def init self value super A self init print First s va
  • 用于估计(一元)困惑度的 NLTK 包

    我正在尝试计算我所拥有的数据的困惑度 我正在使用的代码是 import sys sys path append usr local anaconda lib python2 7 site packages nltk from nltk co
  • 如何将当前日期分配给 odoo v8 中的日期字段?

    我想将当前日期分配给以下代码中的日期字段 start date calendar obj create cr uid name rec res act ion user id rec res asgnd to id start date l
  • scipy 的 curve_fit 函数的尺寸问题

    我对 python 中的曲线拟合以及一般的 python 都很陌生 目前 我正在尝试使用 scipy 中的 curve fit 模块来拟合 4 个光谱峰 简而言之 我的文本文件中有两列数据 所以我的第一步是将数据导入到两个数组中 一个包含

随机推荐

  • 单击 div 以外的正文时隐藏 div

    我想在单击除 div 之外的页面正文时隐藏所有 div 的隐藏 我的 div 是 div div class settingsBoxExpandItem style padding 3px My Account div div class
  • Scroll Bar 的滚动条不见了

    最近 在我的 Visual Studio 2012 版本中 我的滚动条在代码编辑器 文本编辑器 中丢失了 我需要将它们找回来 这不是工具 gt 选项 gt 文本编辑器 gt 显示垂直滚动条和水平滚动条复选框的问题 它们都被检查了 当它们没有
  • 将网页从 QtWebKit.webView 打印为 pdf PyQt4

    您好 我想要完成的是 我有一个带有自定义 QtWebKit QWebView 的 QWidget 它显示特定的网站 我想使用 python 和 PyQt 将该网页保存为 pdf from PyQt4 import QtCore QtGui
  • 什么是“ChromeWebToolbarDiv”?

    我使用 AJAX 发送请求 响应以 JSON 形式返回 我们的一些用户一直抱怨他们收到错误 这表明收到了无效的 JSON 我们在服务器上检查是否发送了有效的 JSON 进一步调试时 发现以下代码被附加到 JSON 中 导致 JSON 解析失
  • 在 Selenium 中设置用户数据/配置文件不起作用。硒蟒蛇

    由于某种原因 当我尝试设置用户数据 配置文件时 它不起作用 该代码运行良好 但一旦浏览器启动 我就无法登录到我的个人资料 我该如何解决这个问题 chrome options add argument user data dir Users
  • 如何忽略缩放设置

    IE忽略缩放设置不起作用 我的代码如下 为什么它不起作用 我收到错误消息 selenium common exceptions SessionNotCreatedException 消息 启动 Internet Explorer 时出现意外
  • 带有内部 select 子句和 group by 汇总的 sql order by

    我的查询如下所示 输出 电流输出 Role Cases prepped Completed State Member 1 10 5 50 State Member 2 10 7 70 State President 10 2 20 Summ
  • header/impl 关键字在 kotlin 中的含义是什么?

    就在不久前 当我探索 Kotlin github 存储库时 我发现了一些有趣的事情 Kotlin 现在似乎有一个 header 关键字 收藏H kt https github com JetBrains kotlin blob be95f6
  • string.Empty 与 "" - 这有变化吗?

    根据这个答案 https stackoverflow com a 2905422 386869 and string Empty略有不同 因为 创建一个对象 而string Empty才不是 该答案在该问题上得票最多 然而 这个答案 htt
  • 在实体框架的 where 子句中使用列表

    我正在尝试通过一对多表检索文档 ID 我想在 where 子句中使用列表来查找与列表中每个元素相关的所有 id List
  • Magento group by 日期字段上的子句

    我需要获取指定月份一天内 grand total 的订单总数 SUM MIN MAX 和 AVG 这就是我正在做的事情 collection gt getSelect gt columns SUM base grand total AS t
  • Kotlin - StateFlow 不向其收集器发出更新

    我的应用程序中有一个 UserStateModel 数据类 类型的 StateFlow private val userStateFlow MutableStateFlow
  • TextView 作为带有文本颜色操作的进度条?

    我正在努力改进我的应用程序的用户界面 在我使用的设计中 我有一个 TextView 它将在特定时间充当进度条 ruslt 应该看起来像这样 问题是 随着进度的变化 部分文本的颜色也会改变 我研究了android中的spannablestri
  • ASP.NET Web API 中是否有等效的@JsonView

    我在 Spring 和 Java 方面有更多的经验 但现在我正在从事 ASP NET Web API 项目 因此 在 Spring 中 我可以使用 JsonView 注释来注释我的 DTO 这样我就可以选择通过 REST 显示哪些数据 我发
  • 如何在 web.config 文件中存储字典对象?

    我想在我的网络配置文件中存储一个简单的键 值字符串字典 Visual Studio 可以轻松存储字符串集合 请参阅下面的示例 但我不确定如何使用字典集合来存储字符串集合
  • Cocoa-Touch:如何查看两个 NSDate 是否在同一天?

    我需要知道两个 NSDate 实例是否都来自同一天 有没有比获取 NSDateComponents 并比较日 月 年更简单 更好的方法 如果您的目标是iOS 8 和 OS X 10 9 或更高版本 then 乔的回答 https stack
  • libQt5XcbQpa.so.5:未定义的符号:FT_Property_Set

    当我尝试从 python 脚本运行 wkhtmltopdf 命令时出现此错误 usr bin wkhtmltopdf symbol lookup error usr lib x86 64 linux gnu libQt5XcbQpa so
  • 嵌套视图中的拥抱和压缩阻力

    我试图了解拥抱和抗压阻力是如何真正发挥作用的 我有这样的场景 我需要左侧两个标签 绿色容器内 和右侧两个标签 蓝色容器内 如图所示 我希望绿色容器能够容纳内容 Android 的wrap content 和蓝色容器来填充剩余空间 Andro
  • PostgreSQL 中的跨数据库查询[重复]

    这个问题在这里已经有答案了 我正在尝试在 Postgres 中构建查询 我的背景是 SQL Server 因此我遇到了一些语法挑战 我的查询需要访问两个独立服务器上的两个独立数据库 我需要在数据集之间进行连接 本质上 我在 db1 中有一个
  • pySerial 与 python 2.7 和 3.4 的差异

    我正在开发一个项目 需要通过串口将一些数字从 Windows 10 中的 python 发送到 arduino uno 作为一个简单的测试 我只想通过发送 2 来打开 LED 并通过从命令提示符发送 4 来关闭 LED 尽管我希望最终能够将