ЕСТЬ ИДЕЯ Orange Pi Zero 512Mb + cncjs

Владимир (Vofka)

СКАЗАЛ ТУТ НЕМНОГО
НАШ ЧЕЛОВЕК
Регистрация
18.06.2018
Сообщения
705
Реакции
540
Баллы
133
Возраст
59
Адрес
Оттуда
Город
Сочи
Имя
Владимир
Отчество
Леонидович
Прошивка
1.1f
Установил на Orange Pi Zero 512Mb проект cncjs для работы на нашем дятле.
2018-08-23_00-24-21.jpg2018-08-23_00-24-36.jpg2018-08-23_00-25-05.jpg

Описание: Orange Pi Zero 512MB

Orange Pi Zero - одноплатный микрокомпьютер на процессоре Cortex-A7 AllWinner H2+ SoC Quad-core 1.2 GHz (чип на кристалле). Самый маленький в семействе Orange PI. В варианте с 512 МБ оперативной памяти. Поддержка WiFi. Этот вариант Orange Pi не имеет встроенной Flash памяти, по этому образ операционной системы должен быть записан на micro-SD карту, которая вставляется в соответствующий разъем платы. Часть функциональных выходов выведена через дополнительный модуль Zero Interface Board (в комплект не входит), например аудио и видео выходы.

Характеристики
  • Процессор: Allwiner H2+ четырех-ядерный процессор Cortex-A7 1.2 GHz;
  • GPU: Mali400MP2 GPU @ 600 мГц, поддерживает OpenGL ES 2.0;
  • Память (SDRAM): 512 МБ DDR3 (совместно с GPU);
  • Flash: внешняя карта памяти SD/MMC/SDIO, макс. 64 ГБ (в комплект не входит);
  • Поддержка сети: 10/100 Ethernet RJ45;
  • Поддержка WiFi: есть XR819, IEEE 802.11 b/g/n, в комплекте с антенной;
  • Аудио вход: микрофон на Zero Interface Board;
  • Видео выход: через Zero Interface Board;
  • Аудио выход: через Zero Interface Board;
  • Источник питания: 5В через USB OTG;
  • USB 2.0 портов: один USB 2.0 Host, один USB 2.0 OTG, два USB 2.0 Host через Zero Interface Board;
  • Кнопки: кнопка питания;
  • Низкоуровневые вводы/выводы: 26 контактов, совместимых с Raspberry Pi B +;
  • Многофункциональные вводы/выводы: 13 контактов для подключения Zero Interface Board, 2xUSB, ИК приемник, AUDIO, AV;
  • Индикаторы: индикатор питания, индикатор состояния;
  • Поддерживаемые ОС: Android, Lubuntu, Debian, Raspbian;
  • Размеры: 48 мм × 46 мм;
  • Вес: 26г;
Изначально проект предназначался для Raspberry Pi или laptop.
Работает на JavaScript как в браузере (3D на WebGL), так и через программу под винду, линух и мак.
Также поддерживает лазер.

К контроллеру подключил по usb, проверяю через браузер.
Настроек море, разбираюсь..
Запустил в холостую (на высоте, без включения шпинделя), пока все корректно.

OpiZero_cncjs.png

в планах подключение камеры и hdd.

... прошло некоторое кол-во времени ...

