Апельсиновый осьминог: обычная вебкамера

Подписаться на 3Dtoday
eta4ever
Идет загрузка
Загрузка
24.01.16
29139
134
печатает на RepRap
RepRap
33
PREVIEW
Хочу сказать, что штатная CSI-камера "апельсинки" меня несколько разочаровала. Поэтому в дальнем ящике шкафа был откопан пакетик, в котором содержались кишочки старой китайской вебкамеры. Судя по их состоянию, камера подвергалась переделке в "микроскоп" (переворот объектива и приклеивание его какой-то липкой мерзостью). Восстановив статус кво, я быстренько ее настроил, благо, все работает почти как в "малинке". Естественно, об этом сразу захотелось написать, но просто настройка камеры - это слишком скромно. А тут мне подсказали хорошую идею для реализации - надо, чтобы камера включалась и выключалась средствами OctoPrint - ну, чтобы не греть зря "малинку-апельсинку".

Поэтому сегодняшняя пошаговая инструкция будет из двух частей - как "поднять" USB-вебкамеру в Debian и как сделать в OctoPrint два пункта меню для управления ею. Описывать процесс я буду на примере Orange Pi, но инструкция применима и к Raspberry практически без изменений (имя пользователя разве что будет другое).

Настройка USB вебкамеры

Исходная позиция - Orange Pi PC с установленным минимальным Debian (сборка от loboris) и развернутым принт-сервером OctoPrint. Далее производим установку необходимого ПО для работы с камерой, почти по инструкции (раздел Webcam), но с некоторыми изменениями.

cd ~
sudo apt-get install subversion libjpeg62-turbo-dev cmake


Устанавливаем необходимые компоненты для сборки mjpg-streamer.

git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimental


Скачиваем актуальный исходный код для mjpg-streamer.

nano Makefile

Ищем "PLUGINS += input_raspicam.so", закомментируем эту строку ("#PLUGINS += input_raspicam.so";). Не надо нам штатной "малиновой камеры". Ctrl+O, Enter, Ctrl+X.

export LD_LIBRARY_PATH=.
make


Компилируем. Камеру пока не подключаем!

ls /dev/video*

Смотрим, что у нас с устройствами. По идее, вывод должен быть пустым. У меня уже было устройство /dev/video0, поскольку подключены модули ядра для штатной камеры. Но дальше я предполагаю, что их нет. Подключаем камеру, повторяем команду. Если появилось /dev/video0, то все должно быть хорошо, идем дальше. Если не появилось, тогда ой. Возможно, камера не поддерживается, или произошел еще какой-то забавный глюк, пишем об этом в комментариях вместе с моделью камеры и выводом lsusb.

sudo ./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so"

Пробуем запустить захват видео с минимальными настройками. Если получаем "Unable to set format: 1196444237 res: 640x480 Init v4L2 failed !! exit fatal i: init_VideoIn failed", то пробуем sudo ./mjpg_streamer -i "./input_uvc.so -y" -o "./output_http.so". В итоге получаем много буковок, главный признак того, что поток пошел - у нас нет приглашения командной строки (orangepi@OrangePI:~$), а просто мигающий курсор в последней строке.

Заходим браузером по адресу http://(адрес "апельсинки";):8080/?action=stream. Там должна быть картинка с камеры. Если все работает, можно настроить автозапуск mjpg-streamer, но мы этого делать не будем.

Включаем-выключаем

Для начала, некоторые подготовительные действия. Если запущен mjpg-streamer, прибиваем его (Ctrl+C).

sudo usermod -a -G video orangepi

Чтобы разрешить "обычному" пользователю доступ к устройствам video, надо добавить его в соответствующую группу. После этого закрываем сеанс (exit) и подключаемся к Orange Pi заново.

cd ~/
mjpg-streamer/mjpg-streamer-experimental


Переходим в каталог, где у нас собран mjpg-streamer.

sudo make install

Устанавливаем mjpg-streamer в систему. При этом исполняемый файл окажется в /usr/local/bin, плагины - в /usr/local/lib. После установки можно его грохнуть из домашней папки (cd ~ && rm -rf mjpg-streamer).

cd~ && nano webcam-streamer

Создаем скрипт запуска и остановки mjpg-streamer со следующим содержимым (почерпнул отсюда):

#!/bin/bash

Daemon=mjpg_streamer
DaemonBase=/usr/local
DaemonArgs="-i \"input_uvc.so -d -y\" -o \"output_http.so\""

case "$1" in
start)
eval LD_LIBRARY_PATH=${DaemonBase}/lib ${DaemonBase}/bin/${Daemon} ${DaemonArgs} >/dev/null 2>&1 &
echo "$0: started"
;;
stop)
pkill -x ${Daemon}
echo "$0: stopped"
;;
*)
echo "Usage: $0 {start|stop}" >&2
;;
esac


Ctrl+O, Enter, Ctrl+X.

chmod +x webcam-streamer && mv webcam-streamer /usr/local/bin/

Делаем скрипт исполняемым и переносим его в нужное место.

nano ~/.octoprint/config.yaml

Теперь прикручиваем запуск скрипта к OctoPrint. Ищем раздел system, у меня он был пустой (с фигурными скобками {}). Если у вас он не пустой, значит, вы там что-то уже настраивали, не так ли? В итоге как-то так:

system:
actions:
- action: streamon
command: /usr/local/bin/webcam-streamer start
confirm: false
name: Start stream
- action: streamoff
command: /usr/local/bin/webcam-streamer stop
confirm: false
name: Stop stream


Ctrl+O, Enter, Ctrl+X.

sudo /etc/init.d/octoprint restart

