实例2:树莓派GPIO控制外部LED灯闪烁

简介: 本文是一个关于使用树莓派GPIO控制外部LED灯闪烁的实验教程,介绍了树莓派的基本概念、GPIO接口的使用、RPi.GPIO库的基本操作,以及通过Python编程实现LED灯周期性闪烁的详细步骤和代码示例。

实例2:树莓派GPIO控制外部LED灯闪烁

实验目的

  1. 通过背景知识学习,了解四足机器人mini pupper搭载的微型控制计算机:树莓派。
  2. 通过树莓派GPIO操作的学习,熟悉GPIO的读写控制。
  3. 通过外部LED灯的亮灭控制,熟悉树莓派对外界信号的读取与输出。

实验要求

使用Python语言编程,通过树莓派上GPIO的控制,周期性地改变外部LED灯的亮灭状态,使之发生周期为一秒的持续明暗闪烁。

实验知识

1. 什么是树莓派?

树莓派(Raspberry Pi)是英国树莓派基金会开发的低成本微型单板计算机,硬件上配置有SoC (片上系统),具有 GPU和RAM并支持有线、无线连接方案。值得称道的是,树莓派有着完善的社区与软件支持,这极大地方便了机器人开发初学者的入门学习。
树莓派在具备计算机基本功能的同时,保持着一张卡片的大小,这意味着你可以简单便捷地搭建自己的机器人编程平台,并将这台微型计算机部署在小巧可爱的四足机器狗mini pupper上。
请添加图片描述
图片1:树莓派4B
参考链接:树莓派

2. 什么是GPIO?

树莓派上有丰富的接口,这些接口使得树莓派能够方便地与外部设备进行通信及控制,例如USB、CAMERA、GPIO等。
其中的GPIO接口,全称为General Purpose Input Output,意为通用型输入输出口,树莓派上的GPIO接口可以用于输入、输出或其他特殊功能。
通过GPIO,可以让树莓派和不同的外部模块组件进行交互,例如按钮、蜂鸣器、舵机等。

在这里插入图片描述图片2:GPIO接口图

3. 树莓派GPIO引脚图

在命令行中查看树莓派GPIO引脚图。

pinout
#    如果你希望学习在命令行中对GPIO口进行更复杂的操作,可查看课程的进阶参考文档中实例2部分

你将会看到
图片3:pinout指令的输出结果
参考链接:树莓派4B引脚图

4. RPi.GPIO库的基本用法

GPIO.setmode(GPIO.BOARD)    #    初始化GPIO引脚编码方式,需放在代码正式开始处
#    GPIO引脚有多种编码方式,比如BCM、wiringPi、BOARD等,方便起见,课程均采用BOARD编码模式
GPIO.setup(12, GPIO.OUT)    #    初始化GPIO引脚设置,需放在代码正式开始处
GPIO.setup(12, GPIO.IN)    #    12为引脚号 GPIO.IN或者GPIO.OU为输入输出模式
print(GPIO.input(12))    #    GPIO.input查看GPIO输入的电平信号
#    GPIO.HIGH为高电平 ,GPIO.LOW为低电平 也可用于条件判断作其他操作
#    GPIO.output向端口发送高低电平信号
GPIO.output(12, GPIO.HIGH)    #    此处以12号端口为例
GPIO.output(12, GPIO.LOW)
GPIO.cleanup()    #    在使用完GPIO后要作清理,避免后续引脚被占用

参考链接:Python RPi.GPIO库
参考链接:GPIO Input详解

5. mini pupper学习套件-LED模块的使用

mini pupper学习套件中的LED模块自带板载限流电阻,能够保护LED模块。
接线如下:

引脚 作用 树莓派对应口
GND 接地 GND口
R 红灯正极 PWM口
G 绿灯正极 PWM口
B 蓝灯正极 PWM口

实验步骤

1.硬件连接

  1. 将灯的任一正极(R/G/B/Y)接入树莓派上的PWM端口(例如33号端口)
    树莓派的GPIO中仅有部分为PWM口,你可以通过查看树莓派GPIO的引脚图来确认哪个端口是PWM端。

  2. 将灯的GND端接入树莓派上的GND端口(例如34号端口)
    你可以通过查看树莓派GPIO的引脚图来确认哪个端口是GND端。

