`
iaiai
  • 浏览: 2203568 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

树莓派新手入门教程 - node下使用gpio

 
阅读更多
安装 Node

为了运行 Node 脚本,树莓派必须安装 Node,可以参考这篇文章
$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt install nodejs

正常情况下,Node 版就已经安装成功了。
$ node -v
v8.1.0


点亮 LED
树莓派提供了一组对外的 IO 接口,称为 GPIO( 通用 IO 接口,General-purpose input/output)。

它的 40 个脚的定义如下图。

注意,左上角的第1针(3.3V)是一个方块,其他针脚都是圆的。将树莓派翻过来,背后可以看到 GPIO 有一个角是方的,通过这种方法就可以确认哪一个针眼是3.3V。

通过 GPIO ,树莓派可以与其他电子元件连接。下面根据 Jonathan Perkin 的文章,使用树莓派连接 LED 二极管。

这里需要用到面包板。本质上,面包板就是几根导线,上面开了许多可以连到导线的孔。

+极和-极是两根垂直的导线,标着1、5、10这些数字的行,每一行都是一根水平的导线。导线与导线之间互不连接,另外,面包板的左右两半也是互不连接的。

然后,按照下面的图,将树莓派、面包板、LED 灯、电阻连起来。

上图中,红色导线表示电流的正极,从 GPIO 的第1针(3.3V)连到面包板。黑色导线表示电流的负极,从 GPIO 第三排的第6针(ground)连到面包板。它们连到面包板的哪个眼并不重要,但必须保证能组成一个完整的电路(上图的箭头流向)。注意,LED 二极管也有正负极,长脚表示正极,短脚表示负极。电阻没有正负极。

连接完成后,打开树莓派的电源,LED 应该就会亮起来了。

LED 控制脚本
下面,我们使用 Node 脚本控制 LED。

首先,将正极的导线从1号针脚(3.3V)拔出,插到第6排的11号针脚(上图的 GPIO 17)。这个针脚的电流是脚本可以控制的。

然后,在树莓派上新建一个实验目录,并安装控制 GPIO 的 Node 模块rpio。。
$ mkdir led-demo && cd led-demo
$ npm init -y
$ npm install -S rpio

接着,新建一个脚本led-on.js。
// led-on.js
var rpio = require('rpio');

// 打开 11 号针脚(GPIO17) 作为输出
rpio.open(11, rpio.OUTPUT);

// 指定 11 号针脚输出电流(HIGH)
rpio.write(11, rpio.HIGH);

运行这个脚本,应该就会看到 LED 灯泡变亮了。
$ node led-on.js

再新建一个led-off.js脚本,只要改一行(完整代码看这里)。
// led-off.js
//...

// 指定 11 号针脚停止输出电流(LOW)
rpio.write(11, rpio.LOW);

运行这个脚本,LED 灯泡应该就会熄灭了。
$ node led-off.js

有了这两个脚本,让 LED 闪烁就轻而易举了。新建一个led-blink.js脚本。
// led-blink.js
var rpio = require('rpio');
rpio.open(11, rpio.OUTPUT);

function blink() {
  rpio.write(11, rpio.HIGH);
  setTimeout(function ledoff() {
    rpio.write(11, rpio.LOW);
  }, 50);
}

setInterval(blink, 100);

上面的脚本让 LED 每秒闪烁10次。
$ node led-blink.js

HTTP 服务器
通过控制 LED 可以做很多事,比如架设一个 HTTP 服务器,每当有人访问,LED 就闪烁一下。

首先,在刚才的目录里面装一个服务器模块。
$ npm install -S server

然后,新建一个脚本server.js(完整代码看这里)。
// server.js
var server = require('server');
var { get } = server.router;

// ...

server({ port: 8080 }, [
  get('/' ,  ctx => {
    console.log('a request is coming...');
    blink();
  }),
]);

console.log('server starts on 8080 port');

运行这个脚本。
$ node server.js

然后,再打开一个命令行终端,访问8080端口,LED 就会闪一下。
$ curl http://localhost:8080

  • 大小: 24.5 KB
  • 大小: 24.2 KB
  • 大小: 22.3 KB
  • 大小: 41.3 KB
  • 大小: 45.1 KB
分享到:
评论

相关推荐

    树莓派镜像----基于2015-05-05-raspbian-wheezy

    Raspbian提供的GPIO(General Purpose Input/Output)库使得用户可以方便地控制树莓派的物理引脚,与外部硬件进行交互。 总的来说,"树莓派镜像----基于2015-05-05-raspbian-wheezy"是一个为树莓派准备的Linux发行...

    RT-N14U-GPIO-1-youku1-128M_3.4.3.9-099.trx

    RT-N14U-GPIO-1-YKL1-128M_3.4.3.9-099.trx 路由器固件,padavan固件,支持优酷路由器L1

    树莓派入门指南.pdf

    ### 树莓派入门指南知识点总结 #### 一、树莓派简介 - **定义**:树莓派是一款集成了多种组件的小型计算机,尺寸仅相当于一张信用卡大小,旨在通过低成本的方式提供基本的计算机功能。 - **核心特点**:采用ARM架构...

    华硕改版RT-N14U-GPIO-1-youku1-128M_3.4.3.9-099

    华硕改版RT-N14U-GPIO-1-youku1-128M_3.4.3.9-099

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

    在本教程中,我们将探讨如何通过Web界面控制树莓派的GPIO(通用输入输出)针脚,实现高电平和低电平的切换,从而远程操控物理设备。这将涉及到以下几个关键知识点: 1. **树莓派GPIO接口**:树莓派拥有多种GPIO引脚...

    第三讲-树莓派应用入门-GPIO编程1

    树莓派应用入门:GPIO编程 树莓派是一种基于ARM架构的微型电脑,广泛应用于教育、物联网(IoT)项目和个人娱乐。其强大的GPIO(General Purpose Input/Output)接口使得用户可以直接与外部硬件交互,实现各种创新应用...

    树莓派3 使用 RFID-RC522模块(2020.8.1

    树莓派 3 使用 RFID-RC522 模块 RFID-RC522 模块是一个基于频率识别(RFID)的无线通讯模块,通过串行外设接口(SPI)与树莓派 3 进行通讯。下面是使用树莓派 3 搭配 RFID-RC522 模块的相关知识点: 一、树莓派 3 ...

    树莓派5 pi-star MMDVM

    根据给定的信息,本文将详细解释“树莓派5 pi-star MMDVM”涉及的关键知识点,包括树莓派5的基本特性、pi-star平台的功能及应用、MMDVM软件的工作原理,以及与远程桌面访问和文件上传相关的技术细节。 ### 一、...

    H大2021.6.19日版RT-N14U-GPIO-12-xiaodu-ji1S-128M_3.4.3.9-099.trx

    H大2021.6.19日版RT-N14U-GPIO-12-xiaodu-ji1S-128M_3.4.3.9-099.trx

    H大2021.6.19日版RT-N14U-GPIO-1-youku1-128M_3.4.3.9-099.trx

    H大2021.6.19日版RT-N14U-GPIO-1-youku1-128M_3.4.3.9-099.trx

    shutdown_GPIO_python_开关机_树莓派_

    标题 "shutdown_GPIO_python_开关机_树莓派_" 指的是使用Python编程语言通过树莓派的GPIO(General Purpose Input/Output)接口实现设备的开关机功能。在这个项目中,我们将关注以下知识点: 1. **GPIO 接口**:...

    RT-N14U-GPIO-1-7620-128M_3.4.3.9-099.trx

    7620cpu通用老毛子路由器固件

    STM32-入门--程序解释GPIO.docx

    "STM32 入门-程序解释 GPIO" 本文档主要介绍了 STM32 微控制器的 GPIO 模块的基本概念和配置方法。GPIO(General Purpose Input/Output)是微控制器中的一个基本器件,负责输入和输出信号。本文档将详细介绍 GPIO ...

    树莓派-OLED013-I2C-C.rar

    标题中的“树莓派-OLED013-I2C-C.rar”表明这是一个关于树莓派与1.3英寸OLED显示器交互的项目,使用的编程语言是C,并且通过I2C(Inter-Integrated Circuit)总线进行通信。I2C是一种多主机、串行、双向通信协议,常...

    树莓派用MQ-2检测有无可燃有害气体使用教程.pdf

    本教程主要介绍如何使用树莓派结合MQ-2烟雾传感器检测有无可燃有害气体。MQ-2传感器是一款能够检测多种可燃气体的传感器模块,常用于火灾报警系统、气体泄漏报警等场合。树莓派是一款小型计算机,以其小巧、功能强大...

    树莓派系统监控--CPU温度监控和内存使用监控.zip

    树莓派(Raspberry Pi)是一款由英国树莓派基金会开发的小型、低成本、高度可...此外,围绕树莓派已建立起庞大的社区,共享着数不清的教程、软件资源和创意项目,极大地促进了STEM教育的发展和技术爱好者的探索精神。

    树莓派GPIO初级使用学习教程.pdf

    树莓派GPIO初级使用学习教程主要介绍了树莓派GPIO(通用输入输出)接口的使用方法,这对于初学者来说是一个非常重要的入门指南。树莓派作为一种小型的计算机,其GPIO接口提供了直接与物理世界交互的能力,使得树莓派...

    树莓派4b之u-boot.rar

    在树莓派4B上使用U-Boot可以提供更高级的定制能力和调试选项。 一、U-Boot基础知识 1. **U-Boot的作用**:U-Boot是系统启动的第一部分软件,它的主要任务包括硬件初始化、设备检测、网络启动支持、加载内核和文件...

    老毛子 Padavan 固件7620没无线RT-N14U-GPIO-1-youku1-128M_3.4.3.9-099

    老毛子 Padavan 固件

Global site tag (gtag.js) - Google Analytics