тест прошел отлично
OpiZero_cncjs_finish.png
в тесте скорость F=350, не на много ускорилось (Elapsed Time 02:29:43) в оригинале скорость F=150,
Загрузка камня и температура. На камне и раме радиаторы, Обдува нет.
Код:
Time        CPU    load %cpu %sys %usr %nice %io %irq   CPU  C.St.
21:22:03: 1200MHz  0.51   5%   1%   3%   0%   0%   0% 46.5°C  0/8
21:22:08: 1200MHz  0.47   7%   1%   5%   0%   0%   0% 46.3°C  0/8
21:22:13: 1200MHz  0.43   7%   1%   5%   0%   0%   0% 46.3°C  0/8
21:22:18: 1200MHz  0.56   5%   1%   4%   0%   0%   0% 45.9°C  0/8
21:22:23: 1200MHz  0.59   4%   1%   2%   0%   0%   0% 45.3°C  0/8
21:22:28: 1200MHz  0.55   7%   2%   4%   0%   0%   0% 46.0°C  0/8
21:22:33: 1200MHz  0.50   7%   3%   4%   0%   0%   0% 46.6°C  0/8
21:22:38: 1200MHz  0.46   7%   2%   4%   0%   0%   0% 46.3°C  0/8
21:22:44: 1200MHz  0.42   4%   1%   2%   0%   0%   0% 45.3°C  0/8
21:22:49: 1200MHz  0.39   6%   1%   4%   0%   0%   0% 46.2°C  0/8
21:22:54: 1200MHz  0.36   7%   1%   5%   0%   0%   0% 46.7°C  0/8
21:22:59: 1200MHz  0.33   7%   1%   5%   0%   0%   0% 46.1°C  0/8
21:23:04: 1200MHz  0.30   6%   1%   4%   0%   0%   0% 45.9°C  0/8
21:23:09: 1200MHz  0.36   6%   1%   4%   0%   0%   0% 45.9°C  0/8
21:23:14: 1200MHz  0.33   7%   1%   5%   0%   0%   0% 45.9°C  0/8
надо будет с камерой проверить загрузку, она будет самая тяжелая.

Ну что можно сказать? - по сравнению с нетбуком с ХП - земля и небо, мне нравится. :)
Нетбук глючил конкретно, Ноут места много занимает, а тут без проблем.
Да и не хочется мне комп только для станка использовать.
Есть малютка за 14 баксов - пусть работает она.
С камерой ещё поиграюсь да и корпус надо будет лепить для всего этого.

Работает на java
Сорри, напутал, не на Java, а на JavaScript, это разные вещи, но не суть,
Cheton Wu рельно круто накодил.
(вот - случай, исправить нельзя, а кого нибудь от этой ошибки сильно вспучит)

Она мне реально показалась на много серьезней тех, который я использовал до этого.
Да, мне тоже пока все нравится. IMHO интереснее чем Candle.
Но надо разбираться с ней.
На выходных попытаюсь что нибудь запилить.

Подписался на гитхабе на неё. Там тоже много полезного.

Поехали

1 BOM

OrangePi Zero 512Mb
Плата расширения, так называемый NAS
шнурок для hdd
радиаторы
адаптер uart такой или такой <- этот удобней только тем, что в защитной пленке. Оба они на cp2102. Это не принципиально. Можно и другой, главное условие - он должен работать :)

так же могут понадобятся
step-down на LM2596.
штекер питания только для тестов, потом, когда буду размещать это все в отдельном корпусе, избавлюсь и него и от usb шнурка
если радиаторы будете делать сами то понадобится теплопроводный скотч

Все эти ссылки из моей истории заказов ни в коем случае не руководство к покупке, а только отправная точка.
Например: ссылка на Opi в корпусе, уже с платой расширения и если юзать hdd не планируете то её и хватит
Другой случай - зачем брать в корпусе если будете делать свой. ну и .т.д.

2. Софт
Образы для Orange Pi Zero
Ставил на Armbian Stretch 4.14
Думаю это совсем не принципиально, тем более что изначально поддерживаются и настольные компы.
Игрался с образом raspbian, С ним движений надо делать больше. С Armbian-ом вышло как-то проще

3. Установка
Флэшка на 32Гб. Игрался и с 2-мя Гб. но это уж слишком мало :) 8-16 для начала хватит.
Для записи образа rufus. Два клика и никаких бубнов.



Подключаем uart и LAN шнурок.
Вставляем флешку,

Открываем Device Manager и смотрим на каком порту висит адаптер uart



Подключаемся терминалом к этому порту.
Включаем питание и ждем пока загрузится.



Далее смена пароля root-а (дефолтный пасс 1234) и регистрация нового пользователя.
выходим из root-а
cnc@orangepizero:~$ exit
и логинимся под юзером которого создали.



Все работы ведем под пользователем которого создали. В моем примере это cnc.
Проверяем доступ в инет
cnc@orangepizero:~$ ping ya.ru
остановка пинга Ctrl + c



Код:
cnc@orangepizero:~$ sudo apt-get update
cnc@orangepizero:~$ sudo apt-get upgrade


процесс не быстрый, ждем.

