0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Python和PinPong库控制Arduino

话说科技 2023-10-13 10:59 次阅读

Python程序员编程Arduino时面临的第一个挑战是语言不同。Arduino IDE使用的是受C和C++启发的语言。实际上,像Arduino这样的平台与Python非常搭配,特别适用于需要与传感器和其他物理设备集成的应用程序。如果您已经掌握了Python的基础知识,那么您可以通过使用Python来控制Arduino来入门。本文目的主要是向您展示如何使用PinPong库通过Python与Arduino进行通信,以帮助您开发自己的电子项目。

一、为什么是PinPong库?

PinPong库是一个用于控制开源硬件开发板的Python库。它基于Firmata协议,并兼容MicroPython语法。使用PinPong库,您可以使用Python代码控制各种常见的开源硬件设备。其基本原理是将特定的固件烧录到硬件板上,通过串行通信使板与计算机之间进行通信以执行各种命令。PinPong库简化了与 Arduino 板上的数字引脚和模拟引脚进行交互的过程。通过 PinPong,您可以使用 Python 代码控制 Arduino 的输入和输出,包括读取传感器数据、控制执行器等。

“PinPong”的名称源自“Pin”和“Pong”,其中“Pin”指的是硬件板上的引脚,而“PinPong”听起来像“乒乓球”,代表信号的来回传递的特性。 PinPong库的设计旨在使开发人员在开发过程中不受特定硬件模型的限制,使他们能够专注于软件实现。即使您最初使用Arduino开发程序,也可以通过修改硬件参数轻松切换到另一个兼容的开发板,如PinPong板。

二、PinPong库的主要特点

高度灵活:支持的Arduino板包括Uno、Leonardo、Mega2560、ESP32板(如HandPy)、micro:bit、Unihiker(行空板)等。它还支持50多种传感器,并将逐步支持其他开发板和扩展库。

与MicroPython兼容:MicroPython是Python编程语言的一个变种,以其简单和易读性而广为人知和使用。通过与MicroPython兼容,PinPong简化了开发过程,使开发人员能够利用他们现有的Python知识来编程和控制硬件。

三、如何安装PinPong库

在安装PinPong库之前,请确保计算机上已安装Python 3。下面分别介绍如何在Windows、Linux、Mac OS安装PinPong库。

在Windows上安装PinPong库

Python 3下载完成后,按照提示进行安装。注意安装过程的最后一步,确保选中“Add to PATH”选项,将Python添加到系统的环境变量中。

打开命令提示符。使用Win+R快捷键,输入“cmd”,然后按Enter键。

安装PinPong库。在命令提示符窗口中输入“pip install pinpong”,等待片刻,直到安装完成。

信息查询。要获取当前版本信息、官方文档网站、库列表和端口号,请在“帮助命令”提示中输入“pingpong”。

在Linux上安装PinPong库

安装了Python 3之后,您可以通过在终端中输入“sudo pip install pinpong”来进行PinPong安装。

在Mac OS上安装PinPong库

安装了Python 3之后,您可以按照以下步骤安装PinPong库:

打开任何Finder窗口,按下Shift+Command+U。双击“终端”应用程序。在终端中,输入命令“sudo pip install pinpong”来安装PinPong库。

四、重要的PinPong库示例

重要的PinPong库示例对于初学者来说是必不可少的,包括基础、常用和扩展库示例。这些示例可以帮助学习者理解和学习如何利用这些库来快速开发与PinPong相关的应用程序或项目。

常用PinPong库示例:

常用PinPong库示例可以帮助您快速验证模块的使用方法。将代码复制粘贴到Python编辑器中,并据使用的板型修改板的初始化配置。基本库示例中的模块是通过Board库导入的。

示例:LED闪烁

将Arduino主控板连接到Windows或Linux计算机。控制Arduino UNO板上的内置LED每秒闪烁一次

除了如上的基础PinPong库示例可用,演示如何使用按钮控制Arduino UNO板上的内置LED,改变LED的亮度,并测试模拟引脚中断功能。

实用的PinPong库示例:

常见库示例中的模块是通过board库导入的。

