3261| 5
|
[教程] zero玩树莓派1 |
树莓派,是最近在互联网中炒得非常火热的一个词,尤其是在创客眼中树莓派更是极具意义。不清楚树莓派的人或许以为它是一种食品,但其实它却是一台电脑,一台身材只有信用卡大小的PC,能上网冲浪,做个人服务器,等等 。朋友圈晒树莓派作品之多令人眼花缭乱,新手们只有羡慕的分。 最近一直在学习新一期的国家课程方案,同时坚持探索创客空间的建设和开课;信息技术新版教材pyhton比重加大,python 成为初、高中信息技术教师常挂在嘴边的话题;如果能把树莓派及其配件作为创客实验设备引入信息技术教学,在教程序的同时让孩子们玩一下硬件,未来不可限量;我感觉设备如何挑选尤其重要;举个例子,每个学校的信息技术教师工作量应该在10-14节的周课时,而且很多老师要兼职机房管理维护或是其他后勤任务(如果你很幸运没当班主任,暂时单身,也没其他压力);但如果今天烧一批LED,明天烧一批板子,因为设备损耗问题疲于奔命,会是怎样的悲催?在这里DF社区无意间搜到了,这款块展板树莓派4B/3B+ IO扩展板;外拓ADC/PWM/IIC,支持树莓派 3B/3B+/4B,兼容DF出品扩展器(文中的LED模块是我15年买的,陪我起经历过4届学生的摧残);而且这款扩展板介绍了一个很有意思的zero库。 分享zero库入门案例LED亮灯,欢迎老师们讨论留言. 一、教学目标 1.熟悉树莓派gpio接口 2.python编程实现点亮LED灯 二、实验设备 1.树莓派 *1https://www.dfrobot.com.cn/goods-1976.html 2.树莓派扩展板*1 https://www.dfrobot.com.cn/goods-2041.html 3.LED模块*1https://www.dfrobot.com.cn/goods-72.html (2-3两个设备取代面包板,LED, 杜邦线 , 电阻,完美解决接线的烦恼) 硬件晒图 LED模块连接扩展板的17号口(红接正,黑接负,绿接数据线) 此处参考wiki教程 BCM和BOARD定义接口规则示意图 三、程序实操 引入,小学生阶段学习过 scatch,对LED并不陌生,可以借助模块代码,解释、过渡问题。 树莓派步骤 1.以pyhton 3为基础,GPIO开发需要的库(大部分系统已默认安装好) 常用库和模块参考安装命令 sudo apt install python3-gpiozero (安装gpiozerozero库) sudo apt-get install python3-rpi.gpio(安装RPi.GPIO模块) sudo apt-get install wiringpi(安装wiringpi库,方便用gpio readall看端口,C语言开发功能此文不再介绍) wiringpi库和RPi.GPIO模块,不明之处可自行请教度娘 gpiozero库 树莓派基金会的Ben Nuttal以及Dave Jones和其他贡献者编写的一个用来处理树莓派GPIO设备的接口。zero是零的意思,也有初级入门的含义,所以gpiozero库的宗旨就是为了降低使用树莓派gpio的门槛,相比于其他操纵树莓派引脚gpio的库,gpiozero用户体验更加友好,更加直观和简单。scratch图形化编程积木块编程当然降低了编程的难度,抽象的程度足够高,gpiozero就是像scratch一样,具有非常高抽象程度的,可以更加直观的控制树莓派gpio的第三方python库。gpiozero定义了诸如LED,Button,Motor等,与现实世界的传感器和硬件直接映射,跟使用常见的模块化编程软件有相同的体验,极大的降低了使用难度。 树莓派镜像默认安装了GPIO Zero库,无需额外安装。 2.程序编辑器,高手都用vim,但是考虑到初、高中学生的实际情况,改用nano编辑器编写代码 运行 命令 nano led1.py zero库代码 from gpiozero import LED #导入zero库 from time import sleep #导入time库 led = LED(17) #zero采用BCM规则定义端口 while True: #循环程序 led.on() #高电平/亮灯 sleep(1) #延时1秒 led.off() #低电平/亮灯 sleep(1) #延时1秒 RPi.GPIO模块(BOARD规则定义接口) #coding=utf-8 import RPi.GPIO as GPIO # 导入GPIO库 import time #导入time库 GPIO.setmode(GPIO.BOARD) #定义BOARD接口规则 GPIO.setup(11, GPIO.OUT) #设置11号端口 while True: GPIO.output(11, GPIO.HIGH) # 11号端口高电平,亮灯 time.sleep(1) #延时1秒 GPIO.output(11, GPIO.LOW) #11号端口低电平,关灯 time.sleep(1) #延时1秒 RPi.GPIO模块(BCM规则定义接口) #coding=utf-8 import RPi.GPIO as GPIO # 导入GPIO库 import time #导入time库 GPIO.setmode(GPIO.BCM) #定义BOARD接口规则 GPIO.setup(17, GPIO.OUT) #设置11端口 while True: GPIO.output(17, GPIO.HIGH) # 11号端口高电平,亮灯 time.sleep(1) #延时1秒 GPIO.output(17, GPIO.LOW) #11号端口低电平,关灯 time.sleep(1) #延时1秒 四、程序验证 输入命令 sudo python led1.py |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed