Могу ли я запрограммировать малиновый Pi с помощью Node.js?

Я хочу научиться программировать Raspberry Pi, и я очень хорош с Node.js. Я почти не касался c++ почти полвека. Я понимаю, что я могу загрузить Linux на Pi, но как я могу сделать свое программирование в Node?

Если да, то как мне обрабатывать такие вещи, как ввод/вывод? Если бы я хотел создать простое устройство, которое обнаружило движение и издало звуковой сигнал, например, это можно сделать через Node.js на Pi?

Ответ 1

Я думаю, вам нужны некоторые C-портовые модули для управления оборудованием, но я не знаю если есть.

Однако вы можете взглянуть на Tessel, который является встроенным специализированное для JavaScript, поэтому можно запустить Node.js приложения на вашем Pi, чтобы запрограммировать его.

Ответ 2

Как сказал Дэйв Свирски в комментарии, да, вы можете, здесь есть полный учебник: http://blog.rueedlinger.ch/2013/03/raspberry-pi-and-nodejs-basic-setup/

Я бы добавил, что он работает хорошо, но вам нужно будет использовать Leafpad (если GUI) или nano для редактирования вашего кода, это хороший текстовый редактор, но без синтаксической окраски.

РЕДАКТИРОВАТЬ: Для тех, кто не хочет видеть ссылку, здесь быстрое резюме:

Создание нового каталога для node:

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

Добавьте это перед 'export'

NODE_JS_HOME="/opt/node"
PATH="$PATH:$NODE_JS_HOME/bin"
export PATH

Это отрывается от базовой установки node.js, как объяснялось в ссылке, я не набрал ее, но успешно протестировал ее на двух малинах.

Для получения дополнительной информации о том, почему команда thoses и как правильно настроить RPi, перейдите по ссылке, настоящий автор заслуживает кредит.

РЕДАКТИРОВАТЬ 3 (вставлено до EDIT2, поскольку больше связано с вопросом)

Для аппаратного обеспечения io с помощью RPi вы можете использовать популярный пакет socket.io или какой-то специальный модуль как pi-gpio.

ИЗМЕНИТЬ 2: Для окраски нано-синтаксиса скопируйте this в файл с именем js.nanorc, в ~/для этого примера Затем используйте следующую команду:

cp /etc/nanorc ~/.nanorc
nano ~/.nanorc

Чтобы создать пользовательский файл nano config и отредактировать его.

Прочитайте все параметры и раскомментируйте те, которые вы хотите, я рекомендую активировать:

set autoindent
set tabspace 4
set tabstospace
set whitespace " °"

Итак, у вас есть автоматический отступ, а вкладки сделаны из 4-х пространств, и, набрав alt + P, вы видите, что все пробелы заменены на ° (только визуальные, они не заменены в файле)

Затем в конце файла введите

include "~/js.nanorc"

Итак, теперь у вас есть окраска для javascript.

Ответ 4

В системах Linux вы можете делать много забавных вещей, просто взаимодействуя с файлами на procfs, sysfs и configfs файловые системы, смонтированные в /proc, /sys и /sys/kernel/config соответственно.

Это позволяет вам наблюдать за статусом и конфигурацией вашей системы и во многих случаях также предоставлять механизмы для изменения этой конфигурации путем записи конкретных данных в файлы. Никаких дополнительных добавлений C/С++ - стандартного модуля fs будет достаточно.

В качестве примера рассмотрим библиотеку ledctl, которая позволяет вам управлять своими светодиодами просто путем чтения и записи данных на Конечные точки конфигурации светодиодов на точке монтирования sysfs (Отказ от ответственности: я являюсь автором модуля).

Если вы хотите взаимодействовать с вашими пользовательскими устройствами, используя контакты GPIO, доступные в PI малины, множество встроенных аддонов для Node.js, которые предоставляют хороший JavaScript API для отправки и получения сигналов на определенных контактах.

Итак, чтобы создать устройство, которое обнаруживает движение и издает звуковой сигнал, вы подключаете детектор движения и звуковой сигнал к GPIO (скорее всего), управляйте контактами с помощью одного из выбранных вами модулей GPIO и начинаете слушать входящие сигналы. Когда вы получаете сигнал, вы выдаете другой сигнал на звуковой сигнал.