Arduino EMC2 LinuxCNC - советы начинающим

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Arduino EMC2 LinuxCNC - советы начинающим

Сообщение Nick »

Arduino

Arduino — аппаратная вычислительная платформа, основными компонентами которой являются простая плата ввода/вывода и среда разработки на языке Processing/Wiring. Arduino может использоваться как для создания автономных интерактивных объектов, так и подключаться к программному обеспечению, выполняемому на компьютере (например, Macromedia Flash, Processing, Max/MSP, Pure Data, SuperCollider). И т.д. см. википедию http://ru.wikipedia.org/wiki/Arduino .
Снимок-sketch_apr13a.png (23455 просмотров) <a class='original' href='./download/file.php?id=1393&sid=ad8fac89434556d8f9a203a1e5b8e26c&mode=view' target=_blank>Загрузить оригинал (16.84 КБ)</a>

Arduino IDE

Arduino IDE (Integrated Development Environment) - позволяет писать программы, проверять код, компилировать и загружать программы в Arduino.

Установка

sudo apt-get install arduino

Загрузка прошивки

Загружаем прошивку отсюда: http://axis.unpy.net/01198594294
И сохраняем в ~/sketchbook/halintf/
Потом запускаем Приложения -> Электроника -> Arduino IDE
Выбираем наш sketch
Выбираем нужной порт, для Arduino Duemilanove и Nano выбираем /dev/ttyUSB*
Нажимаем Upload
Эта тема будет описывать общие принципы работы с Arduino в разрезе Linux и CNC. Все интересные мысли буду добавлять в шапку.
На создание темы натолкнуло мое полное непонимание темы программирования микроконтроллеров :monkey: и сложность в нахождении нужной информации. Вот и решил записать свои потуги, чтобы на основе них создать пособие для новичков. Опишем все просто и доступно :hehehe:!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Arduino Linux CNC - советы начинающим

Сообщение Nick »

Arduino IDE. Блин, убил кучу времени в поисках того, как загрузить прошивку в Arduino. Скачивал какие-то программы вроде на java с http://arduino.cc . А все оказалось проще - оказывается ардуино IDE есть в репозиториях Ubuntu, и почему я раньше там не поискал :think:. А поискать в репозиториях решил после того как увидел похожую установку IDE в Fedora "sudo yum install arduino".
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Arduino Linux CNC - советы начинающим

Сообщение Nick »

Хммм... странно, при загрузке прошивки пишет в статус баре: "Done uploading", а в консольке:
Binary sketch size: 3244 bytes (of a 30720 byte maximum)
avrdude: stk500_getsync(): not in sync: resp=0x00 (красным цветом)

Что это может значить?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Arduino Linux CNC - советы начинающим

Сообщение Nick »

Итак, загружаем остальные файлы (arduino.py, arduino-vcp.hal, arduino-vcp.xml) отсюда: http://axis.unpy.net/01198594294
Добавляем в файл ini следующую строку в раздел [HAL]:
POSTGUI_HALFILE = arduino-vcp.hal

и эту в раздел [DISPLAY]:
PYVCP = arduino-vcp.xml

Запускаем .... не работает, emc2 запускается, панельки нет...
Ага, забыли сделать вот что: переименовываем arduino.py в arduino и добавляем ей права на выполнение (chmod +x arduino).
Запускаем halrun arduino-vcp.hal, чтобы проверить как оно работает.
..... не работает:

Код: Выделить всё

nick@nick-desktop:~/emc2/configs/arduino$ halrun arduino-vcp.hal
Waiting for component 'arduino' to become ready.................................................................................................................................................................^C
Таааак... arduino не подключен... И правда, не подключен :)...
Включаем... та же картина...

Наверное дело в этом:
waitusr arduino-vcp

продолжение следует ....
Anonymouss
Новичок
Сообщения: 20
Зарегистрирован: 20 апр 2010, 16:35
Репутация: 6

Re: Arduino Linux CNC - советы начинающим

Сообщение Anonymouss »

>avrdude: stk500_getsync(): not in sync: resp=0x00 (красным цветом)
>Что это может значить?

arduino под рукой нет, по памяти:
lsusb чтоб проверить, что arduino подключен,
затем проверить есть ли права на запись в устройство не из под root, если нет, то копать в сторону /etc/udev/rules.d/