Перезапускаем OctoPrint. Заходим в веб-интерфейс (http://(адрес "апельсинки";):5000), где у нас в верхней части окна появилось меню System, а в нем - два пункта - Start stream и Stop stream. Но они пока что бесполезны, надо еще прописать в настройках (Settings - Webcam - Stream URL) путь к потоку (http://(адрес "апельсинки";):8080/?action=stream).
Снимок экрана от 2016-01-24 22m27k39.png
А вот теперь все должно работать. Нажимаем System - Start stream, перезагружаем страницу, на вкладке Control должна появиться картинка с камеры. Ну и, соответственно, по Stop stream mjpg-streamer отключается. На этом, пожалуй, все. Вопросы, замечания, предложения приветствуются.

P.S. На Raspberry Pi это все должно работать, но есть одно "но". Если у вас дистрибутив OctoPi (сборка с предустановленным OctoPrint), то для управления веб-камерой там используется дополнительный демон, который будет упорно эту камеру включать, если она выключена. С ним придется сражаться.

P.P.S. Запущенный mjpg-streamer у меня "кушает" 30-70% одного (из четырех) ядра Orange Pi PC.
Подписаться на 3Dtoday
33
Комментарии к статье

Комментарии

25.01.16 в 00:02
0
Cool!
Осталось прикрутить манипулятор, чтоб детали снимал и в коробочки упаковывал! :)
25.01.16 в 00:13
2
Алярма! Ошибка в скрипте запуска.

DaemonArgs="-i \"input_uvc.so -d -y\" -o \"output_http.so\""

Не должно там быть ключа -d. Там было написано -d /dev/video1, название устройства я убрал, а ключ забыл. Т.е. правильно:

DaemonArgs="-i \"input_uvc.so -y\" -o \"output_http.so\""
10.03.18 в 02:25
0
Подскажите пожалуйста.sudo make install

Устанавливаем mjpg-streamer в систему. При этом исполняемый файл окажется в /usr/local/bin, плагины - в /usr/local/lib. После..вот до этого пункта все норм и видео есть...потом отвечает что нет правила для установки...что не так мб
10.03.18 в 02:59
0
Проверьте, из какой папки пытаетесь запустить установку.
Там форматирование съехало в инструкции, правильно cd ~/mjpg-streamer/mjpg-streamer-experimental
10.03.18 в 03:14
0
спс помогло
10.03.18 в 03:22
0
а как к репитеру прикрутить?
11.03.18 в 14:47
0
root@orangepipc:~/mjpg-streamer/mjpg-streamer-experimental# export LD_LIBRARY_PATH=.
root@orangepipc:~/mjpg-streamer/mjpg-streamer-experimental# make
[ -d _build ] || mkdir _build
[ -f _build/Makefile ] || (cd _build && cmake -DCMAKE_BUILD_TYPE=Release ..)
/bin/sh: 1: cmake: not found
Makefile:17: recipe for target 'all' failed
make: *** [all] Error 127
root@orangepipc:~/mjpg-streamer/mjpg-streamer-experimental#
что не так?
11.03.18 в 15:45
0
это на армбиан
11.03.18 в 15:48
0
sudo apt-get install cmake
11.03.18 в 18:09
0
root@orangepipc:~# sudo apt-get install cmake
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
cmake : Depends: cmake-data (= 3.10.2-1) but it is not going to be installed
Depends: libcurl3 (>= 7.16.2) but it is not going to be installed
Depends: libjsoncpp1 (>= 1.7.4) but it is not going to be installed
Depends: librhash0 (>= 1.2.6) but it is not going to be installed
Depends: libuv1 (>= 1.4.2) but it is not going to be installed
console-setup-linux : Depends: keyboard-configuration (= 1.108ubuntu15.3) but 1.178 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
11.03.18 в 18:15
0
ругался на отсутствие libjpeg62-turbo-dev_1.5.2-2+b1_armel.deb..........поставил вот отсюда........https://packages.debian.org/sid/armel/libjpeg62-turbo-dev/download...........сильно не пинайте)))
12.03.18 в 00:43
0
на те коменты не смотрите..............получилось...........вот только одна проблема.......нет у меня раздела систем(((
12.03.18 в 01:00
0
нашел решение.........в настройках окты где ребут поставил /usr/local/bin/webcam-streamer start.........и усе вместо ребут у меня стрим)))
25.01.16 в 01:31
1
Уважаемый eta4ever !
Хотелось-бы увидеть у Вас реализацию (хотя-бы в виде концепции)
моей идеи о телеметрии видеонаблюдения процесса печати, синхронизованной со слоями.

Дело в том, что понаблюдать на соплом по приведенной Вами выше опции октопринта "старт стрим"
наверное будет интересно тем, у кого 3D-принтер сильно удален от ПК,
либо имеет непрозрачный бокс.

Моя концепция такова -
При помехе "в отсутствии хозяина",
точно виден не только слой, но и дата/время создания слоя, возможная причина помехи.
25.01.16 в 02:00
2
Приветствую. А не подскажете, эта идея где-то более подробно вами изложена?
У меня какие-то мысли сразу начали роиться, по поводу синхронной телеметрии, но пока еще недостаточно оформленные для излияния буквами.
25.01.16 в 08:35
0
Бродила в голове идея чего-то подобного: вставлять в кадр текущие координаты сопла и время.
Думается, что организовать такое в "осминоге" проще, чем на ЧПУ.
25.01.16 в 11:25
3
Концептуально это, наверное, проще делается через motion (через который я CSI-камеру в прошлом материале настраивал), а не mjpg-streamer. Поскольку motion изначально для видеонаблюдения предназначен, там оверлей (текст на картинке) можно настроить. Т.е., в качестве аболютного минимума, надо писать осьминогом лог перемещений (тупо в текстовом формате, но с точной отметкой времени), а motion - записывать видео, тоже с отметкой времени с тех же "апельсиновых" часов. То, что получится на выходе, при "разборе полетов" можно просто в соседних окнах открыть. Ну а круче, конечно, было бы это все в один видеоролик с телеметрией "сляпывать".

