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

Подписаться на 3Dtoday
eta4ever
Идет загрузка
Загрузка
24.01.16
19678
115
печатает на RepRap
RepRap
30
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
30
Комментарии к статье

Комментарии

25 Янв 00:02
0
Cool!
Осталось прикрутить манипулятор, чтоб детали снимал и в коробочки упаковывал! :)
25 Янв 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\""
25 Янв 01:31
1
Уважаемый eta4ever !
Хотелось-бы увидеть у Вас реализацию (хотя-бы в виде концепции)
моей идеи о телеметрии видеонаблюдения процесса печати, синхронизованной со слоями.

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

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

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

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

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

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

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

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

sudo nano /usr/local/bin/webcam-streamer и там правим.
2 Фев 19:46
0
в octoprint захожу удаленно, но видео не стримиться, проброс портов сделал в роутере, порты проверил, все открываются, может какая хитрость есть?
2 Фев 20:47
1
А в настройках вебки в октопринте наружный ip прописан?
13 Май 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 Май 23:19
1
По принтдроиду вообще ничего не понял. По разрешению
"input_uvc.so -y\"
меняется на
"input_uvc.so -y -r 1280x720\"
2 Фев 21:52
0
внутренний, но тут другое дело, обновил octoprint до 1.3.1 и он перестал запускаться совсем!
2 Фев 21:57
1
По-моему, надо прописывать внешний. До 1.3.1 еще не обновлялся.
2 Фев 22:27
0
Да, конечно внешний надо. Но с обновой засада, пришлось откатываться.
Спасибо за помощь!
1 Апр 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 он такой формат не могет? Спасибо.
1 Апр 14:32
1
Камера не умеет в MJPG, добавь ключик "-y'.
-i "input_uvc.so -y" -o "output_http.so"
1 Апр 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

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

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

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



Кста как я понимаю это 640*480 или около того. А фуллхд? Камера то могет.
1 Апр 16:18
2
Ключиком -r поиграйся, скажем, -r 1280x720, или -r 1920x1080
1 Апр 16:24
1
Ваще, идея годная, надо в морге покопаться. Ведь там найдется и вебка от ноута, и объективы от видеонаблюденческих камер. А дальше - мыжпечатники.
1 Апр 14:43
0
/dev/video0 появляется с подключением камеры
11 Май 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 Май 17:05
1
Можно попробовать sudo ./mjpg_streamer -i "./input_uvc.so -y" -o "./output_http.so"
Но особой уверенности нет. Хотя, камера вроде как должна быть беспроблемной.
А про перезагрузку принтера можно поподробнее?
11 Май 17:19
0
Камера с Малиновым осьминогом работает отлично, принтер один и тот же. Этот вариант я тоже уже пробовал.
Как только вставляешь в Апельсин USB принтера принтер сразу перегружается. У Октомалины надо было дать ему команду для этого или подключится. А здесь web интерфейс к нему не коннектится, говорит выберите порт вручную, а в меню выбор только один - АВТО.
11 Май 17:26
1
По камере пока подумаю. По порту - пользователь от которого окта работает, в группы tty и dialout добавлен? Выход-вход пользователем (или перезагрузка апельсины) после добавления выполнена? ls /dev/tty* при подключенном принтере можно?
11 Май 17:37
0
sudo usermod -a -G tty orangepi
sudo usermod -a -G dialout orangepi
Это? сделано, перегружал, конечно...
7dec4a7c657f884b47870699ec6b2c31.png
11 Май 17:44
1
Очень интересно. Не вижу здесь нужного порта. А можно вынуть-вставить принтер и dmesg ?
11 Май 17:50
0
dmesg
Выдаст ведь "войну и мир" сразу... Что там искать или как? он в принтскрин не влезет.
11 Май 17:52
1
Ну, что в экран влезет, там хвост самый интересен, который будет после втыкания принтера.
11 Май 18:00
0
c1d1fbc038ce98dd001868e79717b54a.png
Вставлен принтер
7b88bf68970dd2bd361558d7fa86f4fa.png

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

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

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

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

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