>avrdude
а не значит-ли это, что выбрана загрузка прошивки через программатор, а не через встроенный загрузчик?

PS а вообще конечно наверно лучше сначала помигать светодиодом, а уж потом грузить http://axis.unpy.net/01198594294
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Arduino Linux CNC - советы начинающим

Сообщение Nick »

Спасибо, завтра доберусь до дома попробую.

"PS а вообще конечно наверно лучше сначала помигать светодиодом..."
А как им помигать?
Да и halintf.pde предельно проста.
Anonymouss
Новичок
Сообщения: 20
Зарегистрирован: 20 апр 2010, 16:35
Репутация: 6

Re: Arduino Linux CNC - советы начинающим

Сообщение Anonymouss »

>А как им помигать?
http://arduino.cc/en/Tutorial/Blink

по запросу "avrdude: stk500_getsync(): not in sync: resp=0x00" в google масса вариантов от неправильной настройки виртуального com порта до отпаявшихся деталек - но, во всяком случае, это означает, что прошивка в контроллер не грузится.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Arduino Linux CNC - советы начинающим

Сообщение Nick »

В гугле смотрел, но там в основном пишет еще одну строчку с кодом ошибки, а у меня выводит только эту :problem:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Arduino Linux CNC - советы начинающим

Сообщение Nick »

Попробовал использовать другие версии Arduino IDE в репозиториях убунту идет версия 0018, я попробовал последнюю - 0022.
Чтобы ее установить тоже пришлось по-потеть, пришлось стереть библиотеки из поставки и использовать родные убунтовские.
(Стираем librxtxSerial.so и RXTXcomm.jar из arduino-00xx/lib
и выполняем:
sudo ln -s /usr/lib/librxtxSerial.so ./adruino-00xx/lib/
sudo ln -s /usr/share/java/RXTXcomm.jar ./adruino-00xx/lib/
sudo chown -R user ./adruino-00xx/lib/

Но 0022 выдало совсем неожиданную ошибку:
Binary sketch size: 990 bytes (of a 30720 byte maximum)
/home/nick/arduino-0022/hardware/tools/avrdude: 1: Syntax error: ")" unexpected
Syntax error в avrdude :wtf: :eh:

Поставил 0021 ошибка теперь такая:
Binary sketch size: 962 bytes (of a 30720 byte maximum)
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x00

Т.е примерно такая же как и в 0018. Наверное проблема в bootloader. Нужно попробовать перепрошить ардуинку.

--------------------------------

Как можно проверить, наличие отпаявшихся деталек?

ЗЫ при попытке загрузки программы, мигает желтым и зеленым светодиодом (TX и RX), в простое горят красный и синий.
Anonymouss
Новичок
Сообщения: 20
Зарегистрирован: 20 апр 2010, 16:35
Репутация: 6

Re: Arduino Linux CNC - советы начинающим

Сообщение Anonymouss »

а что за плата?
у каких-то вариантов при загрузке прошивки как-то задействована кнопка резет, у некоторых клонов выбор между классическим и удобным вариантом осуществляется с помощью установки перемычки...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Arduino Linux CNC - советы начинающим

Сообщение Nick »

Плата Carduino Nano v.5 Duo. Кнопка есть, но вроде ресет у них должен быть автоматический при заливке прошивки. Кнопку нажимать пробовал. Без эффекта.
Перемычки вроде нет...
Anonymouss
Новичок
Сообщения: 20
Зарегистрирован: 20 апр 2010, 16:35
Репутация: 6

Re: Arduino Linux CNC - советы начинающим

Сообщение Anonymouss »

>Кнопку нажимать пробовал. Без эффекта.
а без эффекта в смысле только светодиоды ненадолго погасают, или совсем без эффекта?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Arduino Linux CNC - советы начинающим

Сообщение Nick »

Не помню :). Наверное светодиоды гаснут...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Arduino Linux CNC - советы начинающим

Сообщение Nick »

Спаял переходник для загрузки bootloader-а через lpt port. Наверное у умелого человека на это ушло бы минут 10, я же потратил пару часов :freak:. Т.к. в магазине не было разъема на выходы arduino пришлось пожертвовать IDE кабелем от CD.

Делал по этой инструкции:
http://arduino.cc/en/Hacking/ParallelPr ... Programmer

Сейчас буду пробовать прошивать.

