Как поставить node.js на Raspberry Pi

Установка: http://thisdavej.com/beginners-guide-to-installing-node-js-on-a-raspberry-pi/

Если не завелось с первого раза http://askubuntu.com/questions/575505/glibcxx-3-4-20-not-found-how-to-fix-this-error

Если не завелось со второго раза http://stackoverflow.com/questions/32563173/installing-node-js-on-raspberry-pi-2

Быстрый старт Nodemcu ( ESP8266 ) на Arduino

1. Качаем Arduino IDE 1.6.8 или выше.

2. Запускаем.

3. Открываем файл>настройки

4. Вбиваем в дополнительные ссылки http://arduino.esp8266.com/stable/package_esp8266com_index.json

5. Открываем Инструменты>Плата>Менеджер плат

6. Вбиваем в поисковик esp8266

7. Устанавливаем

8. Выбираем плату NodeMCU

9. Открываем пример WiFi web server

10. Вбиваем SSID и Password

11. Profit!

 

 

Оригинал: http://www.instructables.com/id/Quick-Start-to-Nodemcu-ESP8266-on-Arduino-IDE/

ESP8266 Hello world

Обзор ESP8266, с чего начать?

Wi-Fi модули с ESP8266 чипом сейчас активно набирают обороты. Есть сайт посвященный данному кристаллу.

Сами разработчики предлагают несколько вариантов своего продукта, называются ESP1-12E.

Различаются они лишь по 2м параметрам:

  • количество пинов
  • наличие/отсутствие антенны

Так вот, даже не хочу рассматривать какие-то зарезанные варианты типа ESP-01, у которого выведен только  UART.

