Проект "Хоббист"

Контроллеры, драйверы, датчики, управляющие устройства.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Проект "Хоббист"

Сообщение selenur »

Спустя некоторое время, моя задумка уже начала работать, сразу не стал писать, т.к. не знал взлетит или нет :-)
Значит проект состоит из нескольких частей:
1) Собственно контроллер для управления драйверами моторов.
2) ПО для управления (при подключении к компьютеру)
3) Пульт управления
4) ПО для управления контроллера с планшета

Т.к. я уже давно программирую, да ещё и радиолюбитель, решил сделать свой велосипед, не спеша, может ещё кто постепенно подтянется :-)
И так контроллер представляет собой очень простую схему состоящую из МК AVRmega16A с 40 ножками парой кнопок, резисторов, кварца и разъемов.
Схема выглядит так: На схеме под номером 1 есть необязательный элемент в виде экондера вот такого: http://tixer.ru/catalog/buttons-switche ... 2e1220401/
Он позволяет увеличь/уменьшить скорость работы.
Под номером 2 собственно разъем COM порта (только сигнал типа TTL) к которому можно подключить например такой переходник: http://tixer.ru/catalog/modules/interfa ... e_ft232rl/ благодаря чему в компьютере появляется виртуальный COM порт.
На схеме где кнопка стоп, в разрыв можно подключить концевики.
Мой прототип выглядит пока так:
(для просмотра содержимого нажмите на ссылку)
Коробка с блоком питания, драйверами, и контроллером
WP_000301.jpg (4951 просмотр) <a class='original' href='./download/file.php?id=22572&sid=0e261654778a9dbc93f2326e63bbec98&mode=view' target=_blank>Загрузить оригинал (113.42 КБ)</a>
Сам контроллер
WP_000303.jpg (4951 просмотр) <a class='original' href='./download/file.php?id=22573&sid=0e261654778a9dbc93f2326e63bbec98&mode=view' target=_blank>Загрузить оригинал (152.93 КБ)</a>
Переходник на USB
WP_000304.jpg (4951 просмотр) <a class='original' href='./download/file.php?id=22574&sid=0e261654778a9dbc93f2326e63bbec98&mode=view' target=_blank>Загрузить оригинал (100.19 КБ)</a>
И станочек
WP_000305.jpg (4951 просмотр) <a class='original' href='./download/file.php?id=22575&sid=0e261654778a9dbc93f2326e63bbec98&mode=view' target=_blank>Загрузить оригинал (82.75 КБ)</a>
Для работы с контроллером, можно использовать любую терминальную программу, процесс работы такой, посылаем команду например что по оси Х нужно в таком-то направлении выполнить 500 импульсов, а по оси Z 50 импульсов, контроллер отвечает что параметры приняты, после этого посылаем команду выполнить, и контроллер начинает выполнять, и по завершении отправляет команду что выполнено.
Пока контроллер выполняет только прямолинейные движения, но в последствии добавлю и по окружности.

Для более удобной работы я делаю удобную оболочку, альфа версия уже выглядит так: Можно загружать G-код который не имеет окружностей, и получается так: Но в процессе моих задач часто нужно бывает выполнить простые операции, и для того что-бы не ваять G-код в сторонней программе, делаю простой конструктор, с различными примитивами, пока правда всего 2 Третий и четвертый пункт на будущее, но для 4-го пункта уже проверял использование переходника http://tixer.ru/catalog/modules/interfa ... e_ft232rl/ с Андроид планшетом имеющий USB вход, посредством терминальной программки можно рулить уже сейчас.

Данный проект абсолютно открытый, кому интересно уже сейчас могу выложить исходники, правда они ещё с косяками, но пожелания приветствуются.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11625
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4634
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Проект "Хоббист"

Сообщение michael-yurov »

Программа красивая и аккуратная, понравилась.
2cme
Почётный участник
Почётный участник
Сообщения: 1043
Зарегистрирован: 24 янв 2012, 13:18
Репутация: -209

Re: Проект "Хоббист"

Сообщение 2cme »

selenur писал(а):Данный проект абсолютно открытый, кому интересно уже сейчас могу выложить исходники, правда они ещё с косяками, но пожелания приветствуются.
Очень даже интересно!
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Проект "Хоббист"

Сообщение selenur »

Вот пример работы с контроллером из терминальной программки, я обычно пользуюсь Terminal 1.9, хотя можно использовать любую.
https://www.youtube.com/watch?v=C6acm4PrsUg
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Проект "Хоббист"

Сообщение selenur »