О! У меня родилась совершенно дурацкая в своей простоте идея. Надо, чтобы OctoPrint генерил лог в ФОРМАТЕ СУБТИТРОВ, srt, например.
Тогда вообще ничего больше делать не надо.
25.01.16 в 12:14
0
Ну, если это получится реализовать... - это ж почти революция! :)
25.01.16 в 12:25
1
Надо эту мысль думать, она явно забавная.
26.01.16 в 12:05
0
Первое что пришло в голову,
1) при начале каждого слоя снимать JPG картинку
2) после успешной печати все картинки в архив
3) настройку удаления архивов по прошествии времени / недостатку места
26.01.16 в 12:08
2
Ненене, надо видео. Сбой подачи, пропуск шагов, еще какую механическую гадость в динамике ловить. Я думаю, что реально надо снимать видео любым доступным способом, а к нему подключать лог телеметрии в виде оверлея или субтитров.
26.01.16 в 12:20
2
Уж очень многого хотите от камеры. Проще уж энкодеры поставить на двигатели и не париться из-за пропуска шагов.
26.01.16 в 12:26
2
Это потребует хорошего такого влезания в софт. Хотя, гляжу вот на энкодерные диски и ленты на раздолбанных струйниках, и мысль меня все больше занимает. Но когда этим заниматься - вообще хз.

