前段时间集团举行前端IOT比赛,借此机会熟悉了树莓派相关的东西,特此记录一些相关的文档和开发指南。

先介绍一些树莓派的入门教程

阮一峰的树莓派入门

微雪电子-树莓派硬件中文官网

ssh链接树莓派

ssh pi@dd.dd.dd.dd(ip)
密码:raspberry

设置显示设备

推荐选购3.5吋或者5吋的HDMI显示设备,我第一次买的3.2吋的串口显示器,占用了我20个串口的针脚。

设备链接见这里

使用3.5吋显示器

cd /boot/LCD-show/
./LCD35-show
使用HDMI输出

cd /boot/LCD-show/
./LCD-hdmi
设置旋转屏幕

设置显示方向
安装完触摸驱动后,可以通过运行以下命令修改屏幕旋转方向。

旋转0度:

cd /boot/LCD-show/
./LCD35-show 0
旋转90度:

cd /boot/LCD-show/
./LCD35-show 90
旋转180度:

cd /boot/LCD-show/
./LCD35-show 180
旋转270度:

cd /boot/LCD-show/
./LCD35-show 270
声音设置为非HDMI输出

Bash
sudo amixer cset numid=3 1
需要注意的是如果你是浏览器播放声音。。拔掉显示器后貌似浏览器就进入后台模式不播放声音了。

介绍一些相关的nodejs的库

https://github.com/rwaldron/j...

一个适配各种板子的串口的基础库,当你需要点亮LED小灯泡的时候需要用到它

Raspi-io

Raspi-io is a Firmata API compatible library for Raspbian running on the Raspberry Pi that can be used as an I/O plugin with Johnny-Five.

和上面一个库搭配使用。

rpio

https://github.com/jperkin/no...

This is a high performance node.js addon which provides access to the Raspberry Pi GPIO interface, supporting regular GPIO as well as i²c, PWM, and SPI.

一个控制打开某个串口针脚的基础库。

serialport

https://github.com/EmergingTe...

一个链接控制硬件的基础库,比如控制USB串口,和链接USB串口的设备进行通信等,他有很多版本,树莓派的版本见这里

https://www.npmjs.com/package...

安装有点,麻烦。我折腾了3小时、、、、

点亮一个LED灯

LED灯分为简单的两个针脚的二极管灯,点亮见前面阮一峰博客,下面重点介绍一下RGB的LED灯


如上所示。这样的灯点亮的教程比较少。

第一步选择对应的串口针脚,首先不要把插针脚2,即:+5V口那个。

我插了两个分别是RGB为:[29,31,33],[36,38,40]

代码如下

var five = require("johnny-five");
var Raspi = require('raspi-io')
var rpio = require('rpio');
var isLED1On=false;
var isLED2On=false;
var LED = {
LED1:null,
LED2:null,
init(LED1=[29,31,33],LED2=[36,38,40]){
var board = new five.Board({
io:new Raspi({enableSoftPwm:true})
});
this.LED1=LED1;
this.LED2=LED2
board.on('ready',function(){
return new Promise(function(resolve,reject){
var led1 = new five.Led.RGB({
pins: {
red: `P1-${LED1[0]}`,
green: `P1-${LED1[1]}`,
blue:`P1-${LED1[2]}`,
}
})
var led2 = new five.Led.RGB({
pins: {
red: `P1-${LED2[0]}`,
green: `P1-${LED2[1]}`,
blue:`P1-${LED2[2]}`,
}
})
// 打开 11 号针脚(GPIO17) 作为输出
rpio.open(LED1[0], rpio.OUTPUT);
rpio.open(LED1[1], rpio.OUTPUT);
rpio.open(LED1[2], rpio.OUTPUT);
rpio.open(LED2[0], rpio.OUTPUT);
rpio.open(LED2[1], rpio.OUTPUT);
rpio.open(LED2[2], rpio.OUTPUT);
rpio.open(LED1[0], rpio.HIGH);
rpio.open(LED1[1], rpio.HIGH);
rpio.open(LED1[2], rpio.HIGH);
resolve(board);
})
})
},
openLED1(){
console.log('led1'+JSON.stringify(this))
rpio.write(this.LED1[0], rpio.HIGH);
rpio.write(this.LED1[1], rpio.HIGH);
rpio.write(this.LED1[2], rpio.HIGH);
isLED1On=true;
},
openLED2(){
rpio.write(this.LED2[0], rpio.HIGH);
rpio.write(this.LED2[1], rpio.HIGH);
rpio.write(this.LED2[2], rpio.HIGH);
isLED2On=true;
},
closeLED1(){
console.log('led1'+JSON.stringify(this))
rpio.write(this.LED1[0], rpio.LOW);
rpio.write(this.LED1[1], rpio.LOW);
rpio.write(this.LED1[2], rpio.LOW);
isLED1On=false;
},
closeLED2(){
rpio.write(this.LED2[0], rpio.LOW);
rpio.write(this.LED2[1], rpio.LOW);
rpio.write(this.LED2[2], rpio.LOW);
isLED2On=false;
},
flashLED1(){
if(isLED1On){
return;
}
var self = this;
self.openLED1();
setTimeout(function () {
self.closeLED1();
},3000);
},
flashLED2(){
if(isLED2On){
return;
}
var self = this;
self.openLED2();
setTimeout(function () {
self.closeLED2()
},3000);
}, }
module.exports={
led:LED
}

更多内容详见我的博客