示例:控制舵机电机

此之外,PinPong库中还有其他实用示例。这些示例涵盖了控制蜂鸣器进行声音生成,从超声波传感器读取数据,从DHT传感器获取温度和湿度读数,以及管理WS2812单线RGB LED灯。

扩展的PinPong库示例

扩展库示例中的模块是通过libs库导入的。您可以使用终端输入“pinpong”来查询支持的列表和使用方法。所有示例程序代码都可以在安装目录下的“examples”文件夹中找到。

示例:颜色识别

将TCS34725颜色传感器连接到Arduino板的I2C引脚(SCL和SDA),该Arduino板连接到Windows或Linux计算机。从I2C TCS34725颜色传感器中获取颜色值。

其他扩展的PinPong库示例包括从I2C TCS34725颜色传感器、I2C超声波传感器(URM09)、I2C MLX90614红外温度传感器以及使用I2C读取卡片信息的NFC模块等读取值的示例。

使用PinPong库通过Python进行的Arduino项目

自动浇水系统

为了确保植物的健康生长,定期浇水是必要的。然而,我们经常会忘记给植物浇水,这可能导致植物枯萎。为了避免这样的问题,我们可以设计一个自动浇水系统。

自动浇水系统的第一步: 驱动继电器

硬件设置:

1、控制器:Arduino UNO,IO传感器扩展板V7.1/

2、模块:继电器模块/

3、连接:Type A到B的USB电缆

4、将继电器连接到数字引脚13

开始编码:

继电器通过切换数字引脚的高低状态来控制。我们可以参考基础库的官方文档中的“Digital Output”示例。运行这个程序会使继电器发出咔哒声,随着LED的闪烁而切换。

自动浇水系统的第二步:使用继电器控制水泵

为了实现浇水功能,我们需要使用一个水泵。然而,大多数水泵的工作电压为12V,而Arduino UNO的输出电压为5V,这对直接驱动水泵来说是不足够的。在这种情况下,我们需要使用继电器来控制水泵。

硬件设置

1、控制器:Arduino UNO,IO传感器扩展板V7.1/

2、模块:继电器模块,水泵,12V电源

3、连接:Type A到B的USB电缆

4、将继电器连接到数字引脚13

5、将水泵连接到继电器

开始编码

您可以使用time模块的time.strftime函数来确定时间。在示例中,它每天在15:30:10设置“Watering”。在实际使用中,您可以相应地添加继电器控制功能。

添加继电器以实现每日定时浇水功能。

关于更多pinpong库的介绍,您可以查看pinpong官方文档。

总结