А камеру с телеметрией сделать гораздо проще, хотя и пользы меньше.
26.01.16 в 12:45
0
Хотя, гляжу вот на энкодерные диски и ленты на раздолбанных струйниках, и мысль меня все больше занимает.
Да меня тоже,если учесть,что принтер могу найти практически любой (бу,списанный).А вот насчёт софта для него,я слаб.
А камеру с телеметрией сделать гораздо проще, хотя и пользы меньше.
Изначально шаговики ставили для удешевления, что бы обратную связь не городить. В итоге возврат к истокам, ибо пропуск шагов.
26.01.16 в 13:22
2
Ну, нет, шаговики сами по себе хороши по совокупности параметров "скорость-момент-точность". Сэкономили только на обратной связи. В 2D принтерах же нет постоянной и разнообразной смены направления движения.
26.01.16 в 21:54
0
MicroChip делают готовые кристаллы для таких целей (ну там оверлей риалтайм), тока цена не для репрапа. :(
26.01.16 в 22:06
1
А зачем риалтайм, можно же потом, после записи наложить?
26.01.16 в 22:23
0
Та не конешна - для нашей задачи риалтайм без надобности. Просто для примера привёл: на входе видеопоток плюс текстуха, на выходе видеопоток с наложенной картинкой / текстом. Там цена кусается - от 60 баксов при оптовых закупках.
Идея с субтитрами мне нравится больше. Поколупаю осминога на предмет выдачи лога. Можно ещё попробовать напрямую перехватить G-код.
26.01.16 в 22:25
1
А об этом я тоже думал, снифать последовательный порт и валить в лог с отметкой времени.
26.01.16 в 22:48
0
Во-во! Где-то так! Я ещё доки почитаю - может в осминоге уже это реализовано.
06.06.16 в 16:55
0
Сегодня возился с камерой - подключил, через браузер увидел принтер.
А вот на команде :
chmod +x webcam-streamer && mv webcam-streamer /usr/local/bin/

получил ответ - permission denied

попытался продолжить дальше, пропустив это, так при изменении поля system октопринт перстал запускаться.
06.06.16 в 16:57
1
Я думаю, что пропустил при написания гайда sudo во второй команде. sudo mv webcam и далее.
В config.yaml нужно строжайше соблюдать форматирование. Я не мог в статью вставить правильно, т.к. нет тега pre или code. Вот пример с форматированием http://pastebin.com/QNUzSdJk
06.06.16 в 17:17
0
orangepi@orangepipc:~$ sudo chmod +x webcam-streamer && mv webcam-streamer /usr/local/bin/
mv: cannot move ‘webcam-streamer’ to ‘/usr/local/bin/webcam-streamer’: Permission denied

Sudo не помогло (
06.06.16 в 17:19
2
А оно не туда. В этой строчке две команды, разделенные &&. Надо chmod +x webcam-streamer && sudo mv webcam-streamer /usr/local/bin/
06.06.16 в 17:53
0
Да, так всё копирует, осьминог запускается, в настройках появилась возможность включать выключать. И даже включает выключает стрим - могу зайти на него через браузер.
Ввёл тот же урл в настройки осьминога - не появляется окошко с видео внутри вкладки control. (
06.06.16 в 17:55
3
Бывает такое явление, мне помогала принудительная перезагрузка страницы через Ctrl+F5
06.06.16 в 18:02
0
Это действительно сработало, моментально.
С телефоном так не прокатит - нет там клавиатуры.
Но как же я таки рад, что сегодня ещё что-то накрутил с принтером ))
Спасибо в который раз )
06.06.16 в 18:04
1
Да не за что. А на телефоне эффект может и не появиться - это какая-то интерференция кэширования браузера и вебморды октопринта. У меня такое было только в FF на обычном компе.
09.09.16 в 10:29
0
После настройки кнопок в веб-морде всё практически ок работает. Во время старта или выключения камеры веб-морда может намертво зависнуть ( ~50% случаев зависает намертво). Помогает только отключение mjpg через консоль по SSH. Если запускать скрипт через консоль всё нормально и быстро стартует. Предпологаю что проблема в octoprint, но может кто сталкивался с данной проблемой и поборол её?
09.09.16 в 11:03
1
Не, вот с таким не сталкивался.
09.09.16 в 11:42
1
Бывали подглюки морды, но все лечились либо переоткрытием ее, либо принудительной перезагрузкой страницы (Ctrl+F5).
30.01.17 в 16:33
0
Подскажите, дохожу до пункта sudo make install , получаю ошибку make: *** No rule to make target 'install', стоит Ambrian, что не так?
30.01.17 в 16:56
1
Вы в каталог, где собран mjpg-streamer перешли перед выполнением команды?
30.01.17 в 18:18
0
Вот что делаю:
a10bc7f497ea910fb70573434bbae90a.jpg
30.01.17 в 18:20
1
cd ~/mjpg-streamer/mjpg-streamer-experimental
в одну строчку
30.01.17 в 18:59
0
скрипт этой же командой создается cd~ && nano webcam-streamer?
bf11580946d17b0795454646f13cf76a.jpg
30.01.17 в 19:10
1
Между ~ и cd пробел должен быть.
30.01.17 в 22:11
0
теперь не может каталог перенести :(
e7d5d41fba1e9f65a0ffee5f856af019.jpg
30.01.17 в 22:15
1
sudo mv webcam-streamer /usr/local/bin/
30.01.17 в 23:46
0
хм, все вроде сделал правильно, появились кнопки в System, но видео не стримиться, в настройка прописал, страницу обновлял. В confige у меня не было папки system, я просто вставил код снизу в конце, это правильно?
30.01.17 в 23:48
1
В секции system отступы все четко соблюдены? В основном материале мне не удалось форматирование сохранить, дальше в комментах давал ссылку http://pastebin.com/QNUzSdJk

Хотя, если кнопки появились, тут все нормально. При нажатии кнопки появляется сообщение в правом верхнем углу об успешном исполнении команды? В настройках октопринта url правильно прописали?
30.01.17 в 23:49
0
да, скопировал отсюда
30.01.17 в 23:51
1
Я комментарий дописал чуток. Появляется ли сообщение об исполнении команды, нормально ли все прописано собственно в настройках октопринта (в веб-интерфейсе, секция webcam)?
30.01.17 в 23:53
0
да, сообщение появляется, что команда выполнена, в настройка прописал, до второй части инструкции стримилось по этому адресу.
30.01.17 в 23:58
1
Ага. А вот этот комментарий еще... Там в скрипте в самом материале ошибка, а поправить я уже не мог.
http://3dtoday.ru/blogs/eta4ever/orange-octopus-an-ordinary-webcam/?commentId=187005#69983
31.01.17 в 00:34
0
Спасибо, все заработало! Не знал, что статью нельзя поправить, все ответы в комментах!
02.02.17 в 15:11
0
Подскажите, хочу организовать удаленный доступ к принт-серверу и надо поменять порт на камере, как это сделать?
02.02.17 в 15:21
1
DaemonArgs="-i \"input_uvc.so -y\" -o \"output_http.so -p 8090\""

Для порта 8090, например.

sudo nano /usr/local/bin/webcam-streamer и там правим.
02.02.17 в 19:46
0
в octoprint захожу удаленно, но видео не стримиться, проброс портов сделал в роутере, порты проверил, все открываются, может какая хитрость есть?
02.02.17 в 20:47
1
А в настройках вебки в октопринте наружный ip прописан?
13.05.17 в 21:18
0
купил Printoid а он пишет: Please ensure you’ve setup all accessible from the port 80 by installing a reverse-proxy on your Raspberry Pi: Make everything accessible from port 80 попробовал поменять тут на 80, что-то поток пропал....
и 2.
Ключиком -r поиграйся, скажем, -r 1280x720, или -r 1920x1080
его тоже сюда вставлять?
13.05.17 в 23:19
1
По принтдроиду вообще ничего не понял. По разрешению
"input_uvc.so -y\"
меняется на
"input_uvc.so -y -r 1280x720\"
02.02.17 в 21:52
0
внутренний, но тут другое дело, обновил octoprint до 1.3.1 и он перестал запускаться совсем!
02.02.17 в 21:57
1
По-моему, надо прописывать внешний. До 1.3.1 еще не обновлялся.
02.02.17 в 22:27
0
Да, конечно внешний надо. Но с обновой засада, пришлось откатываться.
Спасибо за помощь!
01.04.17 в 14:30
0
Прив, eta4ever. Подскажи sudo ./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so" дает:

MJPG Streamer Version.: 2.0
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: -1
i: Format............: JPEG
i: TV-Norm...........: DEFAULT
i: Could not obtain the requested pixelformat: MJPG , driver gave us: PJPG
... will try to handle this by checking against supported formats.
Init v4L2 failed !! exit fatal
i: init_VideoIn failed

Как я понимаю формат у меня камера дает какой-то странный PJPG. И по нему ни чего дельного что-то я не нашел с наскока. Как я вообще понял из манов по mjpg-streamer он такой формат не могет? Спасибо.
01.04.17 в 14:32
1
Камера не умеет в MJPG, добавь ключик "-y'.
-i "input_uvc.so -y" -o "output_http.so"
01.04.17 в 14:41
0
Да пробовал я :

MJPG Streamer Version.: 2.0
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: -1
i: Format............: YUYV
i: JPEG Quality......: 80
i: TV-Norm...........: DEFAULT
i: Could not obtain the requested pixelformat: YUYV , driver gave us: PJPG
... will try to handle this by checking against supported formats.
Init v4L2 failed !! exit fatal
i: init_VideoIn failed

Я ж говорю какой-то поток хз какой. В инете на эту тему не ншел ни чего
01.04.17 в 15:24
1
Тогда ваще хз. А что за камера?
01.04.17 в 15:26
0
Да шлак какой-то нашел в "закромах" родины. defender G-Lens 321. Стоп. А ноутбучна вебка ведь тоже на usb интрефейсе сидит. У меня 2 ноута валяется без дела )
01.04.17 в 15:30
1
Хз, не помню уже. Возможно и на USB.
У меня две ультракитайские аликамеры без "-y" шлют лесом, ибо не умеют в мужипег, а с -y кажут.
01.04.17 в 16:16
1
Почти все usb. Сейчас сопли китайцы нагреются и надо моделить корпус ) А не. надо еще затестить на окте. Все ) за колосилось!

