# rpi_remote_cam Проект видео сервера от Bauman Robotics. # Инструкция 1. Нужна настройка малины ```bash sudo raspi-config # нужно включить shh, uart, камеру, возможно поменять имя малины ``` 2. Установка пыхи и ингинкса [отсюда](https://kropochev.com/?go=all/install-nginx-and-php-on-raspberry-pi/) ```bash sudo apt update && sudo apt upgrade sudo apt install nginx php7.3-fpm php7.3-cgi git tmux sudo nano /etc/nginx/sites-available/default # Добавить в строку ниже index.php # Add index.php to the list if you are using PHP index.php index.html index.htm index.nginx-debian.html; # раскомментировать сл строки. location ~ \.php$ { include snippets/fastcgi-php.conf; # With php-fpm (or other unix sockets): fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; # With php-cgi (or other tcp sockets): #fastcgi_pass 127.0.0.1:9000; # ЗАКОМЕНТИРОВАТЬ !!! } sudo /etc/init.d/nginx reload # Чтобы протестировать PHP sudo nano /var/www/html/index.php # Добовляем туда строку ``` 3. Камера [отсюда](https://habr.com/post/125216/) и [отсюда](http://academicfox.com/raspberry-pi-usb-web-kamera-potokovoe-vydeo-strym/) еще есть описание в хакере за 2008г :) номер [111](http://xakep-archive.ru/xa/111/098/1.htm) нормальная документация [сдесь](https://motion-project.github.io/motion_guide.html) ``` bash # Если у вас камера от расбери неообходимо включить модуль ядра sudo nano /etc/modules # Добавить туда # /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. bcm2835-v4l2 # Далее в папке /dev/ появится video0 sudo apt-get install motion sudo nano /etc/motion/motion.conf # Для сервера будет висеть на :8081 daemon on stream_localhost off # Настройки видео width 720 height 480 framerate 30 stream_maxrate 30 threshold 150000 # очень маленькая чуствительность чтобы не делала фото при обнаружении движения sudo nano /etc/default/motion start_motion_daemon = no (меняем на yes) ``` После перезагрузки можно зайти на ip малины с портом 8081 и увидеть видео. 4. Больше видео Как сделать скрин? ```ffmpeg -i http://10.174.136.143:8081/ -vframes 1 output.jpg``` Как записать 10с видео? ```ffmpeg -i http://10.174.136.143:8081/ -t 00:00:10 out_video.avi``` 5. Разбираемся с сервоприводами. Есть 3 спосрба управления сервами с помощью ARM процессора: * Софтверный ШИМ * Использование внешнего контроллера (например ардуино) * Генерация ШИМ с помощью [DMA](https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D1%8F%D0%BC%D0%BE%D0%B9_%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF_%D0%BA_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8) Первый способ сьедает время процессора, 2й много поять, 3й идеален для нас. Не будем изобретать велосипед и возьмем проект с гита. ```bash git clone http://github.com/richardghirst/PiBits.git cd PiBits/ServoBlaster/user make sudo make install # Проверяем установился ли Servoblaster корректно: ls /dev | grep servoblaster #Должны увидеть: servoblaster servoblaster-cfg # Теперь чтобы управлять сервой пробуем echo 1=100 > /dev/servoblaster # 1 - номер сервы, 100 - угол поворота ``` 6. Разбираемся с Питоном. ```bash sudo apt install python3-pip pip3 install twisted autobahn pyserial ``` ```bash git clone https://gitlab.com/zenls/rpi_remote_cam sudo cp -r rpi_remote_cam/www/* /var/www/html/ sudo mv /var/www/html/index.php /var/www/html/index1.php #работа с скрвером scp -r * pi@10.253.35.143:~/rpi_remote_cam sudo cp -r www/* /var/www/html/ python3 server.py ``` ------------------------------------------ https://github.com/silvanmelchior/RPi_Cam_Web_Interface