Далее устанавливаем ntpdate
cnc@orangepizero:~$ sudo apt-get install ntpdate
Это из раскопок. Без установки более-менее точного времени вылезали самые разные глюки, от зависания процесса установки, до кривой установки. Может это и не от даты. но после установки даты проблем не возникало
Далее
cnc@orangepizero:~$ sudo reboot
если после перезагрузки найдутся ещё обновления (строка будет выделена цветом), то опять
cnc@orangepizero:~$ sudo apt upgrade
Если нет, то первым делом настраиваем ТЗ и время.
cnc@orangepizero:~$ sudo dpkg-reconfigure tzdata
выбираем свою ТЗ и город


через несколько минут обычно обновляется, но у меня на GSM мопеде не всегда быстро (для этого и ставил ntpdate),
На нормальном канале проблем быть не должно.
если время будет неправильным, то получите вот такую ошибку


для ускорения процесса можно сделать перезагрузку. (мне она не всегда помогала)
проверяем:
cnc@orangepizero:~$ date Sat Jan 27 22:41:37 MSK 2018


если дата таки кривая, то
cnc@orangepizero:~$ sudo ntpdate -u ntp1.stratum2.ru 24 Aug 03:48:28 ntpdate[1417]: step time server 88.147.254.230 offset 17989313.555203 sec
теперь все ок,
подготовка системы завершена.
 
  • Последнее редактирование:
Последнее редактирование:
Это очень крутая программа CNCjs!!!
Я в ней для себя нашел несколько очень полезных и давно искал для себя прибамбасов.
К примеру подгон к точному месту начала работы,..
Да и что там говорить, ее реально надо пробовать и тестировать.
СПАСИБО!
Если не против, хочу разместить ссылку на нашем форуме в разделе "ресурсы-программы"
правда рекомендую к изучению.
Она мне реально показалась на много серьезней тех, который я использовал до этого.

2018-08-23_00-00-10.jpg

2018-08-23_00-07-46.jpg

Про Вашу модернзацию с удовольствием буду читать и дальше.
 
тема крайне интересная. нельзя ли "для чайников", начиная с установки на станок, подключений, каким образом на монитор выводится и т.д?
 
Андрианов Фёдор,
Да, собираюсь написать то, что уже наковырял.
Надеюсь за несколько раз напишу.
 
Тоже буду внимательнейшем образом следить за вашими сообщениями, терпеть не могу жесткой привязки компа и СNC.
 
  • Последнее редактирование:
Последнее редактирование:
Установка node.js и cncjs:

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

Установка Nodejs 6
Ну.... E bash, так E bash....: ставим репо
cnc@orangepizero:~$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -

ставим ноду
cnc@orangepizero:~$ sudo apt-get install -y nodejs
в принципе после установки репо, об этом и будет написано :)
пример корректной установки:
nodejs_install.png


И наконец cncjs:
cnc@orangepizero:~$ sudo npm install --unsafe-perm -g cncjs
Тут хочу обратить внимание на установку.
Нормальная выглядит так:
cncjs_install_ok.png

Несколько раз у меня зависало на установке serialport. Если вылезет такая ошибка, то дальше двигаться бесполезно.

проверяем cncjs
cnc@orangepizero:~$ cnc -V 1.9.15
встал :)

пропишем автозагрузку
cnc@orangepizero:~$ sudo nano /etc/rc.local
выше строки exit 0: вставляем sudo /usr/lib/node_modules/cncjs/bin/cnc &
сохраняем = Ctrl+o, подтверждаем = Enter, выходим из nano = Ctrl+x

проверяем загрузку cncjs, для этого запустим вручную
cnc@orangepizero:~$ sudo /usr/lib/node_modules/cncjs/bin/cnc &
если нет ошибки про serialport, то все ок!

выглядеть это будет примерно так:
cncjs_autostart_ok.png

Обратите внимание откуда берутся настройки /root/.cncrc
При дальнейшей настройке программы сохранять именно туда - руту :)
Или в строке запуска указывать откуда их брать

подключаемся к WIFI
cnc@orangepizero:~$ nmtui-connect
пароль сохраняется и при следующих загрузках его вводить уже ненужно, т.е. включил и работай.

wifi_setup.png

Все, LAN кабель нам не нужен.
Для того, чтобы не лезть в роутер, IP OPi можем посмотреть wlan0 в терминале
cnc@orangepizero:~$ ifconfig