Сама вебка (почему-то не встает фулскрин плагин в окту).
248631ed62ca83040928b15ce15c9c4f.png

Нагрузка:
7c6e4a8e3cd3248961411c75d3dfdc12.png



Кста как я понимаю это 640*480 или около того. А фуллхд? Камера то могет.
01.04.17 в 16:18
2
Ключиком -r поиграйся, скажем, -r 1280x720, или -r 1920x1080
01.04.17 в 16:24
1
Ваще, идея годная, надо в морге покопаться. Ведь там найдется и вебка от ноута, и объективы от видеонаблюденческих камер. А дальше - мыжпечатники.
01.04.17 в 14:43
0
/dev/video0 появляется с подключением камеры
11.05.17 в 14:40
0
Все подключилось и вроде все видится.

orangepi@OrangePI:~/mjpg-streamer/mjpg-streamer-experimental$ lsusb
Bus 008 Device 003: ID 2341:0010 Arduino SA Mega 2560 (CDC ACM)
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 046d:0826 Logitech, Inc.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
но

orangepi@OrangePI:~/mjpg-streamer/mjpg-streamer-experimental$ sudo ./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so"
[sudo] password for orangepi:
MJPG Streamer Version.: 2.0
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: -1
i: Format............: JPEG
i: TV-Norm...........: DEFAULT
ERROR opening V4L interface: No such file or directory
Init v4L2 failed !! exit fatal
i: init_VideoIn failed

Чего-то в этом супе не хватает. Оcto в вебе загрузился, но к принтеру тоже не цепляется и при подключении USB к апельсинке (РС) сразу принтер перегружается.
На Raspberry я все это уже запустил, доже с дисплеем и TouchUi, вот теперь хочу и здесь все вымучать... (принтер и камера те же, с малиной дружат)
11.05.17 в 17:05
1
Можно попробовать sudo ./mjpg_streamer -i "./input_uvc.so -y" -o "./output_http.so"
Но особой уверенности нет. Хотя, камера вроде как должна быть беспроблемной.
А про перезагрузку принтера можно поподробнее?
11.05.17 в 17:19
0
Камера с Малиновым осьминогом работает отлично, принтер один и тот же. Этот вариант я тоже уже пробовал.
Как только вставляешь в Апельсин USB принтера принтер сразу перегружается. У Октомалины надо было дать ему команду для этого или подключится. А здесь web интерфейс к нему не коннектится, говорит выберите порт вручную, а в меню выбор только один - АВТО.
11.05.17 в 17:26
1
По камере пока подумаю. По порту - пользователь от которого окта работает, в группы tty и dialout добавлен? Выход-вход пользователем (или перезагрузка апельсины) после добавления выполнена? ls /dev/tty* при подключенном принтере можно?
11.05.17 в 17:37
0
sudo usermod -a -G tty orangepi
sudo usermod -a -G dialout orangepi
Это? сделано, перегружал, конечно...
7dec4a7c657f884b47870699ec6b2c31.png
11.05.17 в 17:44
1
Очень интересно. Не вижу здесь нужного порта. А можно вынуть-вставить принтер и dmesg ?
11.05.17 в 17:50
0
dmesg
Выдаст ведь "войну и мир" сразу... Что там искать или как? он в принтскрин не влезет.
11.05.17 в 17:52
1
Ну, что в экран влезет, там хвост самый интересен, который будет после втыкания принтера.
11.05.17 в 18:00
0
c1d1fbc038ce98dd001868e79717b54a.png
Вставлен принтер
7b88bf68970dd2bd361558d7fa86f4fa.png

соответственно вынут
11.05.17 в 18:30
1
Так. А на чем плата? А то, получается, USB устройство есть, а USB UART - нет. В случае с очень китайской мегой на CH340 это выглядит так:

98fea639e89f5b39d85144255190c8e7.PNG
11.05.17 в 19:01
0
Ультяшная плата на моих принтерах. 16U2 там, как на порядошных...
11.05.17 в 19:10
1
Ну, прекрасно. Значит, в апельсиновом пингвине под него модуля нет. Блин, а у меня "порядочной" ардуины нету, чтобы попробовать. Опять думать и гуглить.
11.05.17 в 19:18
1
Попробуйте выткнуть принтер, загрузить модуль (путь может чуток отличаться, после modules - папка с версией ядра)

sudo insmod /lib/modules/3.4.113-sun8i/kernel/drivers/usb/class/cdc-acm.ko

Воткнуть и сравнить ощущения (dmesg).
11.05.17 в 19:46
0
нет такого файла - ядро я подправил, у меня 3.4.39 кажется...

orangepi@OrangePI:~$ dir /lib/modules
3.4.39
Правильно?
11.05.17 в 20:57
1
А вы вбейте sudo insmod /lib/modules/ (не нажимая Enter), а дальше Tab - сработает автодополнение. Ну и далее /kernel/drivers/usb/class/cdc-acm.ko

