FAQ Raspberry Pi

Ошибка в pm2 log при нажатии на кнопку

Ошибка возникает только на Node 2. Связана она с тем, что при дребезге кнопки звук вызывается на проигрывание несколько раз, при этом ресурсы сервера, выделенные на проигрывание предыдущего звука еще не освобождены. Таким образом нагружается процессор и заполняется оперативная память из-за чего в pm2 log отображается ошибка, говорящая о том, что не хватает ресурсов для воспроизведения звука.

В Node 3 данная ошибка исправлена. В Node 2 же она не приводит к каким-либо критическим последствиям.

Разные датчики

vcgencmd

Для просмотра вариантов ввести vcgencmd commands

Подключение жесткого диска

Подключение жесткого диска для записи видео.

  1. Подключить жесткий диск
  2. Выполнить команды:
sudo apt-get install ntfs-3g
sudo mkdir /mnt/videos
sudo chmod 777 /mnt/videos
sudo nano /etc/fstab

В конец файлы прописать: /dev/sda1 /mnt/videos ntfs-3g defaults,rw 0 1

Настройки Raspberry Pi

Производятся путем внесения изменений в файл config.txt

Документация по файлу

Доступ к файлу можно получить введя

sudo nano /boot/config.txt

Также, имеется возможность удаленно менять настройки в более удобоваримом формате (ncurses interface). Для этого необходимо ввести

sudo raspi-config

Интерфейс вполне понятный и в нем несложно разобраться

Форсирование звука через 3.5 Jack

sudo amixer cset numid=3 1

Если звук появился, то надо добавить это в автозагрузку:

sudo nano /etc/rc.local

в конец добавить до exit 0 amixer cset numid=3 1

Изменение громкости проигрываемого аудио

amixer cset numid=3 <1-int32>

Просмотр сетевых параметров сервера

ifconfig - информация о сетевых параметрах распберри

arp -a- список клиентов сети, клиентом которой является сервер

ls /dev/tty* - список доступных портов (в основном, интересны порты типа ttyACM0 или ttyAMA0)

###Просмотр загрузки сервера

pm2 monit или pm2 imonit - загрузка ЦП на сервере, на котором запущен node.js

htop - просмотр всех данных по загрузке сервера, а также - запущенных процессов (htop должен быть предварительно установлен на сервере командой sudo apt-get install htop)

###Проверка наличия установленного пакета (конкретного или нескольких)

sudo apt-get policy <package-name>

###Если не получается установить remot3.it

sudo apt-get install weavedconnectd

###Если в режиме на двух игроков во внутреннем массиве ставить кнопки в порядке убывания, они не будут срабатывать, когда обе нажаты!!!

###Ошибка с alsa.c

Если в pm2 log вылезает ошибка:

0|Maze Ser | [../deps/mpg123/src/output/alsa.c:165] error: cannot open device default ...

Необходимо перезагрузить компьютер

###Ошибка с property ‘response’

TypeError: Cannot read property 'response' of undefined - значит, что возникла ошибка обращения лабиринта к серверу my.stronlaser.ru:

  • id лабиринта имеет одинаковый id с еще одним лабиринтом - поменять или создать новый
  • Лабиринт не имеет свой id - создать новый
  • id лабиринта не соответствует серверу обращения (лабиринт имеет id на my.stronglaser.ru, но обращается к my.teslslasers.com) - поменять параметр sync: в файле config.json
  • сервер my.stronglaser.ru упал (но это не точно)

###Ошибка с module ‘duino’

0|Maze Ser | Error: Cannot find module 'duino':

  • слетел модуль ‘duino’ - установить, набрав npm install https://github.com/xpacmanx/duino.git или npm install duino
  • С большой вероятностью подыхает карта памяти в распберри - при повторении этой ошибки в ближайшее время, подготовить и выслать на замену новую microSD

###Проблема с корректностью проигрывания звуков и музыки

Тормозит музыка или звуки в конце игры, или весь лабиринт во время игры:

Проверить сколько игр уже сыграно в лабиринте. Если более 5к - проблема в этом (после каждой сыгранной игры сервер пробегается по тысячам строк файла /maze_sercer/db/score, что сильно замедляет его работу). Необходимо удалить /maze_server/db/score, набрав команду

rm maze_server/db/score

а затем перезапустить node.js набрав команду

pm2 restart all

или вовсе перезапустить систему полностью

###Ошибка с property ‘forEach’

0|Maze Ser | TypeError: Cannot read property 'forEach' of undefined 0|Maze Ser | at Object.<anonymous> (/home/pi/maze_server/hardware.js:65:27)

  • Необходимо удалить файл maze.json, набрав команду
    rm maze.json
    
  • также, удалить maze.json, если нет возможности подключиться по SSH и при этом комп имеет 2-й айпи, запускается, открывает браузер (работает штатно), но интерфейс не отображается и в панель управления не зайти

###Убрать постоянное свечение RGB-ленты во время игры

Убрать все цвета из параметра "colors": в файле config.json, то есть поменять все значения на 0

###Проблема открытия Панели Управления с комьютера на Windows ####При попытке подключения к Панели управления с “другого компьютера” ничего не получается.

Если даже к роутеру не подключиться, это значит, что за компьютером жестко закреплен какой-то айпи. В Панели управления Windows , Центре управления сетями, Свойствах сети, в ipV4 изменить на “получение адреса автоматически”