2. 编写Python程序 led_blink_GPIO.py

#!/usr/bin/python
# coding:utf-8
# led_blink_GPIO.py
# 使树莓派GPIO外接的LED灯的亮灭状态周期性地改变,发生周期为两秒的持续明暗闪烁。

import RPi.GPIO as GPIO
import time

# GPIO初始化
LED = 33
period = 2
GPIO.setmode(GPIO.BOARD)  # 初始化GPIO引脚编码方式
GPIO.setup(LED, GPIO.OUT)
# 如果你需要忽视引脚复用警告,请调用GPIO.setwarnings(False)
# GPIO.setwarnings(False)
print('预设置完成,开始闪烁,端口为%d,周期为%d秒。' % (LED, period))

while True:
    GPIO.output(LED, GPIO.HIGH)
    time.sleep(period/2)
    GPIO.output(LED, GPIO.LOW)
    time.sleep(period/2)

GPIO.cleanup()

3. 运行程序,观察效果

在led_blink_GPIO.py的目录下执行以下命令:

sudo python led_blink_GPIO.py

此时应观察到树莓派状态指示灯的亮灭状态周期性地改变,发生周期为一秒的持续明暗闪烁。

图片3:gif图片 LED闪烁实验效果
在这里插入图片描述

实验总结

经过本知识点的学习和实验操作,你应该能达到以下水平:

知识点 内容 了解 熟悉 掌握
树莓派 树莓派的来历、用途及基本硬件性能
树莓派 树莓派的GPIO
GPIO RPi.GPIO库的用法
硬件 mini pupper学习套件的LED模块的使用

版权信息:教材尚未完善,此处预留版权信息处理方式
mini pupper相关内容可访问:https://github.com/mangdangroboticsclub

目录
相关文章
|
3月前
|
机器人 Linux 异构计算
实例1:控制树莓派板载LED灯闪烁
本文是一个关于如何使用Python编程控制树莓派板载LED灯闪烁的实验教程,涵盖了树莓派的基本概念、LED控制文件的读写操作、Python `open()` 和 `sleep()` 函数的使用方法,以及具体的实验步骤和代码实现,目的是让读者通过实践熟悉树莓派操作和Linux文件读写。
71 1
实例1:控制树莓派板载LED灯闪烁
|
3月前
|
传感器 机器人 芯片
实例4:树莓派GPIO控制舵机转动
本文是关于使用树莓派GPIO控制舵机转动的实验教程,涵盖了舵机的基本概念、结构、工作原理以及PWM信号控制方法。实验目的是通过Python编程,实现树莓派控制舵机在0°~180°范围内周期性转动。文中提供了详细的实验步骤、代码示例以及舵机调零和校准的方法。
176 1
实例4:树莓派GPIO控制舵机转动
|
4月前
|
异构计算
FPGA入门(5):控制LED灯
FPGA入门(5):控制LED灯
50 0
|
计算机视觉
树莓派开发笔记(五):GPIO引脚介绍和GPIO的输入输出使用(驱动LED灯、检测按键)
树莓派开发笔记(五):GPIO引脚介绍和GPIO的输入输出使用(驱动LED灯、检测按键)
树莓派开发笔记(五):GPIO引脚介绍和GPIO的输入输出使用(驱动LED灯、检测按键)
【51单片机】Kn独立按键控制【LED亮灭】【LED状态】【LED二进制式显示】【LED不断移位】(4)
【51单片机】Kn独立按键控制【LED亮灭】【LED状态】【LED二进制式显示】【LED不断移位】(4)
|
C语言
单片机控制LED灯
单片机控制LED灯
271 0
51单片机--利用独立按键控制LED
51单片机--利用独立按键控制LED
284 0
LabVIEW控制Arduino LED灯闪烁(基础篇—2)
利用LIAT中的数字I/O函数库,通过LabVIEW控制Arduino Uno控制板上D13管脚上LED灯,实现等间隔闪烁。
单片机开关控制LED的点亮及闪烁
单片机开关控制LED的点亮及闪烁
343 0