Страница 1 из 13

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

Добавлено: 12 апр 2011, 22:48
Nick

Arduino

Arduino — аппаратная вычислительная платформа, основными компонентами которой являются простая плата ввода/вывода и среда разработки на языке Processing/Wiring. Arduino может использоваться как для создания автономных интерактивных объектов, так и подключаться к программному обеспечению, выполняемому на компьютере (например, Macromedia Flash, Processing, Max/MSP, Pure Data, SuperCollider). И т.д. см. википедию http://ru.wikipedia.org/wiki/Arduino .
Снимок-sketch_apr13a.png (24041 просмотр) <a class='original' href='./download/file.php?id=1393&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:!

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

Добавлено: 12 апр 2011, 22:57
Nick
Arduino IDE. Блин, убил кучу времени в поисках того, как загрузить прошивку в Arduino. Скачивал какие-то программы вроде на java с http://arduino.cc . А все оказалось проще - оказывается ардуино IDE есть в репозиториях Ubuntu, и почему я раньше там не поискал :think:. А поискать в репозиториях решил после того как увидел похожую установку IDE в Fedora "sudo yum install arduino".

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

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

Что это может значить?

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

Добавлено: 13 апр 2011, 22:13
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

продолжение следует ....

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

Добавлено: 14 апр 2011, 12:43
Anonymouss
>avrdude: stk500_getsync(): not in sync: resp=0x00 (красным цветом)
>Что это может значить?

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

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

PS а вообще конечно наверно лучше сначала помигать светодиодом, а уж потом грузить http://axis.unpy.net/01198594294

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

Добавлено: 14 апр 2011, 15:25
Nick
Спасибо, завтра доберусь до дома попробую.

"PS а вообще конечно наверно лучше сначала помигать светодиодом..."
А как им помигать?
Да и halintf.pde предельно проста.

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

Добавлено: 15 апр 2011, 19:21
Anonymouss
>А как им помигать?
http://arduino.cc/en/Tutorial/Blink

по запросу "avrdude: stk500_getsync(): not in sync: resp=0x00" в google масса вариантов от неправильной настройки виртуального com порта до отпаявшихся деталек - но, во всяком случае, это означает, что прошивка в контроллер не грузится.

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

Добавлено: 15 апр 2011, 19:23
Nick
В гугле смотрел, но там в основном пишет еще одну строчку с кодом ошибки, а у меня выводит только эту :problem:

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

Добавлено: 19 апр 2011, 19:48
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), в простое горят красный и синий.

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

Добавлено: 20 апр 2011, 14:22
Anonymouss
а что за плата?
у каких-то вариантов при загрузке прошивки как-то задействована кнопка резет, у некоторых клонов выбор между классическим и удобным вариантом осуществляется с помощью установки перемычки...

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

Добавлено: 20 апр 2011, 14:34
Nick
Плата Carduino Nano v.5 Duo. Кнопка есть, но вроде ресет у них должен быть автоматический при заливке прошивки. Кнопку нажимать пробовал. Без эффекта.
Перемычки вроде нет...

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

Добавлено: 20 апр 2011, 16:32
Anonymouss
>Кнопку нажимать пробовал. Без эффекта.
а без эффекта в смысле только светодиоды ненадолго погасают, или совсем без эффекта?

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

Добавлено: 20 апр 2011, 16:33
Nick
Не помню :). Наверное светодиоды гаснут...

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

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

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

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

Вот что получилось:

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

Добавлено: 25 апр 2011, 22:36
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 и прошивки загружаются без проблем!

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

Добавлено: 26 апр 2011, 11:43
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

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

Добавлено: 26 апр 2011, 12:15
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

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

Добавлено: 30 апр 2011, 00:08
aftaev
Arduino это что за зверь и с чем его едят? Хоть примеры написали для чего его использовать. Какое отношение это имет к CNC?

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

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

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

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

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

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