Ну или да, вставьте свое имя папки в строку.
11.05.17 в 21:05
0
insmod: ERROR: could not load module /lib/modules/3.4.39//kernel/drivers/usb/class/cdc-acm.ko: No such file or directory
orangepi@OrangePI:~$
то же самое, видно я правильно набирал...)
11.05.17 в 21:13
1
Так. А откуда вообще дистрибутив линукса для апельсины?
11.05.17 в 21:33
0
Все отсюда, шаг за шагом...
11.05.17 в 21:53
1
Ну, в смысле, из первого гайда, или Armbian?
11.05.17 в 21:58
0
Из первого, второй полный только сейчас начал параллельно на второй флешке в перерывах ставить
11.05.17 в 22:01
1
Сборка из первого гайда геморройная. С Armbian меньше проблем. И вообще, вот здесь в конце выложен нормальный образ, работающий на PC и One.
11.05.17 в 22:46
0
Этот образ у меня почти снес Винду. После записи образа исчез любой съемный диск как класс! Еле нашел в чем дело: в управлении дисками при записи образа у съемного диска исчезает имя. Восстанавливаю, при записи все повторяется снова.
11.05.17 в 23:10
1
Ну, то, что винда себя так ведет с dd-образами, немного не их проблема, я считаю.
14.05.17 в 11:42
0
Здравствуйте
Пытаюсь повторить движения и настроить камеру на октопринте
В никсах я полный ноль, но принтер подключить через апельсинку получилось. Хотел еще камеру, а тут затык:
Дошел до этого момента:
Ищем "PLUGINS += input_raspicam.so", закомментируем эту строку ("#PLUGINS += input_raspicam.so";). Не надо нам штатной "малиновой камеры". Ctrl+O, Enter, Ctrl+X.

Первый косяк. Нигде не могу найти эту строку. У меня содержимое такое:
###############################################################
#
# mjpg-streamer
#
# This Makefile is just a wrapper around cmake, if you want
# to do more complex things than what is provided here you
# should use cmake directly.
#
###############################################################
.DEFAULT_GOAL: all
.PHONY: all clean distclean install
CMAKE_BUILD_TYPE ?= Release
all:
[ -d _build ] || mkdir _build
[ -f _build/Makefile ] || (cd _build && cmake -DCMAKE_BUILD_TYPE=$(CMA$
make -C _build
@cp _build/mjpg_streamer .
@find _build -name "*.so" -type f -exec cp {} . \;
install:
make -C _build install
clean:
[ ! -f _build/Makefile ] || make -C _build clean
rm -f mjpg_streamer *.so
distclean: clean
rm -rf _build
PLUGINS не нахожу.

Далее, делаю контр х и ввожу команду
export LD_LIBRARY_PATH=.
- вроде норма. Потом
make



Мне в ответ
[ -d _build ] || mkdir _build
[ -f _build/Makefile ] || (cd _build && cmake -DCMAKE_BUILD_TYPE=Release ..)
/bin/sh: 1: cmake: not found
Makefile:17: recipe for target 'all' failed
make: *** [all] Error 127

Пожалуйста подскажите, что я делаю не так?
14.05.17 в 12:15
2
По первому пункту - идем дальше, раньше строчка была ненужная, потом ее убрали.
По второму - что-то пошло не так на этапе sudo apt-get install subversion libjpeg62-turbo-dev cmake
Попробуйте еще раз sudo apt-get update и sudo apt-get install subversion libjpeg62-turbo-dev cmake
И посмотрите, нет ли ошибок при установке
14.05.17 в 12:45
0
orangepi@orangeprint:~$ cd ~
orangepi@orangeprint:~$ sudo apt-get install subversion libjpeg62-turbo-dev cmake
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libjpeg62-turbo-dev

Вроде, все проходит... Или нет?
Вот эту команду как надо писать?
export LD_LIBRARY_PATH=.
make

или export LD_LIBRARY_PATH=. make
14.05.17 в 12:57
2
Не, не проходит. Что-то опять в репозиториях поменялось. Вместо libjpeg62-turbo-dev будет другой пакет, какой - сходу не готов ответить. Попробуйте без -dev, просто libjpeg62-turbo.

По второму - make отдельно, как у вас в первом случае написано.
14.05.17 в 13:07
0
Не, все равно:

orangepi@orangeprint:~/mjpg-streamer/mjpg-streamer-experimental$ export LD_LIBRARY_PATH=.
orangepi@orangeprint:~/mjpg-streamer/mjpg-streamer-experimental$ make
[ -d _build ] || mkdir _build
[ -f _build/Makefile ] || (cd _build && cmake -DCMAKE_BUILD_TYPE=Release ..)
/bin/sh: 1: cmake: not found
Makefile:17: recipe for target 'all' failed
make: *** [all] Error 127

:-(
14.05.17 в 13:24
1
Надо сначала разобраться с предыдущим шагом (установка пакетов), без него этот не пройдет. Пробуйте отдельно
sudo apt-get install subversion
sudo apt-get install libjpeg62-turbo
sudo apt-get install cmake

И смотрите, что выдает в каждом случае.
14.05.17 в 13:44
0
На второй строке все равно ругается -

orangepi@orangeprint:~$ sudo apt-get install libjpeg62-turbo
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libjpeg62-turbo
14.05.17 в 13:52
1
Нет сейчас апельсины под рукой. Попробуйте sudo apt-get install libjpeg-dev
14.05.17 в 14:06
0
Вроде не ругается...

orangepi@orangeprint:~$ sudo apt-get install libjpeg-dev
[sudo] password for orangepi:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libjpeg-turbo8 libjpeg-turbo8-dev libjpeg8 libjpeg8-dev
The following NEW packages will be installed:
libjpeg-dev libjpeg-turbo8 libjpeg-turbo8-dev libjpeg8 libjpeg8-dev
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 314 kB of archives.
After this operation, 1,047 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://ports.ubuntu.com xenial/main armhf libjpeg-turbo8 armhf 1.4.2-0ubuntu3 [87.3 kB]
Get:2 http://ports.ubuntu.com xenial/main armhf libjpeg-turbo8-dev armhf 1.4.2-0ubuntu3 [222 kB]
Get:3 http://ports.ubuntu.com xenial/main armhf libjpeg8 armhf 8c-2ubuntu8 [2,202 B]
Get:4 http://ports.ubuntu.com xenial/main armhf libjpeg8-dev armhf 8c-2ubuntu8 [1,554 B]
Get:5 http://ports.ubuntu.com xenial/main armhf libjpeg-dev armhf 8c-2ubuntu8 [1,554 B]
Fetched 314 kB in 3s (101 kB/s)
Selecting previously unselected package libjpeg-turbo8:armhf.
(Reading database ... 46192 files and directories currently installed.)
Preparing to unpack .../libjpeg-turbo8_1.4.2-0ubuntu3_armhf.deb ...
Unpacking libjpeg-turbo8:armhf (1.4.2-0ubuntu3) ...
Selecting previously unselected package libjpeg-turbo8-dev:armhf.
Preparing to unpack .../libjpeg-turbo8-dev_1.4.2-0ubuntu3_armhf.deb ...
Unpacking libjpeg-turbo8-dev:armhf (1.4.2-0ubuntu3) ...
Selecting previously unselected package libjpeg8:armhf.
Preparing to unpack .../libjpeg8_8c-2ubuntu8_armhf.deb ...
Unpacking libjpeg8:armhf (8c-2ubuntu8) ...
Selecting previously unselected package libjpeg8-dev:armhf.
Preparing to unpack .../libjpeg8-dev_8c-2ubuntu8_armhf.deb ...
Unpacking libjpeg8-dev:armhf (8c-2ubuntu8) ...
Selecting previously unselected package libjpeg-dev:armhf.
Preparing to unpack .../libjpeg-dev_8c-2ubuntu8_armhf.deb ...
Unpacking libjpeg-dev:armhf (8c-2ubuntu8) ...
Processing triggers for libc-bin (2.23-0ubuntu7) ...
Setting up libjpeg-turbo8:armhf (1.4.2-0ubuntu3) ...
Setting up libjpeg-turbo8-dev:armhf (1.4.2-0ubuntu3) ...
Setting up libjpeg8:armhf (8c-2ubuntu8) ...
Setting up libjpeg8-dev:armhf (8c-2ubuntu8) ...
Setting up libjpeg-dev:armhf (8c-2ubuntu8) ...
Processing triggers for libc-bin (2.23-0ubuntu7) ...
orangepi@orangeprint:~$
14.05.17 в 14:28
1
Ага, а теперь переходим к тому шагу, где make.
14.05.17 в 14:49
0
make вроде без ошибок пройден.
теперь затык здесь:

orangepi@orangeprint:~/mjpg-streamer/mjpg-streamer-experimental$ sudo ./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so"
MJPG Streamer Version.: 2.0
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: -1
i: Format............: JPEG
i: TV-Norm...........: DEFAULT
i: Could not obtain the requested pixelformat: MJPG , driver gave us: PJPG
... will try to handle this by checking against supported formats.
Init v4L2 failed !! exit fatal
i: init_VideoIn failed

А написано, что циферки должны бежать
14.05.17 в 14:50
1
sudo ./mjpg_streamer -i "./input_uvc.so -y" -o "./output_http.so"
Так попробуйте
14.05.17 в 15:21
0
:-(
orangepi@orangeprint:~/mjpg-streamer/mjpg-streamer-experimental$ sudo ./mjpg_streamer -i "./input_uvc.so -y" -o "./output_http.so"
MJPG Streamer Version.: 2.0
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: -1
i: Format............: YUYV
i: JPEG Quality......: 80
i: TV-Norm...........: DEFAULT
i: Could not obtain the requested pixelformat: YUYV , driver gave us: PJPG
... will try to handle this by checking against supported formats.
Init v4L2 failed !! exit fatal
i: init_VideoIn failed
14.05.17 в 15:37
1
Мда. Где-то тут у кого-то была такая печаль, по-моему, так и не взлетело с этой камерой... Попробую вспомнить.
А, собственно, здесь и есть, выше http://3dtoday.ru/blogs/eta4ever/orange-octopus-an-ordinary-webcam/#215368
Я так понял, тов. Васяня плюнул и взял другую камеру.
14.05.17 в 16:02
0
Пичалька
Значит, не судьба...
Огромное спасибо за помощь!
23.05.17 в 16:59
0
Купил на Ali другую камеру за $ 2.65 и все сразу завелось (тут брал: https://ru.aliexpress.com/item/COTS-USB-PC-Webcams-Web-Camera-6-LED-Night-Vision-MSN-ICQ-AIM-Skype-Net-Meeting/32763553343.html)
:)
23.05.17 в 17:06
1
Хорошо. У меня тоже сейчас работает все с какой-то беспородной камеры от дядюшки Алика.
26.05.17 в 08:57
0
Здравствуйте
Продолжаю (заканчиваю :-) ) разбираться с камерой на принтере. Вопрос не по программированию: а куда ее (камеру) обычно цепляют, чтоб нормальное видео получилось? Если прицепить на неподвижную раму (у меня RepRap) то голова принтера периодически мешает съемке. Если установить возле головы, постоянно будет мельтешить движущая модель. Оптимально было бы прикрепить ее к столу, но он, зараза, горячий ведь. Кто поделится наработками/идеями?
26.05.17 в 10:18
1
У меня, поскольку камера одна на два принтера, висит над ними и смотрит, что хотя бы модель не раскидана по столу.
Люди по-всякому извращаются, например так:

ebe85556b499e9299f2e05d2de91f59c.JPG
26.05.17 в 11:12
0
Для PLA это крепеж подойдет, а вот для ABS надо из металла делать, а то согнется от температуры.
26.05.17 в 13:07
1
Да просто как пример места расположения. Опять же, при креплении к основанию стола (желательно на отдельный винт) - предполагаю, что никуда он не денется.
13.06.17 в 18:25
0
Назрел еще вопрос про камеру:
Внутри сети все работает нормально. Но вот решил я зайти на свой АО (Апельсиновый Осьминог) из интернета. Прокинул порт на роутере. Захожу нормально, могу управлять принтером. Но вот видео получить не удается. Команда включения отрабатывается, но изображения нет. При этом внутри сети все работает нормально.
В связи с этим вопрос: какие еще порты нужно пробросить и достаточно ли этого будет. Или надо ставить еще какой то сервер для трансляции?
18.08.17 в 03:03
0
7f96d4f5a4d5e7635251f8dd86d29977.jpg

Доброго времени суток!
несколько вопросов:
1) после апгрейда Logitech C270 (заменил корпус и установил кольцо, чтобы можно было изменять фокусное расстояни), то на компе работает камера, а на апельсине не показывает, полосами изображение, можно ли это подправить?
2) если зайти с интернета, то камера не показывает видео, я так понимаю, нужно еще какие то порты пробросить? кроме 80 и 5000?
3) и как можно настроить плагин YouTube Live? я в настройках ввел свой YouTube Channel ID но трансляция не идет