2cme писал(а):Очень даже интересно!
Вот исходники для контроллера, написаны в AVRStudio 6.0
2013.12.19 controllerV2.rar
Исходники
(58.59 КБ) 492 скачивания
При кварце в 20 Мгц, и длине USB провода 5 метров, достигается стабильная работа на скорости 56000 б/с, на драйверы скорость импульсов изменяется от 0 до 20кГц плавно, а до 60кГц уже не совсем стабильно, т.к. пока алгоритмы сильно не оптимизированы, но в последствии поправлю :-)
А вот инструкция по командам:
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Проект "Хоббист"

Сообщение selenur »

Тут вот Nick спросил как это работает, попробую рассказать.
Вначале небольшая схема В качестве управляющего устройства может выступать, как компьютер, планшет, так и другое устройство которое имеет возможность работать с протоколом UART, а по простому работать с COM-портом.
В качестве преобразователя интерфейса бывает много разных разновидностей, и вариантов подключения, вот те с которыми уже сейчас проверенно в работе:
(для просмотра содержимого нажмите на ссылку)
Для подключения контроллера к компьютеру посредством USB мк FT232 (можно и к планшету, у которого есть USB вход, как у моего Wexler TAB 7000)
msg-14713-0-50233700-1378439778_thumb.jpg (4853 просмотра) <a class='original' href='./download/file.php?id=22777&sid=0e261654778a9dbc93f2326e63bbec98&mode=view' target=_blank>Загрузить оригинал (14.28 КБ)</a>
Для подключения контроллера к компьютеру посредством СОМ-кабеля мк MAX232
WP_000310.jpg (4853 просмотра) <a class='original' href='./download/file.php?id=22778&sid=0e261654778a9dbc93f2326e63bbec98&mode=view' target=_blank>Загрузить оригинал (135.12 КБ)</a>
Так-же существует возможность подключения через блутуз, и прочие посредники, но пока не проверял.

Для сборки контроллера нужно: МК Atmega, я использовал atmega16A т.к. у неё много выводов с заделом на будущее, кварц (чем больше тем лучше, но максимум 20Мгц). и пару резисторов, ах ... да ещё питание 5 вольт.
Исходники, и прошивка теперь можно скачать тут: https://github.com/selenur/AVR-Controller

Работа с контроллером представляет собой обмен сообщениями, в начале контроллеру по очереди отправляются необходимые параметры, а потом команда на выполнение. У контроллера сейчас есть 4 параметра: X,Y,Z,S.
Для осей посылается число импульсов, а перед числом знак плюс или минус (которые означают в какую сторону будет выполнено вращение), параметр S это скорость перемещения, означает промежуток между импульсами в мксек.
При включении контроллера, или завершении выполнения задания, переменные "осей" обнуляются, благодаря чему, если необходимо выполнить движение по одной оси то посылаем команду установки количества импульсов, только этой оси, и запускаем на выполнение.
Например список команд контроллеру для движения только по оси Х:

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

!AX+0000008000&
!B&
А вот так движение по обоим осям:

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

!AY-0000000800&
!AX+0000008000&
!B&
А так например не спеша фреза врезается в деталь сверху, а потом стол быстро двигается по оси Х:

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

!AZ-0000000800&
!AS01000&
!B&
!AS00150&
!AX+0000008000&
!B&
Сейчас к МК можно подключить, экондер, и концевики или кнопку стоп, и светодиодные индикаторы, а можно и не подключать. :-)
Выводов ещё много свободных к которым можно будет добавить ещё функционал, например в китае нашел такую штуку:
(для просмотра содержимого нажмите на ссылку)
Free-Shipping-10pc-Photoelectric-speed-sensor-encoder-code-wheel-grating.jpg_120x120.jpg
Free-Shipping-10pc-Photoelectric-speed-sensor-encoder-code-wheel-grating.jpg_120x120.jpg (4.57 КБ) 4853 просмотра
Можно будет сделать обратную связь, благодаря которой можно следить за пропуском шагов.

Вот как-то так :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
Fisher
Почётный участник
Почётный участник
Сообщения: 3391
Зарегистрирован: 09 апр 2012, 12:39
Репутация: 424
Откуда: Киров
Контактная информация:

Re: Проект "Хоббист"

Сообщение Fisher »

Здорово!
И, в принципе, можно все это дело к обычному G-коду привязать.
www.cncru.ru - все виды станков с ЧПУ. Комплектующие.
Аватара пользователя
Maxekb77
Мастер
Сообщения: 1658
Зарегистрирован: 05 окт 2013, 00:04
Репутация: 285
Настоящее имя: Максим
Откуда: Екатеринбург
Контактная информация:

Re: Проект "Хоббист"

Сообщение Maxekb77 »