Вот что получилось:
Вложения
lpt arduino bootloader.JPG (23331 просмотр) <a class='original' href='./download/file.php?id=1454&sid=ad8fac89434556d8f9a203a1e5b8e26c&mode=view' target=_blank>Загрузить оригинал (342.7 КБ)</a>
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Arduino Linux CNC - советы начинающим

Сообщение Nick »

"Ура заработало!" (с) кот матроскин :cheesy:!

Как все делал, подключил arduino к LPT, через самодельный провод. Запускаю Arduino IDE, в ней Tools - Burn Bootloader - w / Parallel programmer.
Получаю:
avrdude: can't open device "/dev/parport0": Permission denied
avrdude: failed to open parallel port "/dev/parport0"

Тогда запускаю arduino с привелегиями супер пользователя. Это не очень хорошо, но самый простой вариант.
sudo arduino

Получаю:
avrdude: initialization failed, rc=-1
avrdude: Yikes! Invalid device signature.
avrdude: Expected signature for ATMEGA328P is 1E 95 0F


Оказывается нужно подключить дополнительное питание. Того, что получается от LPT не хватает, несмотря на то, что светодиоды горят. Включаю arduino в USB и все работает :cheesy:! Bootloader и прошивки загружаются без проблем!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Arduino Linux CNC - советы начинающим

Сообщение Nick »

Снова запускаю halrun arduino-vcp.hal, чтобы проверить как работает arduino в связке с hal/pyvcp.
Как и раньше, запускает Arduino IDE и пишет:

Код: Выделить всё

nick@nick-desktop:~/emc2/configs/arduino$ halrun arduino-vcp.hal
Waiting for component 'arduino' to become ready.................................................................................................................................................................^C
Проблема заключается в том, что выполняемый файл Arduino IDE называется также как наш скрипт. Поэтому нужно изменить эту строчку в arduino-vcp.hal:
loadusr -W arduino /dev/ttyUSB0 3
на эту
loadusr -Wn arduino ./arduino /dev/ttyUSB0 3

Либо можно было изначально не переименовывать arduino.py в arduino а строчку заменить на такую:
loadusr -Wn arduino ./arduino.py /dev/ttyUSB0 3
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Arduino Linux CNC - советы начинающим

Сообщение Nick »

Чтобы подключить панель PyVCP к TkEMC и другим GUI кроме AXIS, нужно в фале ini вместо
POSTGUI_HALFILE = arduino-vcp.hal
написать
HALFILE = arduino-vcp.hal
Т.к. POSTGUI_HALFILE поддерживается только в Axis. POSTGUI_HALFILE позволяет интегрировать панель PyVCP непосредственно в окно axis.


А в arduino-vcp.hal закомментировать последнюю строчку:
waitusr arduino-vcp
т.е. чтобы было
#waitusr arduino-vcp
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6191
Откуда: Казахстан.
Контактная информация:

Re: Arduino Linux CNC - советы начинающим

Сообщение aftaev »

Arduino это что за зверь и с чем его едят? Хоть примеры написали для чего его использовать. Какое отношение это имет к CNC?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Arduino Linux CNC - советы начинающим

Сообщение Nick »

Для меня это внешняя плата с микроконтроллером, которая подключается по USB, для которой можно просто программировать, и не нужно специального программатора и прочих прибамбасов. Ее можно подключить к EMC2 и получить 6 аналоговых входов, 6 аналоговых выходов (PWM) и 6 цифровых пинов (либо вход, либо выход).
Для управления основными двигателями и концевыми датчиками использовать не получится, т.к. для нее нет риалтайма, но для любой периферии пожалуйста. Например arduino используют для контроля температуры сопла 3д принтера на АБС пластике, также им можно регулировать подачу пластика или, например, обороты шпинделя и систему охлаждения.

Сверху есть фотка моей Carduino Nano это маленькая платка размером 2 на 5 см, которая установлена в макетную плату.

Вот ссылка на русскую википедию: http://ru.wikipedia.org/wiki/Arduino
fenom

Re: Arduino Linux CNC - советы начинающим

Сообщение fenom »

очень интересная тема ,а почему не использовать arduino как автономное устройство управления cnc, в интернете пару таких видел.Тем более что для arduino есть и кардрейдеры и монохромные индикаторы и платы управления шаговыми моторами , да и скетчей готовых можно поискать.
Ответить

Вернуться в «LinuxCNC»