nodejs和树莓派开发以及点亮RGB的LED灯代码的更多相关文章

  1. 树莓派GPIO控制RGB彩色LED灯

    树莓派GPIO通过PWM来控制RGB彩色LED灯,可以显示任何我们想要的颜色. RGB模块简介 这个RGB彩色LED里其实有3个灯,分别是红灯.绿灯和蓝灯.控制这三个灯分别发出不同强度的光,混合起来就 ...

  2. Ardunio控制RGB的LED灯显示彩虹渐变色.

    由于我使用的是共阴极的RGB LED,如果你的是共阳极的,接线的时候要注意一下. 其他没什么不同 //定义RGB色彩的输出I/O ; ; ; //标记颜色变化的方式,增加值还是减小值 bool red ...

  3. 01 Arduino-点亮一盏LED灯

    01 硬件连接  图片比较丑 特别说明:一般默认为二极管灯的压降是 2V 均值电流为15ma,所以如果接在5V的电源上面,串联接的电阻值为200欧姆左右,可做适当调整 切记不允许把LED灯直接并联在5 ...

  4. 点亮第一个LED灯

    1.代码: #include <reg52.h> //<reg51.h>  包含52单片机寄存器库sbit led = P1^0;    //只有地址可以被8整除的 才可以用s ...

  5. 树莓派 使用python来操作GPIO 控制LED灯

    一.创建python驱动和控制GPIO 先新建一个文件夹用于放置脚本 mkdir python_gpio 进入文件夹内新建一个gpio_blink.py的脚本 cd python_gpio touch ...

  6. 74HC595点亮8个LED灯

    一.原理介绍 595有两个寄存器,都是8位的,如下所示: 595是串入并出带有锁存功能移位寄存器,它的使用方法简单: - -  在正常使用时 /SCLR接高电平,/G接低电平. - -  从SER每输 ...

  7. 嵌入式学习笔记(综合提高篇 第一章) -- 利用串口点亮/关闭LED灯

    1      前言 从踏入嵌入式行业到现在已经过去了4年多,参与开发过的产品不少,有交换机.光端机以及光纤收发器,停车场出入缴费系统,二维码扫码枪,智能指纹锁以及数字IC芯片开发等; 涉及产品中中既有 ...

  8. 嵌入式linux——点亮led灯(二)

    刚才在jz2440板子上写了一个点亮中间led的程序,前前后后十几分钟才好.最终代码 本节内容: 1. 汇编点灯 2. C点灯 3. 参数选择点灯 4. 按键点灯 1. 汇编点灯 .text .glo ...

  9. NodeMCU手把手入门:配置NodeMCU ESP8266开发板环境及点亮LED灯

    之前一直在玩树莓派,最近实验室买了些NodeMCU就想着玩一玩,没想到挺有意思的.其实树莓派能实现的功能,它大部分也可以,价格比派也便宜不少,舍不得买派的同学可以先买这个开发板玩一玩. 本文主要介绍了 ...

随机推荐

  1. UnboundLocalError: local variable ‘xxx‘ referenced before assignment

    原因 在Python函数中调用了某个和全局变量同名的局部变量,导致编译器不知道此时使用的是全局变量还是局部变量 a = 3 def func(): a+=3 func() UnboundLocalEr ...

  2. Python:time与datetime

    学习自: (10条消息) Python的time和datetime的简单使用_慢行的蜗牛-CSDN博客 Python之 time 与 datetime模块 - 叶灵溪&叶仙樱 - 博客园 py ...

  3. 关于Xgboost的笔记

  4. OS模块的补充使用---执行终端命令

    Python基础至os模块 由于近期的项目需要用到对应的终端命令去调用其他程序,因此温习一下os.system()函数: 参考文献:https://zhuanlan.zhihu.com/p/51716 ...

  5. QUIC协议详解

    声明 本文可以自由转载但需注明原始链接.本文为本人原创,作者LightningStar,原文发表在博客园.本文主体内容参考论文[1]完成. 介绍 QUIC,发音同quick,是"Quick ...

  6. 微信小程序如何测试?

    不需要安装,只要在微信里找到这个小程序打开即可使用,由于小程序的便捷,如今越来越多的平台开发方都纷纷推出自身的小程序应用. 那我们该如何进行微信小程序测试呢? 1.功能测试 功能测试以需求文档和交互视 ...

  7. 『德不孤』Pytest框架 — 12、Pytest中Fixture装饰器(二)

    目录 5.addfinalizer关键字 6.带返回值的Fixture 7.Fixture实现参数化 (1)params参数的使用 (2)进阶使用 8.@pytest.mark.usefixtures ...

  8. S5700上三层Vlan间隔离的例子

    转自:https://forum.huawei.com/enterprise/zh/forum.php?mod=viewthread&tid=247591 公司最近的无线覆盖做好了,但让人无语 ...

  9. 【Azure Developer - 密钥保管库 】使用 Python Azure SDK 实现从 Azure Key Vault Certificate 中下载证书(PEM文件)

    问题描述 在Azure Key Vault中,我们可以从Azure门户中下载证书PEM文件到本地. 可以通过OpenSSL把PFX文件转换到PEM文件.然后用TXT方式查看内容,操作步骤如下图: Op ...

  10. LGP3426题解

    真是不管什么时候来做这道题都会觉得很神仙呐... 观察一下,如果存在一个合法的印章,那么这个印章一定是这个串的前缀,也是这个串的后缀. 即合法的印章一定是原串的 \(\rm Border\). 于是设 ...