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

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

3天内不再提示

在树莓派中使用Python编程实现对LED灯的控制

h1654155282.3538 来源:电子报 作者:h1654155268.1688 2021-06-06 17:51 次阅读

一、树莓派Python语言编程

树莓派是一块仅为信用卡般大小的微型电脑,可用于嵌入式开发和计算机编程,目前在中小学创客教育活动领域有着极为广泛的应用。借助于扩展板及“积木”编程(比如古德微机器人网站),中小学生就可以比较轻松地使用树莓派开发出例如超声波测距、定时闹钟、声控楼道灯、倒车提醒器等具有实际应用价值的“产品”,甚至还有智能语音输出、文字识别等更为高端的人工智能方面的应用(与百度AI关联)。作为树莓派的编程“黄金搭档”,Python语言是目前正在广泛使用的通用高级编程语言,它主要是为了强调代码可读性而开发的,语法允许使用更少的代码行来表达概念;配合使用丰富的通用型传感器和功能强大的语言“库”模块,使用Python语言编程进行创客实验已经成为树莓派最为强势的应用之一(如图1所示)。

图1

二、简易红绿灯实验的预备知识

1.实验的预期效果三只并列排布的LED灯依次闪亮——先是绿灯亮10秒,熄灭;接着是黄灯持续闪烁三次,每次1秒;然后是红灯亮10秒,熄灭,再绿灯亮10秒……反复循环这一过程,这是生活中最为常见的十字路口一组红绿灯中的雏形。

2.实验器材树莓派(带电源线)主板一块、红黄绿LED灯各一只、六根母对母杜邦线,一台联网电脑(或直接给树莓派接上显示器、鼠标和键盘)。

3.树莓派的40Pin引脚树莓派主板一侧有两排引脚,共40Pin(物理引脚BOARD编码是从1依次到40)。在树莓派的命令行窗口(通过远程桌面连接)中输入“gpioreadall”命令,可显示出所有的引脚编号及功能对应关系(如图2所示)。

pYYBAGC8moyAbMhHAAI_eSYMXdw668.png

图2

通常情况下,Python语言编程库都是使用BCM编码(WiringPi编码一般应用于C++等编程平台),这种编码依据是BCM2835芯片的GPIO寄存器编号。如果按照功能来分类,除了8个GND(接地)端、3.3V和5V的电源正极各两个之外,最为主要的部分就是17个可编程的GPIO(GeneralPurposeInput/Output:“通用型输入输出接口”),其BCM编码分别是0-7、21-29两组(物理引脚位置并非连续分布),可以用来驱动传感器、舵机等各种外设。使用树莓派GPIO引脚与外设连接时必须要仔细,在确定好待用的BCM编码号后再与物理引脚一一对应。本次实验所使用的红、黄、绿三只LED灯的长引脚(正极)BCM编码分别设置为5、6和13,所对应的物理引脚BOARD编码是29、31和33,分别用母对母杜邦线连接好;短引脚(负极)同样使用杜邦线与三个GND连接,比如物理引脚BOARD编码为25、30和39(如图3所示)。

poYBAGC8mouAfGTxAAI6l9BjTRY207.png

图3

三、在树莓派中使用Python编程实现对LED灯的控制

1.测试控制一只红色LED灯的亮与灭连接好实验设备后给树莓派通电开机,稍后在联网电脑的远程桌面连接中进入命令行模式(出现“pi@raspberrypi:~$”提示符),输入“python”后回车进入Python界面(命令提示符变为“》》》”);接着再输入“importRPi.GPIOasGPIO”命令,作用是以GPIO为名导入RPi.GPIO库,无错误提示的话就代表Python已经成功加载了RPi.GHIO库(出现错误提示就必须按照提示进行更新或安装);值得一提的是,RPi.GPIO本身是Python的一个库模块,树莓派官方系统默认已经安装,共作用就是允许用户从代码中控制各GPIO引脚。接着,输入“GPIO.setmode(GPIO.BCM)”命令,意思是“通知”Python准备使用树莓派的BCM编码模式来对各引脚进行控制。由于红色LED灯正极是接在BCM编码5号上,因此在使用Python编程控制时就必须通过数字“5”来控制(而不是其对应的物理引脚BOARD编码25)。输入命令“GPIO.setup(5,GPIO.OUT)”,意思是设置5号GPIO为输出端(GPIO.OUT);接着输入“GPIO.output(5,GPIO.HIGH)”命令,设置5号GPIO输出高电平(GPIO.HIGH)。此时回车执行该命令后,树莓派上的红色LED灯就会瞬间被“点亮”(如图4所示)。

pYYBAGC8mpmAX_1dAAJR6HAJq5w141.png

图4