wlan_ip.png

в дальнейшем нужно будет в DHCP роутера (если в роутере такая возможность есть) прописать имя OPi и в браузере обращаться по имени а не по IP.

cnc@orangepizero:~$ sudo reboot

после перезагрузки проверяем, что порт 8000 открыт
cnc@orangepizero:~$ netstat -tulpn

На морду заходим http://IPAddres:8000/ (в примере http://192.168.1.36:8000)
Тут тоже (если есть возможность) можно роутере сделать редирект с 8000 на 80 и заходить без указания порта.
В общем вариантов много, каждый выбирает, то что ему удобнее/доступнее.
Вебморда сразу запустилась на нашем могучем.

Все! Выключаем, несем к станку, подключаем через usb, знакомимся с программой.

В программе пока не выберете usb порт софт работать не даст.
Я не тестировал, но по идее должна быть возможность и uart-ом подключиться

2018.10.31
если будут ошибки про serialport то надо установить node-gyp
sudo npm install -g node-gyp
далее внутри каталога /usr/lib/node_modules/cncjs/node_modules/serialport выполнить
sudo node-gyp configure build


далее настройка вебкамеры.


to be, так сказать, continued...
 
Занято для описания
 
Владимир (Vofka), а хрюшу туда можно поставить, чтобы не танцевать с линуксом? Чисто теоретически
 
Теоритически можно, а практически сомневаюсь что кто либо будет этим заниматься. Но дело даже не в этом. Линух несравнимо стабильнее любой винды, а это как раз и нужно для длительных процессов.
Мой совет - не пожалейте потраченного времени, оно окупится
 
Владимир (Vofka), как реализован видео выход? Как подключить к монитору? Тема очень интересная и в целом возможная к исполнению.
 
На компе открываете браузер и вводите IP адрес и порт апельсинки. Все.
Никаких проводов.
browser.png
 
Владимир (Vofka), а если напрямую к монитору? Чтобы это был полностью портативный компьютер только для заливки УП через аналоги candle, программу, которая описана выше. Я понял посредством переходника hdmi vga?
 
  • Последнее редактирование:
Последнее редактирование:
Ну да, если монитор vga то через переходник.
Не проверял этот вариант, скорее всего можно и монитор и клаву и мышу.
Но. Без поднятия X-ов, ничего выйдет, а imho Х-ы это лишняя нагрузка для такой малютки.
Для полноценного компа, надо апельсинку пожирнее покупать.

В обще такие работы делаются по задачу, я изначально хотел только автономную работу станка, т.е. загрузку УП и удаленный контроль.
Ваши сообщения автоматически объединены:

З.Ы. есть проект https://orangecnc.github.io/ - тоже интересный вариант
Ваши сообщения автоматически объединены:

Все что здесь описывал это больше напоминает OctoPrint для 3Д принтеров.
В наличии ещё OPi One 512Мб. Она пойдет на принтер, там есть разъем для камеры, но нет вафли.
С 3Д легче - там только вонь надо выветривать, а cnc шумный, его в сторонку :)
 
Опять облом :(
На выходных решил запилить печатку, всё подготовил и обломался - у cncjs отсутствует карта высот...
На хабе эту тему обсуждают уже 2 года.
Вот блин, хороший софт, но как обычно - чего-то не хватает.

Полез копать дальше. Надыбал chilipeppr, есть для grbl 0.9 и для grbl 1.1.
Для работы нужно установить Serial Port JSON Server
Всё хорошо, но он только онлайн, что неприемлемо.
Нашел локальный чили chilipeppr.local он поддерживает только TinyG и на grbl работать отказался.
Ковырять чили желания нет, да и работате чили только в браузере, что опять заставляет держать либо комп, либо МК либо и комп и МК.

Выходные впустую.

Наверное попытаюсь с LinuxCNC поиграться, уж очень нехочется комп занимать только станком.

Может у кого есть какие то наработки по нашей теме на базе МК?
 
Сверху Снизу
Обнаружен блокировщик рекламы AdBlock

МЫ ДОГАДЫВАЕМСЯ, ЧТО РЕКЛАМА ВАС РАЗДРАЖАЕТ!

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

Спасибо за Ваше понимание!

Я отключил свой AdBlock    Нет, я не буду ничего отключать