Наибольшим функционалом обладает ESP-12E (купил здесь: http://ru.aliexpress.com/item/Free-Shipping-2pcs-lot-ESP8266-remote-serial-Port-WIFI-wireless-module-through-walls-Wang-ESP-12/32256161821.html ). Единственное, эту платку не положишь на макетку, шаг выводов 2 мм.

Для этого можно просто взять готовую платочку http://ru.aliexpress.com/item/Serial-WIFI-ESP8266-module-adapter-plate-Full-IO-port-leads-you-can-choose-the-ESP-07/32380914509.html ну или мучатся.

Ну и конечно же есть очень много готовых решений (как Arduino):

  • ESPDuino

 

  • sparkfun esp8266 thing

  • ESPresso

  • Adafruit

  • WeMos

  • Olimex

ESP8266 прошивается из под Arduino IDE

Для меня, как и для многих, наверное, будет очень важным плюсом, что его можно прошить через Arduino IDE. По этому повоу есть много статей, вот 2 например:

Свои решения используя плату

Вот и мое решение, которое конечно с первого раза не завелось. Пришлось дорабатывать.

 

Ссылочки:

  • https://www.youtube.com/watch?v=0J1Nt4q7uCQ
  • http://www.instructables.com/id/Programming-the-ESP8266-12E-using-Arduino-software/step10/Configuring-COM-Port/
  • https://raw.githubusercontent.com/nodemcu/nodemcu-devkit/master/Documents/NODEMCU_DEVKIT_SCH.png
  • http://esp8266.github.io/Arduino/versions/2.0.0/doc/boards.html

Raspberry Pi 2 Web Server

Все что нужно чтобы запустить свой веб сервер на малинке описано в этой статье. Джентельменский набор так сказать.

Подразумеваю что на Малине стоит Raspberian и есть доступ к консоли (через удаленный доступ или напрямую)

Автоподключение Raspberry Pi 2 к Wi-Fi

Если вы хотите чтобы малинка автоматически конектилась к вашему файфаю то нужно сделать следующее. Перевод с (http://weworkweplay.com/play/automatically-connect-a-raspberry-pi-to-a-wifi-network/)

Насраиваем файл с соединениями:

$ sudo nano /etc/network/interfaces

нужно поменять строчку:

auto wlan0

и добавить строчки в конце:

allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

Далее нажимаем Ctrl+X затем Y.

Теперь надо отредактировать файл на который мы ссылаемся.

$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Там нужно записать параметры сети к которой подключаемся:

network={
ssid="НАЗВАНИЕ_СЕТИ"
psk="ПАРОЛЬ"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
auth_alg=OPEN
}

Все готово.

Проверить просто:

$ sudo reboot

После перезагрузки

ping google.com

Статический IP

Если вам надо статический IP то нужно заменить dhcp на static и дописать в интерфейс:

iface wlan0 inet static
address 192.168.1.155 #Адрес который хочешь получить
netmask 255.255.255.0 
gateway 192.168.1.1 #Адрес роутера

Установка Apache и PHP на Raspberry Pi 2

Установка Apache2 и PHP позволит этому устройству отображать веб странички. Перевод с  https://www.raspberrypi.org/documentation/remote-access/web-server/apache.md.

Установить Apache:

sudo apt-get install apache2 -y

Чтобы протестить можете в браузере на самой малине написать localhost или если вы подключены к сетке то с другого устройства зайти по IP. Чтобы узнать IP Raspberry Pi нужно написать

hostname -I

Если какая-то страничка загрузится, то все ок. Едем дальше.

Ставим PHP:

sudo apt-get install php5 libapache2-mod-php5 -y

После установки в папке /var/www/html/index.html можно заменить на index.php с содержимым:

<?php echo date('Y-m-d H:i:s'); ?>

При обновлении браузера будет отображаться время.

Установка MySQL на Raspberry Pi 2

Ставим MySQL. Оригинал: http://raspipress.com/2014/06/tutorial-install-mysql-server-on-raspbian/

Пробиваем прошивку:

sudo uname -a

Если ниже 3.12.20 то нужно обновить:

sudo rpi-update f6eef32dd6388c3b04dbf462bd324d93281bf397

И перезагрузиться:

sudo reboot

Ставим:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mysql-server --fix-missing

Во время установки он будет просить пароль для рута.

Чтобы из PHP можно было работать с БД нужно поставить следующий пакет:

sudo apt-get install mysql-client php5-mysql

Заполнять БД из командной строки я считаю кощунством так что поставим PHPMyAdmin.

Установка PHPMyAdmin на Raspberry Pi 2

Ставим PHPMyAdmin

http://raspipress.com/2012/09/tutorial-install-phpmyadmin-on-your-raspberry-pi/

Все просто:

apt-get install phpmyadmin

Добавляем в конфиг апача:

$ sudo nano /etc/apache2/apache2.conf

В последней строке дописываем:

Include /etc/phpmyadmin/apache.conf

Перезагружаем Apache:

/etc/init.d/apache2 restart

Все. теперь можно работать с базой данных:

http://localhost/phpmyadmin/

 

 Танцы с бубном вокруг /etc/network/interfaces

 

PID ( ПИД ) регулятор всем

Что такое ПИД регулятор

Простым языком – это штука которая делает чтобы работало лучше, например: машина не глохла на холостых в мороз, или сливной бачок наполнялся до верху после слива, или квадрокоптер находился в горизонте в ветреную погоду. ПИД регулятор является обобщением любого регулятора который используется в реальности. Дело в том, что он работает с физически значимыми параметрами:

  • Сам параметр
  • его скорость и
  • ускорение

Остальные производные особо никого не интересуют. Вот и все. Одной из важнейших особенностей регуляторов вообще – это его входной сигнал. Регулятор всегда работает с рассогласованием системы. Это разница между целевым значением  параметра и реальным значением. Например: (значение холостого хода – скорость двигателя), (высота бачка – уровень воды), (заданное угловое положение коптера – угловые положения квадрокоптера).

Преобразование

Для человека, который хоть немного учился в университете будет проще понимать ПИД регулятор как какое-то звено цепи, а не через абстракции типа: “Дифференциальная составляющая ускоряет процесс, Интегральная – убирает колебательность, Пропорциональная добавляет жесткость”. Это все ужасно раздражает, особенно когда не работает на практике.

Посмотрим на уравнение регулятора (из Wiki):

Если вы знакомы с Преобразованием Лапласа или проще говоря:

Можно представить ПИД регулятор в следующем виде, и сразу вынести 1/s:

Вот так просто сложный ПИД стал простым квадратным уравнением. Теперь нужно найти корни квадратного уравнения. И получим более удобное выражение:

Если вынести s1 и s2, а потом заменить на красивые буковки, получим очень даже удобное выражение. (Чего с этим делать объясню дальше)

Настройка ПИД регулятора

Можно найти кучу статей как настроить ПИД регулятор. При этом большинство из них задаются какой-то магией которая исходит от конкретного случая. Обобщенной теории же нигде не найти.

Основная задача регуляторов – это:

  • Сделать устойчивым
  •  Или Улучшить

процесс регулирования. Соответственно для выполнения первой задачи есть конкретные критерии, а вторую задачу решают увеличением коэффициента по контуру до тех пор пока не дойдем до необходимости решать первую.

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

  Передаточная функция

Из выражения выше мы выяснили, что ПИД регулятор это всего лишь 3 полюса в числителе и 1 в знаменателе.

Или 2 форсирующих звена и одно интегрирующее. Забьем пока на интегрирующее звено. Самое интересное в этих скобках. Дело в том что при решении квадратного уравнения может получиться несколько случаев:

  • (Ts+1)(Ts+1)
  • (Ts-1)(Ts+1)
  • (Ts-1)(Ts-1)
  • (Ts+1)(Ts-1)

Цвета соответствуют цветам графиков. (T1 = 0.1c, T2 = 1c)

Особенность звена (Ts-1) в том что фазовая характеристика начинается с +180 и заканчивается в +90. А обычное форсирующее звено начинается с 0 и идет до 90.

  • (Ts-1)
  • (Ts+1)

Полезная книжка: http://infoterra.ru/oty/books/files/tau_dlya_chainikov.pdf

Запускаем Cubieboard2 UART

Для работы с UART на Cubieboard2 под Android необходимо:

  1. Поставить Android Terminal Emulator
  2. Поставить например Serial Port API Sample или любую другую программу для работы с UART
  3. Иметь на компе любой терминал. Я использую такой терминал

Теперь собственно мы готовы к работе.

Запускаем Терминал эмулятор

Пишем в нем:

$ su
# ls -l /dev/ttyS*

Получаем список UART портов. У меня ttyS0, ttyS2. У них нет прав на запись и чтение, даем их им (по этому поводу моно почитать здесь):

# chmod 666 /dev/ttyS*

ОК. Идем дальше. Запускаем Serial Port:

Setup -> Device -> /dev/ttyS0
Setup -> Baud rate -> 115200

Нажимем Loopback.

Соединяемся

Теперь требуется каким-либо образом соединить UART компа с устройством.

Для этого можно использовать FT232RL или плату о которой я говорил в прошлый раз. Если используете DVK521 то не забудьте подключить проводок:

На Cubie и на DVK521 соединить UART.

Переходим к компу

К USB порту на расширительной плате подключаем комп. Драйверы для платы PL2303 можно установить здесь.

Запускаем Terminal на компутере. Выбираем соответствующий COM порт и скорость 115200, соединяемся. Если на Cubie запустить Loopback то в Терминале сразу польется поток хрени. Это значит что все работает.

Более вразумительной проверкой работоспособности можно в Console

Первый запуск DVK521 Cubieboard

Напишу пока не забыл.
Купил такую штуку

Для Cubieboard
Вот есть видео как ее установить

Там в видео одна проблема, провод для Тач Скрина (маленький) надо вставлять синей стороной вверх с обоих концов.

И лучше сразу выдернуть Джампер BUZ_JMP. С ним при старте платы идет долгий писк.

Запуск на андройде

Запуск на Android требует дополнительных усилий. А именно обновление прошивки. На этой страничке есть образ (img) для платы с Android 4.2 адаптированный под плату. Чтобы его установить без лишних плясок с бубном вам понадобится PhoenixSuit. В папке с ним есть установщик драйверов, его необходимо запустить. После запускаем саму программу. Следуя инструкции отсюда нам надо:

  1. Запустить Suit
  2. Открыть закладку Firmware
  3. Выбрать необходимый образ
  4. Подключить кабель miniUSB к порту USB OTG на Cubieboard
  5. Нажать на Cubieboard на кнопку FEL расположенную на торце платы, возле разъема USB OTG
  6. Не отпуская кнопку подключить кабель USB к ПК
  7. После подключения к ПК, зажатую кнопку FEL отпустить (Отпустить только после запуска установки на компе)

Он ставится где-то минуты 2 и все ОК.