发光测试成功后,接着再发一条“GPIO.output(5,GPIO.LOW)”命令,设置5号GPIO输出低电平(GPIO.LOW);回车,红色LED灯熄灭,测试工作完成。2.编写完整的Python程序在联网电脑的Windows系统中使用PyCharm程序编辑器来编写TrafficLED.py(或者可以直接远程进入树莓派系统中调用“编程”-“ThonnyPythonIDE”来编写),程序的主体内容就是控制三个LED灯依次点亮和熄灭(如图5),以绿灯亮10秒为例,其命令语句为:GPIO.output(13,GPIO.HIGH)time.sleep(10.0)GPIO.output(13,GPIO.LOW)值得注意的地方:一是程序的最开始语句“#!/usr/bin/python3”的作用是指定由哪个Python解释器来执行脚本,因为有的操作系统同时安装了Python2和Python3(二者并不兼容);二是需要通过“importtime”命令来导入时间库,因为程序中使用了sleep语句来控制灯亮、灭的持续时间,其中的数值参数单位为秒;三是程序的主体需要一直循环,可使用语句“while1:”(条件永远为真);四是分别设置print语句用来显示提示当前LED灯的状态,比如“黄灯闪3s”。所有命令语句均输入完成后,将其保存为Python文件TrafficLED.py(如图5所示),并通过远程桌面复制粘贴到树莓派的用户目录中(/home/pi/)。

poYBAGC8mpqAMAIEAAGcjND5W3I754.png

图53.调试运行Python程序,控制LED灯实现红绿灯效果在远程桌面窗口中双击从Windows中传递过来的TrafficLED.py程序文件,调用树莓派中已经安装的ThonnyPythonIDE来打开;接着点击上方的“Run”按钮,程序就开始运行:IDE窗口下方的Shell区域先是显示“绿灯亮10s”的提示,此时连接在树莓派上的绿色LED灯开始发光;10秒钟后,提示信息变为“黄灯闪3s”,绿色LED灯熄灭,黄色LED灯闪烁3秒;之后,提示信息变为“红灯亮10s”,绿色和黄色LED灯都为熄灭状态,红色LED灯发光(如图6所示);10秒之后,提示信息变为“本轮结束,进行下一轮”、“绿灯亮10s”,绿色LED灯又会再次亮起……

图6
责任编辑人:CC

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

    关注

    51

    文章

    4675

    浏览量

    83465
  • 树莓派
    +关注

    关注

    113

    文章

    1638

    浏览量

    104730
收藏 人收藏

    评论

    相关推荐

    用笔记本控制运行树莓坦克车 相当好玩

    想到用树莓GPIO接口控制些硬件设备,如,马达,LED等;于是用python写了个小程序来
    发表于 09-12 17:58

    树莓2控制一个LED

    ` 本帖最后由 348081236 于 2016-1-19 16:57 编辑 这个教程教你怎样用树莓控制一个LED。这是比较基础、简
    发表于 01-19 16:55

    树莓学习指南三部曲,从编程到实战一应俱全

    (上),树莓派系列教程8 : 如何点亮一个LED(下),树莓派系列教程9:按键,树莓派系列教
    发表于 09-10 18:23

    树莓Python与自美人工智能系统实现人脸识别

    ,就能执行如电子表格、文字处理、玩游戏、播放高清视频等诸多功能。 (图为树莓4)二、PythonPython是目前被广泛应用的编程语言之
    发表于 12-26 11:24

    Python树莓编程

    Python树莓编程
    发表于 04-04 12:06

    请问树莓如何用python连接外部数据库?

    新人求教,树莓中用python编程,如何连接树莓
    发表于 04-22 03:44

    Python树莓编程

    Python树莓编程
    发表于 05-03 09:45

    精选树莓实用书籍,初学者看完必有收获

    上手实践的简单有趣的项目,让你学完知识后,可以马上体验实操的乐趣。树莓Python编程指南:本书是学习
    发表于 05-20 14:35

    为什么用python树莓派上编程?详解python的优点

    代码。树莓python编程详解当你创建一个Python程序时,首先必须从编译器的环境中退出来,并且打开一个文本编辑器,如emacs或者
    发表于 05-21 08:47

    树莓如何点亮一个LED

    本章将简介在树莓派上面通过shell,sysfs,bcm2835,wiringPi,python等不同的编程方式点亮一个LED
    发表于 11-05 07:04

    通过Python RPi.GPIO控制树莓引脚

    零、汇总通过Python RPi.GPIO 控制树莓引脚输出高低电平、脉冲电平驱动器接收接收树莓
    发表于 08-31 07:59

    树莓能做什么

    第一课:什么是树莓第二课:树莓能做什么第三课:购买您的第一个树莓第四课:如何安装
    发表于 09-10 07:28

    请问树莓如何使用Python控制步进电机?

    请问树莓如何使用Python控制步进电机?
    发表于 10-27 06:53

    关闭树莓电源LED

    关闭树莓的电源指示和状态指示中,对关闭树莓
    发表于 12-28 08:18

    树莓Python编程指南分享

    树莓python编程指南
    发表于 10-07 08:43