PinPong库为Python开发者提供了一种便捷的方式来控制Arduino板。它简化了与Arduino的通信过程,使得使用Python编程语言控制Arduino变得更加容易和灵活。无论是初学者还是有经验的开发者,PinPong库都是一个有价值的工具,用于构建各种物联网嵌入式系统项目。因此,如果你是一名Python程序员,希望探索Arduino世界,本教程为你提供了一个很好的起点。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程
    +关注

    关注

    88

    文章

    3440

    浏览量

    92389
  • IDE
    IDE
    +关注

    关注

    0

    文章

    326

    浏览量

    46337
  • 编程语言
    +关注

    关注

    9

    文章

    1878

    浏览量

    33108
  • python
    +关注

    关注

    51

    文章

    4675

    浏览量

    83466
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184834
收藏 人收藏

    评论

    相关推荐

    如何使用Raspberry pi和Python控制Arduino

    如果你同时拥有Arduino和Raspberry pi板,本文将向您展示如何使用Raspberry pi和Python控制Arduino
    的头像 发表于 11-08 16:51 3963次阅读
    如何使用Raspberry pi和<b class='flag-5'>Python</b>来<b class='flag-5'>控制</b><b class='flag-5'>Arduino</b>

    【建议收藏】Python大全

    ` 通用urlib -网络(stdlib)。requests -网络。grab -网络(基于pycurl)。pycurl -网络(绑定libcurl)ullib3 -
    发表于 09-06 15:58

    什么是转向控制?如何去编写转向控制Arduino代码与

    什么是转向控制?如何去编写转向控制Arduino代码与?什么是转速控制?如何去编写转速控制
    发表于 06-28 06:08

    将MicroPython移植为esp arduino开发环境的需要什么?

    将 MicroPython (Python) 移植为 esp(平台)arduino(ide)开发环境的需要什么?旧项目完全按照我希望在 esp 平台上看到的那样完成......但对于 Teensy
    发表于 02-23 06:00

    Python控制硬件

    Python控制硬件可以通过调用硬件相关的来实现。例如,可以使用 Python 的 serial
    发表于 03-26 19:42

    怎样使用PySerial接口PythonArduino

    您还可以更改Python程序第3行和Arduino程序的第2行中的波特率,只要它们保持不变即可。程序运行后,它将打印出大多数ASCII字符。首先将它们发送到Arduino,然后将其发送回Pyt
    的头像 发表于 11-04 11:30 3959次阅读
    怎样使用PySerial接口<b class='flag-5'>Python</b>和<b class='flag-5'>Arduino</b>

    怎样使用Python编程和控制Arduino

    该项目是在PythonArduino板之间进行通信的准系统。这种方法与通常的将脚本上传到Arduino本身的工作流程完全不同,但是它为使用该平台开辟了一种全新的方式,尤其是在您喜欢Pytho
    的头像 发表于 11-28 17:52 1.7w次阅读

    使用Open cv python(手势)和arduino控制Led

    电子发烧友网站提供《使用Open cv python(手势)和arduino控制Led.zip》资料免费下载
    发表于 10-28 10:19 4次下载
    使用Open cv <b class='flag-5'>python</b>(手势)和<b class='flag-5'>arduino</b><b class='flag-5'>控制</b>Led

    Python语言演示Arduino Uno的功能

    电子发烧友网站提供《用Python语言演示Arduino Uno的功能.zip》资料免费下载
    发表于 11-04 09:24 1次下载
    用<b class='flag-5'>Python</b>语言演示<b class='flag-5'>Arduino</b> Uno的功能

    使用ArduinoPython仅用双手控制VLC媒体播放器

    电子发烧友网站提供《使用ArduinoPython仅用双手控制VLC媒体播放器.zip》资料免费下载
    发表于 11-17 14:27 0次下载
    使用<b class='flag-5'>Arduino</b>和<b class='flag-5'>Python</b>仅用双手<b class='flag-5'>控制</b>VLC媒体播放器

    使用ArduinoPython Tkinter进行RGB Led控制

    电子发烧友网站提供《使用ArduinoPython Tkinter进行RGB Led控制.zip》资料免费下载
    发表于 11-30 12:00 0次下载
    使用<b class='flag-5'>Arduino</b>和<b class='flag-5'>Python</b> Tkinter进行RGB Led<b class='flag-5'>控制</b>

    使用arduino、mpu6050和python控制游戏

    电子发烧友网站提供《使用arduino、mpu6050和python控制游戏.zip》资料免费下载
    发表于 12-13 11:04 1次下载
    使用<b class='flag-5'>arduino</b>、mpu6050和<b class='flag-5'>python</b><b class='flag-5'>控制</b>游戏

    ArduPy:当Arduino遇见Python

    奇怪的编程语言组合。这个新工具套件被称为 ArduPy(ArduinoPython 的组合),旨在通过提供一种将流行的 Arduino 库转换为 MicroPython 库的方法来利用
    的头像 发表于 12-30 09:40 4523次阅读

    Python3与Arduino通信

    电子发烧友网站提供《Python3与Arduino通信.zip》资料免费下载
    发表于 06-26 14:39 0次下载
    <b class='flag-5'>Python</b>3与<b class='flag-5'>Arduino</b>通信

    使用arduinopython改造的Chrome Dino游戏

    电子发烧友网站提供《使用arduinopython改造的Chrome Dino游戏.zip》资料免费下载
    发表于 07-05 14:43 0次下载
    使用<b class='flag-5'>arduino</b>和<b class='flag-5'>python</b>改造的Chrome Dino游戏