当前位置: 首页 > news >正文

实例2:树莓派GPIO控制外部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详解

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

该部分为LED灯的资料,在LED灯到货测试后修改这部分
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

实验步骤

1.连接硬件

此部分在LED到货后需要更改!

  1. 将mini pupper学习套件-LED模块的GND端接入树莓派的GPIO-Ground口。
    你可以通过查看树莓派GPIO的引脚图来确认哪个端口是GND端。
    以树莓派4B为例,Board编码模式下的39号口就是一个GND口。
  2. 将LED模块的VCC端和IN端串联,接入树莓派上的一个GPIO口,这个口可以是任意一个能够正常输出高低电平的端口。
    你可以通过查看树莓派GPIO的引脚图来确认哪个端口是可用的。
    以树莓派4B为例,Board编码模式下的37号口就是一个可用的GPIO口。

1. 编写Python程序 led_blink_GPIO.py

#!/usr/bin/python
#coding:utf-8#led_blink_GPIO.py 
#使树莓派GPIO外接的LED灯的亮灭状态周期性地改变,发生周期为一秒的持续明暗闪烁。try:import RPi.GPIO as GPIO
except RuntimeError:print("Error importing RPi.GPIO!  This is probably because you need superuser privileges.  You can achieve this by using 'sudo' to run your script")import time
GPIO.setmode(GPIO.BOARD)	#	初始化GPIO引脚编码方式
GPIO.setup(18, GPI此部分在LED到货后需要更改!O.OUT)
GPIO.output(18, GPIO.LOW)
#如果你需要忽视引脚复用警告,请调用GPIO.setwarnings(False)
#GPIO.setwarnings(False)print('预设置完成,开始闪烁')while True:GPIO.output(18, GPIO.HIGH)time.sleep(0.5)GPIO.output(18, GPIO.LOW)time.sleep(0.5)GPIO.cleanup()	#	清理GPIO

2. 运行程序,观察效果

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

sudo python led_blink_GPIO.py

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

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

实验总结

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

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

版权信息:此处预留版权信息警告

相关文章:

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

实例2:树莓派GPIO控制外部LED灯闪烁 实验目的 通过背景知识学习,了解四足机器人mini pupper搭载的微型控制计算机:树莓派。通过树莓派GPIO操作的学习,熟悉GPIO的读写控制。通过外部LED灯的亮灭控制,熟悉树莓派对外界…...

详解可变形注意力模块(Deformable Attention Module)

Deformable Attention(可变形注意力)首先在2020年10月初商汤研究院的《Deformable DETR: Deformable Transformers for End-to-End Object Detection》论文中提出,在2022CVPR中《Vision Transformer with Deformable Attention》提出应用了De…...

Java数据结构中链表分割及链表排序使用快速排序、归并排序、集合排序、迭代、递归,刷题的重点总结

本篇主要介绍在单链表进行分割,单链表进行分隔并使用快速排序、归并排序、集合排序、迭代、递归等方法的总结,愿各位大佬喜欢~~ 86. 分隔链表 - 力扣(LeetCode) 148. 排序链表 - 力扣(LeetCode) 目录 一…...

音视频基础之音频编码原理简介

一:隐蔽信号 数字音频信号如果不加压缩地直接进行传送,将会占用极大的带宽。例如,一套双声道数字音频若取样频率为44.1KHz,每样值按16bit量化,则其码率为: 244.1kHz16bit1.411Mbit/s 如此大的带宽将给信号…...

【Python--XML文件读写】XML文件读写详解

【Python–XML文件读写】XML文件读写详解 文章目录【Python--XML文件读写】XML文件读写详解1. 前言1.1 介绍1.2 用法2. xml文件内容形式3. xml文件读写3.1 项目框架3.1 写入操作(创建)(create_xml.py)3.2 读取操作(解析…...

GNU make 中文手册 第一二章 概述与介绍

一、第一章:概述 准备知识 在开始我们关于 make 的讨论之前,首先需要明确一些基本概念: 编译:把高级语言书写的代码,转换为机器可识别的机器指令。编译高级语言后生成的指令虽然可被机器识别,但是还不能…...

真的了解HashMap、HashSet吗?做一道测试题试试!

本人博客《HashMap、HashSet底层原理分析》,可以了解hashmap的底层源码实现 测试代码 HashSet底层实际就是一个Hashmap。猜猜下面源码每一个打印结果。 注:user对象重写的hashcode方法,保证name和age一样的情况下hashcode是一样的&#xff…...

树莓派下安装OpenEuler

openEuler作为华为开源的应用于嵌入式设备的操作系统,正在受到越来越多的关注。树莓派是一个很好的应用场景,这篇文章就介绍下如何在树莓派上安装openEuler。   ps:openEuler要求树莓派的版本是4B 1.下载openEuler镜像 镜像网址&#xff1…...

VSCode Remote-SSH配置免密登录踩坑

VSCode Remote-SSH配置免密登录踩坑1. 参考2. 基本流程2.1 机器A(Windows客户端)2.2 机器B(Linux服务器)2.3 机器A(Windows客户端)的VSCode设置3. 踩坑总结相关教程很多,但要么冗余,…...

【Python语言基础】——Python NumPy 数组拆分

Python语言基础——Python NumPy 数组拆分 文章目录 Python语言基础——Python NumPy 数组拆分一、Python NumPy 数组拆分一、Python NumPy 数组拆分 拆分 NumPy 数组 拆分是连接的反向操作。 连接(Joining)是将多个数组合并为一个,拆分(Spliting)将一个数组拆分为多个。…...

虹科资讯| 虹科AR荣获汽车后市场“20佳”维修工具评委会提名奖!

2022 虹科荣获20佳维修工具 评委会提名奖 特大喜讯,在2月16日《汽车维修与保养》杂志主办的第十八届汽车后市场“20佳”评选活动中,虹科的产品“M400智能AR眼镜”凭借在AR领域的专业实力,通过层层筛选,在102款入围产品中脱颖而出…...

Mysql架构与内部模块

Mysql架构与内部模块 演示环境: MySQL 5.7 存储引擎:InnoDB 一、一条查询SQL是如何执行的? 程序或者工具要操作数据库,第一步跟数据库建立连接。 1、通信协议 首先,MySQL 必须要运行一个服务,监听默认的…...

从技术上来看,互联网技术开始衍生和蜕变出更多的新技术

很多人在看待产业互联网的问题上,一味地割裂它与互联网之间的联系,甚至还有人将产业互联网看成是对于传统互联网的颠覆。如果仅仅只是以这样的眼光来看待产业互联网,那么,他们势必是无法完整把握产业互联网的本质内涵和原始奥义的…...

最长不含重复字符的子字符串

今天处理一道算法题目,《剑指Offer》第48题,力扣中等题。 这道题也是面试的高频题! 题目描述 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 示例1: 输入: "abcabcbb" …...

git中git push origin master推送远程操作失败,报错解决方案

报错图片如下所示: 解决方案: 使用下面代码进行本地与远程仓库的链接: git remote add origin http://xxxxx///xxx(https://gitee.com/peach-fog/shopping-cart-car-warehouse.git)链接完成之后就会输出:fatal: remote origin already exists. 链接完成之后就需要使用git br…...

服务器部署流程与经验记录

服务器部署流程1.项目部署1.1 重置实例密码1.2 配置安全组规则1.3 远程连接服务器1.4 安装所需软件1.5 安装Tomcat1.6 配置宝塔安全组1.7 导入数据库和项目2. 域名注册3. 网站备案1.项目部署 1.1 重置实例密码 1.2 配置安全组规则 1.3 远程连接服务器 使用VNC远程连接&#…...

超火的情感视频短视频账号,赚钱的路子有多野?

目录 一、情感类视频内容模式 1、线上情感导师型 2、用动画传达人生哲理 3、网抑云式的野生“文案馆” 4、星座式情感账号 二、情感号变现方式 1、首先是可以接广告 2、收徒做情感号培训,知识付费 3、导流粉丝到公众号 4、通过卖号来变现 6、导流微信变现…...

Linux系列 linux 常用命令(笔记)

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.linux 常用命令(目录文和件基本操作) 1.命令的分类…...

Cosmos 基础教程(二)-- Run a Node, API, and CLI

有很多不同的方法来运行Cosmos区块链的节点。您将探索如何使用simapp 进行此操作。 1、编译simapp Cosmos SDK存储库包含一个名为 simapp 的文件夹。在这个文件夹中,您可以找到运行Cosmos SDK模拟版本的代码,这样您就可以在不实际与链交互的情况下测试…...

C# 读写xml文件总结 [详细]

C# 读写xml文件总结C#写入xml文件1、XmlDocument2、DataSet对象里的值来生成XML文件3、利用XmlSerializer来将类的属性值转换为XML文件的元素值。示例:写入xml1、创建xml文档2 、增加节点3 、修改节点:4 、删除节点c#读取xml文件C#写入xml文件 1、XmlDo…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

GitHub 趋势日报 (2025年06月06日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

基于Java+VUE+MariaDB实现(Web)仿小米商城

仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...

如何应对敏捷转型中的团队阻力

应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...