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

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.

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

Сообщение Nick » 12 апр 2011, 22:48

Arduino

Arduino — аппаратная вычислительная платформа, основными компонентами которой являются простая плата ввода/вывода и среда разработки на языке Processing/Wiring. Arduino может использоваться как для создания автономных интерактивных объектов, так и подключаться к программному обеспечению, выполняемому на компьютере (например, Macromedia Flash, Processing, Max/MSP, Pure Data, SuperCollider). И т.д. см. википедию http://ru.wikipedia.org/wiki/Arduino .
Arduino EMC2 LinuxCNC - советы начинающим Снимок-sketch_apr13a.png

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:!
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1332
Заслуга: Developer
Медальки:

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

Сообщение Nick » 12 апр 2011, 22:57

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

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

Сообщение Nick » 12 апр 2011, 23:47

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

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

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

Сообщение Nick » 13 апр 2011, 22:13

Итак, загружаем остальные файлы (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

продолжение следует ....
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1332
Заслуга: Developer
Медальки:

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

Сообщение Anonymouss » 14 апр 2011, 12:43

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

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

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

PS а вообще конечно наверно лучше сначала помигать светодиодом, а уж потом грузить http://axis.unpy.net/01198594294
Anonymouss
Новичок
 
Сообщения: 20
Зарегистрирован: 20 апр 2010, 16:35
Репутация: 6

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

Сообщение Nick » 14 апр 2011, 15:25

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

"PS а вообще конечно наверно лучше сначала помигать светодиодом..."
А как им помигать?
Да и halintf.pde предельно проста.
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1332
Заслуга: Developer
Медальки:

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

Сообщение Anonymouss » 15 апр 2011, 19:21

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

по запросу "avrdude: stk500_getsync(): not in sync: resp=0x00" в google масса вариантов от неправильной настройки виртуального com порта до отпаявшихся деталек - но, во всяком случае, это означает, что прошивка в контроллер не грузится.
Anonymouss
Новичок
 
Сообщения: 20
Зарегистрирован: 20 апр 2010, 16:35
Репутация: 6

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

Сообщение Nick » 15 апр 2011, 19:23

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

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

Сообщение Nick » 19 апр 2011, 19:48

Попробовал использовать другие версии 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), в простое горят красный и синий.
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1332
Заслуга: Developer
Медальки:

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

Сообщение Anonymouss » 20 апр 2011, 14:22

а что за плата?
у каких-то вариантов при загрузке прошивки как-то задействована кнопка резет, у некоторых клонов выбор между классическим и удобным вариантом осуществляется с помощью установки перемычки...
Anonymouss
Новичок
 
Сообщения: 20
Зарегистрирован: 20 апр 2010, 16:35
Репутация: 6

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

Сообщение Nick » 20 апр 2011, 14:34

Плата Carduino Nano v.5 Duo. Кнопка есть, но вроде ресет у них должен быть автоматический при заливке прошивки. Кнопку нажимать пробовал. Без эффекта.
Перемычки вроде нет...
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1332
Заслуга: Developer
Медальки:

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

Сообщение Anonymouss » 20 апр 2011, 16:32

>Кнопку нажимать пробовал. Без эффекта.
а без эффекта в смысле только светодиоды ненадолго погасают, или совсем без эффекта?
Anonymouss
Новичок
 
Сообщения: 20
Зарегистрирован: 20 апр 2010, 16:35
Репутация: 6

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

Сообщение Nick » 20 апр 2011, 16:33

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

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

Сообщение Nick » 25 апр 2011, 22:17

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

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

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

Вот что получилось:
Вложения
Arduino EMC2 LinuxCNC - советы начинающим lpt arduino bootloader.JPG
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1332
Заслуга: Developer
Медальки:

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

Сообщение Nick » 25 апр 2011, 22:36

"Ура заработало!" (с) кот матроскин :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 и прошивки загружаются без проблем!
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1332
Заслуга: Developer
Медальки:

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

Сообщение Nick » 26 апр 2011, 11:43

Снова запускаю 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
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1332
Заслуга: Developer
Медальки:

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

Сообщение Nick » 26 апр 2011, 12:15

Чтобы подключить панель 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
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1332
Заслуга: Developer
Медальки:

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

Сообщение aftaev » 30 апр 2011, 00:08

Arduino это что за зверь и с чем его едят? Хоть примеры написали для чего его использовать. Какое отношение это имет к CNC?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
aftaev
Зачётный участник
Зачётный участник
 
Сообщения: 26549
Зарегистрирован: 04 апр 2010, 19:22
Откуда: Казахстан. Шымкент
Репутация: 4170
Медальки:

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

Сообщение Nick » 30 апр 2011, 00:35

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

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

Вот ссылка на русскую википедию: http://ru.wikipedia.org/wiki/Arduino
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1332
Заслуга: Developer
Медальки:

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

Сообщение fenom » 30 июл 2011, 17:53

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

След.

Вернуться в LinuxCNC

Кто сейчас на конференции

Зарегистрированные пользователи: arkhnchul, Bing [Bot], Google [Bot], GreyFox, ScrewDriver, Yahoo [Bot], Yandex [bot]

Поделиться

Reputation System ©'