【发布时间】:2013-08-27 19:28:14
【问题描述】:
我想学习对 Raspberry Pi 进行编程,而且我非常擅长使用 Node.js。近五年来我没有接触过 C++。我知道我可以在树莓派上加载 Linux,但是如何在 Node 中进行编程?
如果是这样,我该如何处理输入/输出之类的事情?例如,如果我想制作一个检测运动并发出哔声的简单设备,是否可以通过 Pi 上的 Node.js 实现?
【问题讨论】:
标签: node.js raspberry-pi raspbian
我想学习对 Raspberry Pi 进行编程,而且我非常擅长使用 Node.js。近五年来我没有接触过 C++。我知道我可以在树莓派上加载 Linux,但是如何在 Node 中进行编程?
如果是这样,我该如何处理输入/输出之类的事情?例如,如果我想制作一个检测运动并发出哔声的简单设备,是否可以通过 Pi 上的 Node.js 实现?
【问题讨论】:
标签: node.js raspberry-pi raspbian
就像 Dave Swersky 在评论中所说,是的,你可以,这里有一个完整的教程: http://blog.rueedlinger.ch/2013/03/raspberry-pi-and-nodejs-basic-setup/
我会添加它运行良好,但您需要使用 Leafpad(如果是 GUI)或 nano 来编辑您的代码,它们是很好的文本编辑器,但没有语法着色。
编辑:对于那些不想看到链接的人,这里是它的快速简历:
为节点创建一个新目录:
sudo mkdir /opt/node
获取Raspbian的包:(vX.XX.X将被最新的替换)
wget http://nodejs.org/dist/vX.XX.X/node-vX.XX.X-linux-arm-pi.tar.gz
tar xvzf node-vX.XX.X-linux-arm-pi.tar.gz
sudo cp -r node-vX.XX.X-linux-arm-pi/* /opt/node
将 node.js 添加到 PATH:
nano /etc/profile
在“导出”之前添加这个
NODE_JS_HOME="/opt/node"
PATH="$PATH:$NODE_JS_HOME/bin"
export PATH
它是链接中解释的node.js基本安装的盗版,我没有编写它,但在两个Raspberry上测试成功。
有关为什么使用这些命令以及如何正确配置 RPi 的更多信息,请转到链接,真正的作者值得称赞。
EDIT 3(在 EDIT2 之前插入,因为与问题更相关)
对于带有 RPi 的硬件 io,您可以使用流行的 socket.io 包,或者一些专门的模块作为 pi-gpio。
编辑 2: 对于 nano 语法着色,将 this 复制到名为 js.nanorc 的文件中,此示例位于 ~/ 然后使用这个命令:
cp /etc/nanorc ~/.nanorc
nano ~/.nanorc
创建用户 nano 配置文件并进行编辑。
阅读所有选项并取消注释您想要的,我建议激活:
set autoindent
set tabspace 4
set tabstospace
set whitespace " °"
所以你有自动缩进,制表符由 4 个空格组成,通过输入 alt + P,你会看到所有空格都被 ° 替换(只是视觉上的,它们不会在文件中替换)
然后,在文件末尾键入
include "~/js.nanorc"
所以你现在也可以为 javascript 着色了。
【讨论】:
我认为您需要一些 C 移植模块来控制硬件,但我不知道 如果有的话。
不过你可以看看Tessel,它是一个嵌入式 专用于 JavaScript 的开发硬件,因此可以运行 Node.js 您的 Pi 上的应用程序对其进行编程。
【讨论】:
没用过,但也许这是你需要的:https://npmjs.org/package/pi-gpio
【讨论】:
在 Linux 系统上,您可以通过与 procfs、sysfs 和 configfs 文件系统上的文件进行交互来做很多有趣的事情,这些文件系统安装在 /proc、/sys 和 /sys/kernel/config 挂载点,分别。
这些允许您观察系统的状态和配置,并且在许多情况下还提供通过将特定数据写入文件来更改该配置的机制。不需要 C/C++ 原生插件 - 标准的 fs 模块就足够了。
例如,查看ledctl 库,它允许您通过在 sysfs 挂载点上向 LED 的配置端点读取和写入数据来控制 LED(免责声明:我是模块)。
如果您想使用 Raspberry PI 上可用的 GPIO 引脚与您的自定义设备进行交互,可以使用 Node.js 的 plenty of native addons,它提供了一个很好的 JavaScript API 来在特定引脚上发送和接收信号。
因此,要创建一个检测运动并发出哔声的设备,您将运动检测器和蜂鸣器连接到 GPIO(很可能),使用您选择的 GPIO 模块之一控制引脚并开始监听传入信号。当您收到一个信号时,您会向蜂鸣器发出另一个信号。
【讨论】: