树莓派基于scratch2控制GPIO

本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/raspberry_scratch2_gpio_control.md

感觉这方面的资料最好优先google英文的,中文博客上竟然连scratch2用的哪套GPIO的编号都找半天…

树莓派的apt仓库里有三个scratch版本,其中scratch为稳定版,scratch2和scratch3还在测试仓库,改成了基于跨平台技术electron的开发。我在树莓派3b上scratch3打开没反应,scratch2虽然是测试版,但使用没发现问题,打开速度上明显比scratch慢。

scratch2相比scratch在GPIO上简化了大量的操作,不用通过广播的形式发送各种GPIO server的消息,将GPIO的操作简化成了两个函数。

1. 安装Scratch2

sudo apt install scratch2

2. 控制相关的GPIO口

更多模块 -> 添加扩展 选择Pi GPIO

下面会多出两个控制GPIO的函数。

set gpio *id* to *output high* 此函数用于设置gpio口,第一个指定GPIO的id,第二个指定功能,如输出高电平、输入低电平、输入模式。

gpio *id* is high? 此函数用于控制语句中作为条件,判断当前gpio口是否为高电平,通常用在输入模式下检测传感器一类的输入。

就这么简单,剩下的当成简单单片机用就行了。

GPIO 针脚图

树莓派有多种GPIO的编号方式,使用python等调用需要指定具体的编码,scratch用的是下图这种(图源自树莓派官网)。

原文地址:https://www.cnblogs.com/fly2wind/p/11939213.html

时间: 2024-07-30 04:38:00

树莓派基于scratch2控制GPIO的相关文章

EasyARM i.mx287学习笔记——通过modbus tcp控制GPIO

0 前言 本文使用freemodbus协议栈,在EasyARM i.mx287上实现了modbus tcp从机. 在该从机中定义了线圈寄存器.当中线圈寄存器地址较低的4位和EasyARM的P2.4至P2.5关联,通过modbus指令可控制GPIO的输出.本文改动自freemodbus 演示样例LINUXTCP.经过简单的改动也可用于其它Linux开发板. [相关博文] [EasyARM i.mx28学习笔记--文件IO方式操作GPIO] [EasyARM i.mx28学习笔记--安装和使用tft

Android(Linux)控制GPIO的方法及实时性分析

Linux下控制GPIO的方法有N种,详细请参考<RPi GPIO Code Samples>,文中用十多种语言演示了如何控制GPIO,非常全面详尽.因此,这里不再多做赘述,仅把调试过程中整理的脚本贴上并做简单的分析.特别说明,Linux必须有root权限!!!否则会出现/system/bin/sh: can't create /sys/class/gpio/export: Permission denied等错误. @echo off echo adb root adb root >%

EasyARM i.mx28学习笔记——通过modbus tcp控制GPIO

0 前言 本文使用freemodbus协议栈,在EasyARM i.mx287上实现了modbus tcp从机.在该从机中定义了线圈寄存器,其中线圈寄存器地址较低的4位和EasyARM的P2.4至P2.5关联,通过modbus指令可控制GPIO的输出.本文修改自freemodbus 示例LINUXTCP,经过简单的修改也可用于其他Linux开发板. [相关博文] [EasyARM i.mx28学习笔记--文件IO方式操作GPIO] [EasyARM i.mx28学习笔记--安装和使用tftp]

python控制gpio的一段代码抄的

控制gpio一个范例 1 import RPi.GPIO as GPIO 2 import time 3 4 channels = [16,18,22,24,26,19,21,23] 5 6 def init(): 7 GPIO.setmode(GPIO.BOARD) 8 for x in channels: 9 GPIO.setup(x,GPIO.OUT) 10 pass 11 12 def on(i): 13 GPIO.output(channels[i], GPIO.HIGH) 14 15

BeagleBone Black板第六课:C++编程控制GPIO基础

BBB板第六课:C++编程控制GPIO基础 在一上课我们通过Shell脚本编程实现了对GPIO端口的简单输出控制,实现对两个LED指示灯的交替点亮和关闭,接下来的一两节课,将通过C++程序来实现Shell脚本的功能.为了实现对应的程序控制,我查阅了好多资料,测试过程中发觉网上的一些程序套用过来总是出现各种各样的编译错误,压根就控制不了BBB板,不知是我的BBB板太新,还是以前的程序太旧.最后还是从头开始,重新研究BBB板的文件系统,找出头文件,找出所有相关的函数,终于实现GPIO的C++程序控制

树莓派官方自带gpio中断驱动bcm2708_gpio.c原理分析 linux 中断架构 中断子系统

上一篇记录了树莓派自带的gpio驱动(http://www.cnblogs.com/umbrellary/p/5164148.html),在bcm2708_gpio.c实现gpio驱动的同时其实也实现了中断控制器的驱动,本文记录bcm2708_gpio.c中驱动的实现. 一·bcm2708_gpio_irq_init中断初始化函数建立gpio中断描述表 static void bcm2708_gpio_irq_init(struct bcm2708_gpio *ucb) { unsigned i

红外控制GPIO

论坛里有人说要拿红外控制GPIO弄小车,问我怎么弄,我就写了这个帖子我在GPIO口上焊了4个LED,代表上下左右 不止可以控制gpio,还可以执行任意shell不是lirc,是我自己写的轻量级红外接收程序CbOS GM中有运行方法(请先加载红外驱动): cd ~/source_code/IR ./ir 然后按下遥控器的一个按键(我按"上"),得到 get key event! Key 112 Pressed get key event! Key 112 Released 记下按键代码(

Android(Java)控制GPIO的方法及耗时分析

前面两篇分别介绍了通过脚本和C代码读写/sys/class/gpio以控制GPIO.实际项目调试时经常还需要在Java代码里控制GPIO,其实现与C代码类似,唯一不同是Android权限.本文重点介绍Android6.0权限的配置并对在Java层控制GPIO的耗时做简单分析. 以高通平台为例,权限配置主要修改HLOS/device/qcom/sepolicy/common目录下的file.te.file_contexts和system_app.te三个文件. file.te修改如下, # GPI

RaspberryPi2B使用bcm2835c库控制GPIO

RaspberryPi2B使用bcm2835c库控制GPIO 网上有很多RaspberryPi控制GPIO的方法,有Python.WiringPi.bcm2835 C library 使用bcm2835 C库控制GPIO时,发现不管怎么设置,GPIO都没有反应,没有输出控制的值. 查资料发现: bcm2835的C库是bcm2835芯片专用的库,在RaspberryPI上使用没有问题,而RaspberryPi2B使用的是bcm2836芯片,虽说bcm2836和bcm2835芯片基本上一模一样,可以