Ну или да, вставьте свое имя папки в строку.
11 Май 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 Май 21:13
1
Так. А откуда вообще дистрибутив линукса для апельсины?
11 Май 21:33
0
Все отсюда, шаг за шагом...
11 Май 21:53
1
Ну, в смысле, из первого гайда, или Armbian?
11 Май 21:58
0
Из первого, второй полный только сейчас начал параллельно на второй флешке в перерывах ставить
11 Май 22:01
1
Сборка из первого гайда геморройная. С Armbian меньше проблем. И вообще, вот здесь в конце выложен нормальный образ, работающий на PC и One.
11 Май 22:46
0
Этот образ у меня почти снес Винду. После записи образа исчез любой съемный диск как класс! Еле нашел в чем дело: в управлении дисками при записи образа у съемного диска исчезает имя. Восстанавливаю, при записи все повторяется снова.
11 Май 23:10
1
Ну, то, что винда себя так ведет с dd-образами, немного не их проблема, я считаю.
14 Май 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 Май 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 Май 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 Май 12:57
2
Не, не проходит. Что-то опять в репозиториях поменялось. Вместо libjpeg62-turbo-dev будет другой пакет, какой - сходу не готов ответить. Попробуйте без -dev, просто libjpeg62-turbo.

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

И смотрите, что выдает в каждом случае.
14 Май 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 Май 13:52
1
Нет сейчас апельсины под рукой. Попробуйте sudo apt-get install libjpeg-dev
14 Май 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 Май 14:28
1
Ага, а теперь переходим к тому шагу, где make.
14 Май 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 Май 14:50
1
sudo ./mjpg_streamer -i "./input_uvc.so -y" -o "./output_http.so"
Так попробуйте
14 Май 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 Май 15:37
1
Мда. Где-то тут у кого-то была такая печаль, по-моему, так и не взлетело с этой камерой... Попробую вспомнить.
А, собственно, здесь и есть, выше http://3dtoday.ru/blogs/eta4ever/orange-octopus-an-ordinary-webcam/#215368
Я так понял, тов. Васяня плюнул и взял другую камеру.
14 Май 16:02
0
Пичалька
Значит, не судьба...
Огромное спасибо за помощь!
23 Май 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 Май 17:06
1
Хорошо. У меня тоже сейчас работает все с какой-то беспородной камеры от дядюшки Алика.
26 Май 08:57
0
Здравствуйте
Продолжаю (заканчиваю :-) ) разбираться с камерой на принтере. Вопрос не по программированию: а куда ее (камеру) обычно цепляют, чтоб нормальное видео получилось? Если прицепить на неподвижную раму (у меня RepRap) то голова принтера периодически мешает съемке. Если установить возле головы, постоянно будет мельтешить движущая модель. Оптимально было бы прикрепить ее к столу, но он, зараза, горячий ведь. Кто поделится наработками/идеями?
26 Май 10:18
1
У меня, поскольку камера одна на два принтера, висит над ними и смотрит, что хотя бы модель не раскидана по столу.
Люди по-всякому извращаются, например так:

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

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

заранее спасибо за ответ)))
18 Авг 10:07
2
1. Не знаю, что это могло бы быть.
2. http://адрес:8080/?action=stream -адрес тут уже внешний. Если так открывается браузером, то надо это же (со внешним адресом) прописать в Stream URL
3. Не настраивал.
21 Авг 01:22
0
сегодня первый раз печатал (дисплей не запускается) с вебинтерфейса и не смог найти настройки уменьшение скорости печати
все настройки перелопатил так и не нашел
21 Авг 01:25
1
Вкладка Control, слева внизу ползунок Feed Rate.
25 Авг 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 Авг 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 камеры уже в топку ушли

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

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

Yeehaw Wand: «волшебная палочка» для 3D-моделирования в дополненной реальности

Компания «Евроцемент» займется производством строительных смесей для 3D-принтеров «Спецавиа»

Двухцветная печать или механически переключающийся экструдер.

Изобретатель высокотемпературного экструдера для 3D-принтеров победил в конкурсе «Стартап-школы» ВолГТУ

Тест Top 3D Shop: Какой вы мейкер?

Formnext 2017: первый фотоотчёт от PICASO 3D