3261浏览
查看: 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, 杜邦线 , 电阻,完美解决接线的烦恼)


硬件晒图
zero玩树莓派1图1


LED模块连接扩展板的17号口(红接正,黑接负,绿接数据线
zero玩树莓派1图2

此处参考wiki教程
zero玩树莓派1图4

BCM和BOARD定义接口规则示意图


zero玩树莓派1图7


三、程序实操


引入,小学生阶段学习过 scatch,对LED并不陌生,可以借助模块代码,解释、过渡问题。
zero玩树莓派1图3
树莓派步骤
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库,无需额外安装。

zero玩树莓派1图6


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秒


zero玩树莓派1图5



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



























txm派瑞深山锹  高级技师

发表于 2020-4-7 08:26:28

我也要学!!!/抓狂
回复

使用道具 举报

gray6666  初级技神
 楼主|

发表于 2020-4-7 21:19:04

txm派瑞深山锹 发表于 2020-4-7 08:26
我也要学!!!/抓狂

一起玩吧  
回复

使用道具 举报

txm派瑞深山锹  高级技师

发表于 2020-4-10 18:19:08

教程写的很清楚!!
回复

使用道具 举报

gray6666  初级技神
 楼主|

发表于 2020-4-11 18:42:35


玩一下,很有意思
回复

使用道具 举报

pATAq  版主

发表于 2020-4-25 01:35:35

看到了,很不错
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail