`
hulianwang2014
  • 浏览: 705689 次
文章分类
社区版块
存档分类
最新评论
  • bcworld: 排版成这样,一点看的欲望都没有了
    jfinal

树莓派学习笔记——Shell脚本操作GPIO

 
阅读更多
0.前言
树莓树莓派可以无痛入门linux,下面通过命令和shell脚本控制树莓派GPIO。通过本文可以熟悉多个linux命令,并熟悉shell脚本编写方法,并对IO重定向有一个基本的体会。我在学习树莓派的过程中积累了自信,现在觉得linux没那么神秘没那么难,反而充满了无穷的乐趣,希望通过博客把快乐带给大家。
相关博文
树莓派学习笔记——GPIO功能学习】树莓派GPIO入门文章

1.引脚与编号关系

图1 引脚与编号关系
例如 Header-PIN7 对应WiringPi GPIO7 对应BCM GPIO4。

2.使用命令操作GPIO
请耐心输入以下命令并查看效果
# 获得超级权限
sudo su
# 进入GPIO目录
cd /sys/class/gpio
# 使用ls查看gpio目录中的内容,可以查看到
# export gpiochip0 unexport 
ls
# GPIO操作接口从内核空间暴露到用户空间
# 执行该操作之后,该目录下会增加一个gpio4文件
echo 4 > export
# 进入GPIO4目录,该目录由上一步操作产生
cd gpio4
#   查看gpio4目录中的内容,可查看到
#   active_low direction edge power subsystem uevent value
ls 
# 设置GPIO4为输出方向
echo out > direction
# BCM_GPIO4输出逻辑高电平,LED点亮
echo 1 > value
#  BCM_GPIO4输出逻辑低电平,LED熄灭
echo 0 > value
# 返回上一级目录
cd ../
# 注销GPIO4接口
echo 4 > unexport
# 退出超级用户
exit

几点说明
【1】>符号为IO重定向符号,IO重定向是指改变linux标准输入和输出的默认设备,指向一个用户定义的设备。例如echo 4 > export便是把4写入到export文件中。
【2】linux内核中关于GPIO驱动的【资料】。

3.编写一个shell脚本
新建一个名为ledon.sh的脚本。
#!/bin/bash
#利用echo输出一些提示语句
echo export pin $1
echo $1 > /sys/class/gpio/export

echo setting direction to output
echo out > /sys/class/gpio/gpio$1/direction

echo setting pi high
echo 1 > /sys/class/gpio/gpio$1/value

几点说明
【1】如果在windows上编写shell脚本的话(后使用FTP工具传输至树莓派),必须保存为unix格式。shell脚本每行以\n结尾,而不是windows中的\r\n。可以使用notepad++格式转换功能完成变化。
【2】一般情况下,脚本文件可读可写,但不能被执行。需要通过chmod指令增加可执行功能,例如输入以下命令(请注意,需要通过cd指令进入shell脚本所在的目录)
chmod +x ledon.sh
【3】shell脚本可传入参数,例如$1代表第一个参数,$2代表第二个参数,以此类推。

运行该脚本可输入以下指令,使得BCM_GPIO4输出高电平
sudo ./ledon.sh 4

4.总结
其实树莓派GPIO控制就那么简单。
5.参考资料
【1】图书 《爱上树莓派》

分享到:
评论

相关推荐

    树莓派学习笔记——wiringPi GPIO使用详解.docx

    树莓派学习笔记——wiringPi GPIO使用详解.docx GPIO使用详解

    超经典的STM32学习笔记——第一章GPIO口.docx

    STM32学习笔记——GPIO口配置函数详解 STM32学习笔记的第一章节中介绍了与GPIO口相关的函数,这些函数主要用于配置和操作GPIO口。这些函数包括GPIO_Init、GPIO_ReadInputDataBit、GPIO_ReadInputData、GPIO_...

    树莓派驱动USB摄像头个驱动GPIO口的代码

    树莓派驱动USB摄像头个驱动GPIO口的代码, 环境: 1、树莓派3b 2、Qt 3、opencv 4、wiringPi 功能: 1、驱动USB摄像头并在窗口中显示 2、驱动GPIO口,控制LED灯的闪烁

    树莓派-通过Web控制GPIO针脚输出高低电平

    2. **Python编程**:树莓派上的GPIO操作通常使用Python库,如RPi.GPIO,来简化与GPIO的交互。`gpio.py`文件很可能是实现这一功能的代码,其中可能包含初始化GPIO、设置引脚模式、读写电平等函数。 3. **Web服务器**...

    我的树莓派学习笔记.doc

    树莓派学习笔记 树莓派是什么? 树莓派(Raspberry Pi)是一种信用卡大小的卡片式电脑,基于 Linux 系统,由英国的慈善组织“Raspberry Pi 基金会”开发,旨在为学生计算机编程教育提供支持。该基金会的宗旨是让...

    树莓派Qt开发入门(二):超声波测距实验——GPIO的读写操作+多线程编程

    在本教程中,我们将深入探讨如何使用树莓派进行Qt开发,特别关注超声波测距实验,同时涉及GPIO...通过这个过程,你会学习到GPIO操作、多线程编程以及Qt GUI设计等重要技能,这些都是在树莓派上开发高级应用的关键步骤。

    树莓派2——驱动5110

    树莓派是一个基于Linux操作系统的单板计算机,拥有丰富的GPIO(通用输入输出)引脚,可以与外部硬件进行交互。在树莓派上驱动5110液晶屏,首先需要理解5110的硬件接口,它通过SPI(串行外设接口)或I2C通信协议连接...

    树莓派GPIO控制

    树莓派内核中已经编译自带了 gpio 的驱动,我们常通过一些第三方写好的库函数来完成具体的操作,比较常见的操作库函数有: python GPIO 开发语言——python 简单介绍——树莓派官方资料中推荐且容易上手。python...

    树莓派学习参考资料分享

    这本书对于初学者来说是很好的起点,能够系统地学习树莓派的基础操作。 "树莓派100个精彩案例.pdf" 提供了100个不同的实践项目,这些案例涵盖了树莓派在各种应用场景下的实际操作,例如智能家居、自动化、媒体中心...

    树莓派驱动ov7670 带fifo版

    `Sensor.h`可能定义了与OV7670交互所需的函数和数据结构,例如读写寄存器的函数声明,以及与GPIO操作相关的宏定义。 在项目中,fifo被用作一种数据缓冲区,用于存储从OV7670捕获的图像数据,然后这些数据可以通过...

    树莓派 Python GPIO包

    总之,Python GPIO包(RPi.GPIO)为树莓派提供了强大的GPIO控制功能,通过学习和实践,你可以创建各种有趣的硬件项目,将树莓派转变为智能家居中心、自动化控制器或者DIY电子设备的核心。记得在编写代码时,确保安全...

    树莓派gpio口测试程序

    树莓派gpio4测试程序,复制到pi目录中,然后运行终端,输入python gpio4blink.py,就可以看到gpio4口led闪烁,前提gpio4口接了一个led

    树莓派GPIO测试程序

    树莓派GPIO测试程序 ,树莓派GPIO控制LED亮灭程序。使用之前需安装GPIOpython库。

    15.树莓派GPIO口设备连接篇1

    【树莓派GPIO口设备连接】是树莓派爱好者经常进行的实践操作,主要用于与外部硬件交互,例如LED灯的控制。本篇主要讲解如何利用树莓派的GPIO口连接LED,并通过Home Assistant (HA) 和 NodeRED 实现远程控制。 首先...

    DSP入门学习笔记2——从流水灯到GPIO

    "DSP入门学习笔记2——从流水灯到GPIO" 本文主要介绍了DSP入门学习笔记的第二部分,从流水灯到GPIO的控制。流水灯是硬件学习的基础,犹如Hello World之于软件学习。下面将详细介绍流水灯的实现及GPIO控制的编程。 ...

    win10iot(树莓派2)GPIO输入输出

    标题 "win10iot(树莓派2)GPIO输入输出" 涉及到的是在Windows 10 IoT Core(简称Win10IoT)操作系统上,利用树莓派2的GPIO引脚进行数字信号的输入与输出操作。Win10IoT是微软为物联网设备开发的一个轻量级版本的操作...

    数码管实验_笔记——嵌入式

    总结来说,“数码管实验_笔记——嵌入式”涵盖了嵌入式系统中STM32微控制器驱动数码管的基础知识,包括数码管的结构与工作原理、STM32的GPIO配置、驱动程序编写,以及开发环境的使用。通过这样的实验,不仅可以提升...

    安卓socket控制树莓派GPIO(含server及client)

    2. **Python的RPi.GPIO库**:在树莓派上,Python的RPi.GPIO库是常用的GPIO操作库,提供了简单易用的API来读写GPIO引脚状态。 3. **Socket编程**: - **服务器端(Server)**:使用Python编写server.py文件,创建一...

    树莓派GPIO驱动

    1. bcm2835库:这个库直接操作树莓派的硬件寄存器,可以实现低级的GPIO操作。例如,初始化库、设置GPIO引脚模式(输入/输出)、读写GPIO电平、设置中断等。使用bcm2835,你需要具备一定的C语言基础和对硬件原理的...

Global site tag (gtag.js) - Google Analytics