заранее спасибо за ответ)))
18.08.17 в 10:07
2
1. Не знаю, что это могло бы быть.
2. http://адрес:8080/?action=stream -адрес тут уже внешний. Если так открывается браузером, то надо это же (со внешним адресом) прописать в Stream URL
3. Не настраивал.
21.08.17 в 01:22
0
сегодня первый раз печатал (дисплей не запускается) с вебинтерфейса и не смог найти настройки уменьшение скорости печати
все настройки перелопатил так и не нашел
21.08.17 в 01:25
1
Вкладка Control, слева внизу ползунок Feed Rate.
25.08.17 в 04:38
0
debian@series1-1009:~/mjpg-streamer/mjpg-streamer-experimental$ sudo ./mjpg_streamer -i "./input_uvc.so -y" -o "./output_http.so"
MJPG Streamer Version.: 2.0
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: -1
i: Format............: YUYV
i: JPEG Quality......: 80
i: TV-Norm...........: DEFAULT
libv4l2: error setting pixformat: Device or resource busy
Unable to set format: 1448695129 res: 640x480
Init v4L2 failed !! exit fatal
i: init_VideoIn failed
тоже камера не поддеррживается?
25.08.17 в 05:02
0
debian@series1-1009:~/mjpg-streamer/mjpg-streamer-experimental$ sudo ./mjpg_streamer -i "./input_uvc.so -y" -o "./output_http.so"
MJPG Streamer Version.: 2.0
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: -1
i: Format............: YUYV
i: JPEG Quality......: 80
i: TV-Norm...........: DEFAULT
UVCIOC_CTRL_ADD - Error at Pan (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Tilt (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Pan Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Pan/tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Focus (absolute): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Tilt (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan/tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Focus (absolute): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at LED1 Mode: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at LED1 Frequency: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Disable video processing: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Raw bits per pixel: Inappropriate ioctl for device (25)
o: www-folder-path...: disabled
o: HTTP TCP port.....: 8080
o: username:password.: disabled
o: commands..........: enabled

камера не подходит? может поделитесь ссылкой на камеру которая на али подойдет. а то 2 камеры уже в топку ушли
17.03.18 в 23:58
0
Честно я прочитал много каментов и искал по словам, не нашел. Что значит "Скачиваем актуальный исходный код для mjpg-streamer."?
18.03.18 в 11:38
0
В инструкции идут команды для выполнения, а затем их описание.

2bca0f33b2787c27f1d7a33890ed71cc.PNG
29.04.18 в 21:52
0
целый день заливаю образ Armbian на новую флэшку 4Гб (2 стало мало), так ни как не могу побороть зависание Octoprint при запуске потока с камеры. Картинка отображается, а команды не отправляются на принтер. Если убить процесс mjpeg_streamer через htop интерфейс тут же оживает и отрабатывает команды. Короче старт сервиса проходит через системные команды октопринта, а вот стоп не влияет.
ЧТО я делаю не верно? На старой системе (из начального поста) то работало... голову сломал и кнопки [Ctrl],[C],[V]
помохииите!
30.04.18 в 00:21
0
А вот не сталкивался с таким явлением. А что с загрузкой процессора при работе камеры, не отрабатываются ли все команды, или какие-то конкретно, отображаются ли температуры? Подробностей хочется.
30.04.18 в 08:12
0
Процессор грузится двумя процессами стримера с общей нагрузкой до 3%. На странице октопринта не отрабатывают интерактивные кнопки, а температуры отображаются, то есть по настройкам можно гулять, но подтвердить не выйдет, пока не сделаешь Kill

ставил старый Ваш образ 2016-05-29_orange_octo вроде заработало, но когда растянул раздел на флэшку 4Гб перестал работать октопринт.
Сейчас заливаю образ 2017-02-21-opi-one, попробую сразу расширить раздел, и только потом ставить октопринт
16.05.18 в 20:38
0
Все сдаюсь. Вдидать без помощи неудастся вникнуть.
Дело такое. До слов "Включаем-выключаем" все работает.
после этого камера перестает запускаться.
жму в ручную этот файл (/usr/local/bin/mjpg_streamer) и ничего непроисходит.
Кнопки в Oktoprint тоже не действуют
16.05.18 в 21:55
0
Вручную - это как? Полную команду приведите, пожалуйста.
После всех действий (добавление пользователя, установка mjpg-streamer, создание скрипта запуска) перезагружаться пробовали?
17.05.18 в 06:10
0
заработало после ввода
sudo ./mjpg_streamer -i "./input_uvc.so -y" -o "./output_http.so"

после по списку и (Устанавливаем mjpg-streamer в систему. При этом исполняемый файл окажется в /usr/local/bin)
вот исполняемый файл в этой папке не работает

Для написания комментариев, пожалуйста, авторизуйтесь.

Читайте в блогах

Branch Technology возвела огромный 3D-печатный павильон в Нэшвилле

Конкурс #хештегов от компании IMPRINTA за июнь 2018 *ОБНОВЛЕН*

Летне-осенние тренды в мире 3D-печати по версии 3D Hubs

Подставка для катушки на Anet и не только

Робо сапиенс: европейские ученые применяют 3D-печать в разработке эволюционирующих роботов

Давайте знакомиться!