Может за основу управления осями взять grbl ?
А вот отправщик g-code нормальный бы честно не помешал, давно уже хочется отвязаться от Usb например в сторону wifi или блютуса. и сейчас не хватка управления скоростью шпинделя.
Насчет энкодеров я думаю это лишняя нагрузка для хоббийного варианта, да и я так понимаю avr может не вытянуть пачку энкодеров.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Проект "Хоббист"

Сообщение Сергей Саныч »

Вопрос 1. Разгон/замедление предусмотрены?
Если да, то вопрос2. Какое-то подобие планировщика есть?
Чудес не бывает. Бывают фокусы.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Проект "Хоббист"

Сообщение selenur »

Maxekb77 писал(а):давно уже хочется отвязаться от Usb например в сторону wifi или блютуса
Можно и по вайфаю http://www.aliexpress.com/item/WIFI-to- ... 47017.html 24 бакса стоит. Или такое http://www.aliexpress.com/item/Serial-R ... 45261.html
Maxekb77 писал(а):да и я так понимаю avr может не вытянуть пачку энкодеров
Зависит от того какая частота степа нужна, без них сейчас 20 кГц получается, (после оптимизации кода будет 30 и больше) уменьшиться грубо говоря до 10кГц, но это уже легко сделать вкл/выкл опцию :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Проект "Хоббист"

Сообщение selenur »

Serg-tmn писал(а):Вопрос 1. Разгон/замедление предусмотрены?
Если да, то вопрос2. Какое-то подобие планировщика есть?
Сейчас пока сделал что в начале интервал 1000мксек, а потом с каждым степом увеличивается до необходимой, и в конце в обратную сторону.
Но это пока не придумал как сделать, может по анологии как в настройках матча.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Проект "Хоббист"

Сообщение selenur »

Maxekb77 писал(а):А вот отправщик g-code нормальный бы честно не помешал
Сделать парсер G-кода на авр не проблема, и отправщик тоже :-) но я пока только пробую разные подходы для упрощения задачи :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Проект "Хоббист"

Сообщение Сергей Саныч »

selenur писал(а):Сейчас пока сделал что в начале интервал 1000мксек, а потом с каждым степом увеличивается до необходимой, и в конце в обратную сторону.
Ясно. Значит, реально можно достичь производительности, скажем, TurboCNC. Для начала неплохо.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Maxekb77
Мастер
Сообщения: 1658
Зарегистрирован: 05 окт 2013, 00:04
Репутация: 285
Настоящее имя: Максим
Откуда: Екатеринбург
Контактная информация:

Re: Проект "Хоббист"

Сообщение Maxekb77 »

selenur писал(а):
Maxekb77 писал(а):А вот отправщик g-code нормальный бы честно не помешал
Сделать парсер G-кода на авр не проблема, и отправщик тоже :-) но я пока только пробую разные подходы для упрощения задачи :-)
Так она и так простая )))
Отправщик g-code, управление с нумпада для выставления в 0, ну и управление шпинделем - вкл\выкл, скорость шпинделя.
Вот неплохой сендер http://reprap.org/wiki/CNCGcodeController но автор мягко говоря с пермещениями перемудрил
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Проект "Хоббист"

Сообщение selenur »

Ну ручная рулилка у меня пока такая: Управление у меня пока только с кнопок, но прикрутить нумпад вообще не проблема, и даже хорошая идея :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
Maxekb77
Мастер
Сообщения: 1658
Зарегистрирован: 05 окт 2013, 00:04
Репутация: 285
Настоящее имя: Максим
Откуда: Екатеринбург
Контактная информация:

Re: Проект "Хоббист"

Сообщение Maxekb77 »

Скинь помучать )
Кнопку стопа лучше на левую панель вывести
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Проект "Хоббист"

Сообщение selenur »

по этому адресу: https://github.com/selenur/CNC-Controll ... /bin/Debug нужно скачать пару файлов, CNCDriver.exe и папку DLL for works, там компоненты OPEN-GL, для 3D
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Проект "Хоббист"

Сообщение selenur »

Для работы необходимо: ОС любая виндовс, с framework 4.
Программа очень сырая!!!!!
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
Maxekb77
Мастер
Сообщения: 1658
Зарегистрирован: 05 окт 2013, 00:04
Репутация: 285
Настоящее имя: Максим
Откуда: Екатеринбург
Контактная информация:

Re: Проект "Хоббист"

Сообщение Maxekb77 »

selenur писал(а):Для работы необходимо: ОС любая виндовс, с framework 4.
Программа очень сырая!!!!!
Да никто никуда не торопится )
запустилась нормально, сейчас уехать надо вечером набросаю что я вижу если не против.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Проект "Хоббист"

Сообщение selenur »

Буду очень рад :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Ответить

Вернуться в «Электроника»