###Неверная дата в статистике Лабиринта

  • При имеющемся подключении к Интернет ввести
    sudo reboot
    
  • Или будучи залогиненым на сервере ввести:
    sudo date -s “DD MMM YYYY HH:MM:SS”
    

###Ошибка с b.calibration

Во время калибровки вышла ошибка .... b.calibration is not a function...

pm2 stop all
rm maze.json
pm2 start all

###Ошибка с keep and omit fields

Error: cannot both keep and omit fields - arduino хоть и подключена, имеет другой порт. Узнать ее порт, выполнив команду

ls /dev/tty*

и прописать увиденный порт (обычно ttyACM0 или ttyAMA0) в config.json в параметр "ports":

###Проблема с лицензионным соглашением TeamViewer

При включении лабиринта, выскочило лицензионное соглашение тимвьюера - не запустился сервак.

###Иконка молнии на экране

На экране, подключенном к Raspberry Pi может появляться иконка, которая выглядит так:

  • Показывает, что не хватает напряжения компьютеру и он перегревается, если показан термометр.
  • Такая проблема МОЖЕТ ИСПОРТИТЬ SD КАРТУ!

###Проблемы с отображением таймера во время игры

На экране (у тех лабиринтов, где есть камера) во время игры отображаемое время - 0:

  • Плашке не хватает места на экране, перепрошить до последнего обновления.

###Отсутствие microSD карты. Удаленное распознание

Как отличить отсутствие карты памяти в распбери от неподключенной или неработающей меги?

  • Распбери будет доступна по удаленке (будет заходить на страницу, но прогружать интерфейс не будет) и по SSH, если просто не работает мега.
    В случае же с отсутствием карты памяти, лабиринт будет офф-лайн, как ни крути, к нему никак невозможно будет подключиться, его не будет в карте сети в роутере.

###Остановка Node.js сразу после включения 12В

Почему в старых лабиринтах при включении все гаснет через пару секунд?

  • Система старая, требует интернета. Обновить прошивку (пополнив йоту перед этим), перед этим записав номер коммита (git log), чтобы если что можно было откатить.
  • КЗ на линии. Искать.

###Остановка Node.js после выбора уровня сложности

  • Нет gamepath (последовательность в которой нажимаются кнопки) в config.json - вставить Женину строчку в конфиг.
  • Не прописан второй контроллер в конфиге (перед тем, как прописать, узнать какие порты доступны: ls /dev/tty*)
  • Вместо 32 лучей прописаны 16

Убрать затупы из-за бд

Единоразово:

rm /home/pi/maze_server/db/score
pm2 restart all

Удаляется путем удаления бд при загрузке.

sudo nano ~/.bashrc

В самом конце добавить

rm /home/pi/maze_server/db/score

Сохранить файл

```

Затупы видео как в Космозаре

Перейти в папку autostart и поменять файл screen.desktop:

cd ~/.config/autostart/
sudo nano screen.desktop

В строку, начинающуюся со слова Exec: внести:

/usr/bin/chromium-browser -incognito --noerrdialogs --kiosk http://127.0.0.1:1856/

###Если надо убрать курсор СОВСЕМ:

sudo apt-get install unclutter  
sudo nano ~/.config/autostart/Maze_browser.desktop  

Строку Exec изменить на:

electron /home/pi/maze_browser . | unclutter -idle 0

sudo reboot

###На экране (у тех лабиринтов, где есть камера) во время игры отображаемое время - 0:

Плашке не хватает места на экране - перепрошить до последнего обновления.

###В лабиринтах с хабом кнопок не открывается интерфейс:

Проверить, правильно ли заданы порты в конфиге (см. Инструкцию по прошивке)

###Проблемы с монитором

Общая документация по настройке выходного цифрового видео сигнала с Raspberry

####Моргание экрана при подключенном Raspberry

Если при подключении экрана к распберри через HDMI>DVI переходник первый загорается на несколько секунд, на экране появляется просьба изменить входное разрешение, а потом выключается:

  • В raspi-config изменить разрешение на требуемое
  • В /boot/config.txt параметр hdmi_drive=1

Инвертировать тачскрин

Для этого нужно модифицировать драйвер X11. Нужно установить в окружение raspbian альтернативный от libinput драйвер - evdev.

sudo apt-get install xserver-xorg-input-evdev

После этого нужно применить драйвер.

cd /usr/share/X11/xorg.conf.d/
ls

Там будут несколько файлов. Что-то типа 40-libinput, 11-evdev. Либо что-то похожее. Нужно > будет переименовать 11-evdev, командой mv, чтобы номер был больше, чем у libinput. В данном примере, нужно сделать 41-evdev (название файла может отличаться).

Калибровка тачскрина

Надо установить xinput.

sudo apt-get install xinput-calibrator

Запустить

DISPLAY=:0 xinput_calibrator

И потыкать на тачкрин по точкам. В конце он выдаст файл, который надо закинуть в ту папку /usr/share/X11/xorg.conf.d/. С файлом что-то типа 98-calibration.conf. Он выдаст как назвать файл. И что туда записать в конце калибровки. Нужно перенести эти данные.

Дополнения:

Можно добавить опции, если не работает:

  • Поменять X и Y местами:
    Option “SwapAxes” “1”
  • Поменять направление оси X:
    Option “InvertX” “1”
  • Поменять направление оси Y:
    Option “InvertY” “1”

Posts

subscribe via RSS