嵌入式人工智能(3-树莓派4B点亮LED灯及LED灯闪烁)

1、LED与树莓派连接

LED是一种常用。廉价、高效的光源,其灯泡长腿为正极,短腿为负极。使用LED的注意如果将其直接连接到高于1.7V的电源上,会产生一个非常大的电流,导致LED甚至树莓派的损坏。通常情况下为LED配备一个串联电阻,使流经LED的电流限制在特定的数值上,从而对LED和为其供电的GPIO引脚提供保护。

树莓派的GPIO 引脚只能提供3mA 或 16mA 左右的电流,对于LED来说,只要流经的电流大于1ma就以发光,电流越大,亮度就越高。

在连接硬件设备前,先切断树莓派的电源,我一般都是不断电操作,我不建议同学这样做,万一出问题,别找我哈。

将树莓派第一脚3.3V和第9脚分别扩展到面包板。LED灯接11脚GPIO17,串联一个470欧的电阻。我这边正好有个按键与LED模块,我就直接接了。插上线LED灯就亮了。

除了能直接点亮LED,还能通过GPIO 控制LED开关,下面将使用Python 控制该LED 发光。

2、软件环境

在点亮一个LED之前,需要给同学们介绍Vnc、Python语言和VScode的使用。

(1)VNC

VNC(Virtual Network Computing)是一种远程桌面协议,允许用户通过互联网连接到远程计算机,并在本地查看和控制远程计算机的桌面界面。如果使用WIndows图形化的桌面方式连接树莓派,还需要再树莓派上面安装VNCServer,在windows上安装Vncviewer。

以下是使用VNC远程桌面的一般步骤:

  1. 在远程计算机上安装VNC服务器软件(例如RealVNC、TightVNC等)。
  2. 配置VNC服务器,设置访问密码和权限。
  3. 确保远程计算机和本地计算机处于同一网络,并且能够相互访问。
  4. 在本地计算机上安装VNC客户端软件(例如RealVNC Viewer、TightVNC Viewer等)。
  5. 打开VNC客户端,并输入远程计算机的IP地址和端口号,然后点击连接。
  6. 输入VNC服务器的访问密码,点击确认。
  7. 现在,您应该能够在本地计算机上查看远程计算机的桌面界面,并且可以通过本地键盘和鼠标控制远程计算机。

请注意,使用VNC远程桌面需要确保网络连接稳定和安全,以防止未经授权的访问。在配置VNC服务器时,请务必设置强密码并限制访问权限。

安装VNCserver,树莓派自带有RealVNC,打开即可。

启动vncserver的命令为vncserver-virtual  -geometry 1440x1080

windows使用vncviewer开启远程桌面连接

登录进去之后就像接了显示器一样操作即可

(2)Python语言

Python语言是一门高级、通用、解释型、面向对象的编程语言。它具有简洁的语法和强大的功能,被广泛用于Web开发、数据分析、人工智能、科学计算等领域。Python具有易学易用的特点,适合初学者入门,同时也能满足专业开发人员的需求。

树莓派Linux系统使用Python命令可以查看Python版本。我安装的版本比较新,集成的Pyhton解释器版本也比较高,不过建议用稍微低一点版本的Python环境。

(3)Vscode

由于这个ARM架构的Linux 环境下我没有找到sublime可以安装的版本。可以用Vscode作为IDE来写代码了,当然也可以用其他的PythonIDE,如Thonny,随便同学们。

然后大家一顿操作猛如虎,都比较简单,安装中文语言,安装Python支持,设置字体(ctrl与+-调整),最后玩个helloworld!

3、点亮LED

当GPIO口11输出低电平时,LED灯点亮。当GPIO口11输出高电平时,LED灯熄灭。

#导入RPi.GPIO库函数命名为GPIO
import RPi.GPIO as GPIO
import time 

#将GPIO编程方式设置为BOARD模式
GPIO.setmode(GPIO.BOARD)

#设置GPIO11输出模式
GPIO.setup(11,GPIO.OUT)

GPIO.output(11,GPIO.LOW)

4、LED灯闪烁

#导入RPi.GPIO库函数命名为GPIO
import RPi.GPIO as GPIO
import time 

#将GPIO编程方式设置为BOARD模式
GPIO.setmode(GPIO.BOARD)

#设置GPIO11输出模式
GPIO.setup(11,GPIO.OUT)

print('Start Blinking...')

while(True):
    GPIO.output(11,GPIO.HIGH)
    time.sleep(1)
    GPIO.output(11,GPIO.LOW)
    time.sleep(1)

短短几行代码即可,闪烁的循环放到while里面,时间间隔为1S,也可以设置为0.1,闪烁就快10倍,如果要终止程序,按键盘的CRTL+C,中断程序的运行。

树莓派LED灯闪烁

5、注意事项

该程序并不完整,如果再次运行会出现警告信息:RuntimeWarning: This channel is already in use, continuing anyway.  Use GPIO.setwarnings(False) to disable warnings.
主要原因是因为使用过的引脚11由于键盘终止死循环而非正常原因退出,没有释放引脚资源,因此需要修改程序,使用try...except...finally异常处理模式。

这样运行多次不会出现警告信息了。

相关推荐

  1. 单片机-LED

    2024-07-19 10:10:02       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 10:10:02       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 10:10:02       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 10:10:02       57 阅读
  4. Python语言-面向对象

    2024-07-19 10:10:02       68 阅读

热门阅读

  1. 缓存机制如何帮助减轻雪崩效应:

    2024-07-19 10:10:02       21 阅读
  2. 接近50个实用编程相关学习资源网站

    2024-07-19 10:10:02       20 阅读
  3. Seata 隔离级别问题

    2024-07-19 10:10:02       19 阅读
  4. 深入理解TCP/IP协议:三次握手与四次挥手

    2024-07-19 10:10:02       24 阅读
  5. 如何避免推荐系统中的雪崩效应?

    2024-07-19 10:10:02       19 阅读
  6. 01 安装

    01 安装

    2024-07-19 10:10:02      22 阅读
  7. tg小程序前端-dogs前端源码分析

    2024-07-19 10:10:02       18 阅读