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

Контроллеры, драйверы, датчики, управляющие устройства.

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

Сообщение selenur » 19 дек 2013, 14:39

Спустя некоторое время, моя задумка уже начала работать, сразу не стал писать, т.к. не знал взлетит или нет :-)
Значит проект состоит из нескольких частей:
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

Сам контроллер
Проект "Хоббист" WP_000303.jpg

Переходник на USB
Проект "Хоббист" WP_000304.jpg

И станочек
Проект "Хоббист" WP_000305.jpg


Для работы с контроллером, можно использовать любую терминальную программу, процесс работы такой, посылаем команду например что по оси Х нужно в таком-то направлении выполнить 500 импульсов, а по оси Z 50 импульсов, контроллер отвечает что параметры приняты, после этого посылаем команду выполнить, и контроллер начинает выполнять, и по завершении отправляет команду что выполнено.
Пока контроллер выполняет только прямолинейные движения, но в последствии добавлю и по окружности.

Для более удобной работы я делаю удобную оболочку, альфа версия уже выглядит так:

Можно загружать G-код который не имеет окружностей, и получается так:

Но в процессе моих задач часто нужно бывает выполнить простые операции, и для того что-бы не ваять G-код в сторонней программе, делаю простой конструктор, с различными примитивами, пока правда всего 2


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

Данный проект абсолютно открытый, кому интересно уже сейчас могу выложить исходники, правда они ещё с косяками, но пожелания приветствуются.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Аватара пользователя
selenur
Почётный участник
Почётный участник
 
Сообщения: 4102
Зарегистрирован: 21 авг 2013, 19:44
Откуда: Новый Уренгой
Репутация: 1452
Медальки:
Настоящее имя: Сергей

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

Сообщение michael-yurov » 19 дек 2013, 14:47

Программа красивая и аккуратная, понравилась.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
 
Сообщения: 11043
Зарегистрирован: 26 июл 2012, 00:10
Откуда: Новоуральск, Свердловская область.
Репутация: 4350
Медальки:
Настоящее имя: Михаил Львович

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

Сообщение 2cme » 19 дек 2013, 15:11

selenur писал(а):Данный проект абсолютно открытый, кому интересно уже сейчас могу выложить исходники, правда они ещё с косяками, но пожелания приветствуются.

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

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

Сообщение selenur » 19 дек 2013, 15:20

Вот пример работы с контроллером из терминальной программки, я обычно пользуюсь Terminal 1.9, хотя можно использовать любую.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Аватара пользователя
selenur
Почётный участник
Почётный участник
 
Сообщения: 4102
Зарегистрирован: 21 авг 2013, 19:44
Откуда: Новый Уренгой
Репутация: 1452
Медальки:
Настоящее имя: Сергей

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

Сообщение selenur » 19 дек 2013, 15:29

2cme писал(а):Очень даже интересно!

Вот исходники для контроллера, написаны в AVRStudio 6.0
2013.12.19 controllerV2.rar
Исходники
(58.59 Кб) Скачиваний: 294

При кварце в 20 Мгц, и длине USB провода 5 метров, достигается стабильная работа на скорости 56000 б/с, на драйверы скорость импульсов изменяется от 0 до 20кГц плавно, а до 60кГц уже не совсем стабильно, т.к. пока алгоритмы сильно не оптимизированы, но в последствии поправлю :-)
А вот инструкция по командам:
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Аватара пользователя
selenur
Почётный участник
Почётный участник
 
Сообщения: 4102
Зарегистрирован: 21 авг 2013, 19:44
Откуда: Новый Уренгой
Репутация: 1452
Медальки:
Настоящее имя: Сергей

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

Сообщение selenur » 25 дек 2013, 08:10

Тут вот Nick спросил как это работает, попробую рассказать.
Вначале небольшая схема


В качестве управляющего устройства может выступать, как компьютер, планшет, так и другое устройство которое имеет возможность работать с протоколом UART, а по простому работать с COM-портом.
В качестве преобразователя интерфейса бывает много разных разновидностей, и вариантов подключения, вот те с которыми уже сейчас проверенно в работе:
(для просмотра содержимого нажмите на ссылку)
Для подключения контроллера к компьютеру посредством USB мк FT232 (можно и к планшету, у которого есть USB вход, как у моего Wexler TAB 7000)
Проект "Хоббист" msg-14713-0-50233700-1378439778_thumb.jpg

Для подключения контроллера к компьютеру посредством СОМ-кабеля мк MAX232
Проект "Хоббист" WP_000310.jpg

Так-же существует возможность подключения через блутуз, и прочие посредники, но пока не проверял.

Для сборки контроллера нужно: МК 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 Кб) Просмотров: 3451

Можно будет сделать обратную связь, благодаря которой можно следить за пропуском шагов.

Вот как-то так :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Аватара пользователя
selenur
Почётный участник
Почётный участник
 
Сообщения: 4102
Зарегистрирован: 21 авг 2013, 19:44
Откуда: Новый Уренгой
Репутация: 1452
Медальки:
Настоящее имя: Сергей

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

Сообщение Fisher » 25 дек 2013, 08:35

Здорово!
И, в принципе, можно все это дело к обычному G-коду привязать.
www.cncru.ru - все виды станков с ЧПУ. Комплектующие.
Аватара пользователя
Fisher
Почётный участник
Почётный участник
 
Сообщения: 3394
Зарегистрирован: 09 апр 2012, 12:39
Откуда: Киров
Репутация: 424

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

Сообщение Maxekb77 » 25 дек 2013, 09:03

Может за основу управления осями взять grbl ?
А вот отправщик g-code нормальный бы честно не помешал, давно уже хочется отвязаться от Usb например в сторону wifi или блютуса. и сейчас не хватка управления скоростью шпинделя.
Насчет энкодеров я думаю это лишняя нагрузка для хоббийного варианта, да и я так понимаю avr может не вытянуть пачку энкодеров.
Maxekb77
Мастер
 
Сообщения: 1492
Зарегистрирован: 05 окт 2013, 00:04
Откуда: Екатеринбург
Репутация: 266
Настоящее имя: Максим

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

Сообщение Сергей Саныч » 25 дек 2013, 09:15

Вопрос 1. Разгон/замедление предусмотрены?
Если да, то вопрос2. Какое-то подобие планировщика есть?
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Сергей Саныч
Мастер
 
Сообщения: 8545
Зарегистрирован: 30 май 2012, 14:20
Откуда: Тюмень
Репутация: 2678
Медальки:

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

Сообщение selenur » 25 дек 2013, 09:21

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
Аватара пользователя
selenur
Почётный участник
Почётный участник
 
Сообщения: 4102
Зарегистрирован: 21 авг 2013, 19:44
Откуда: Новый Уренгой
Репутация: 1452
Медальки:
Настоящее имя: Сергей

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

Сообщение selenur » 25 дек 2013, 09:24

Serg-tmn писал(а):Вопрос 1. Разгон/замедление предусмотрены?
Если да, то вопрос2. Какое-то подобие планировщика есть?

Сейчас пока сделал что в начале интервал 1000мксек, а потом с каждым степом увеличивается до необходимой, и в конце в обратную сторону.
Но это пока не придумал как сделать, может по анологии как в настройках матча.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Аватара пользователя
selenur
Почётный участник
Почётный участник
 
Сообщения: 4102
Зарегистрирован: 21 авг 2013, 19:44
Откуда: Новый Уренгой
Репутация: 1452
Медальки:
Настоящее имя: Сергей

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

Сообщение selenur » 25 дек 2013, 09:27

Maxekb77 писал(а):А вот отправщик g-code нормальный бы честно не помешал

Сделать парсер G-кода на авр не проблема, и отправщик тоже :-) но я пока только пробую разные подходы для упрощения задачи :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Аватара пользователя
selenur
Почётный участник
Почётный участник
 
Сообщения: 4102
Зарегистрирован: 21 авг 2013, 19:44
Откуда: Новый Уренгой
Репутация: 1452
Медальки:
Настоящее имя: Сергей

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

Сообщение Сергей Саныч » 25 дек 2013, 09:35

selenur писал(а):Сейчас пока сделал что в начале интервал 1000мксек, а потом с каждым степом увеличивается до необходимой, и в конце в обратную сторону.
Ясно. Значит, реально можно достичь производительности, скажем, TurboCNC. Для начала неплохо.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Сергей Саныч
Мастер
 
Сообщения: 8545
Зарегистрирован: 30 май 2012, 14:20
Откуда: Тюмень
Репутация: 2678
Медальки:

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

Сообщение Maxekb77 » 25 дек 2013, 11:31

selenur писал(а):
Maxekb77 писал(а):А вот отправщик g-code нормальный бы честно не помешал

Сделать парсер G-кода на авр не проблема, и отправщик тоже :-) но я пока только пробую разные подходы для упрощения задачи :-)

Так она и так простая )))
Отправщик g-code, управление с нумпада для выставления в 0, ну и управление шпинделем - вкл\выкл, скорость шпинделя.
Вот неплохой сендер http://reprap.org/wiki/CNCGcodeController но автор мягко говоря с пермещениями перемудрил
Maxekb77
Мастер
 
Сообщения: 1492
Зарегистрирован: 05 окт 2013, 00:04
Откуда: Екатеринбург
Репутация: 266
Настоящее имя: Максим

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

Сообщение selenur » 25 дек 2013, 11:39

Ну ручная рулилка у меня пока такая:

Управление у меня пока только с кнопок, но прикрутить нумпад вообще не проблема, и даже хорошая идея :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Аватара пользователя
selenur
Почётный участник
Почётный участник
 
Сообщения: 4102
Зарегистрирован: 21 авг 2013, 19:44
Откуда: Новый Уренгой
Репутация: 1452
Медальки:
Настоящее имя: Сергей

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

Сообщение Maxekb77 » 25 дек 2013, 11:40

Скинь помучать )
Кнопку стопа лучше на левую панель вывести
Maxekb77
Мастер
 
Сообщения: 1492
Зарегистрирован: 05 окт 2013, 00:04
Откуда: Екатеринбург
Репутация: 266
Настоящее имя: Максим

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

Сообщение selenur » 25 дек 2013, 11:44

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

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

Сообщение selenur » 25 дек 2013, 11:47

Для работы необходимо: ОС любая виндовс, с framework 4.
Программа очень сырая!!!!!
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Аватара пользователя
selenur
Почётный участник
Почётный участник
 
Сообщения: 4102
Зарегистрирован: 21 авг 2013, 19:44
Откуда: Новый Уренгой
Репутация: 1452
Медальки:
Настоящее имя: Сергей

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

Сообщение Maxekb77 » 25 дек 2013, 12:02

selenur писал(а):Для работы необходимо: ОС любая виндовс, с framework 4.
Программа очень сырая!!!!!

Да никто никуда не торопится )
запустилась нормально, сейчас уехать надо вечером набросаю что я вижу если не против.
Maxekb77
Мастер
 
Сообщения: 1492
Зарегистрирован: 05 окт 2013, 00:04
Откуда: Екатеринбург
Репутация: 266
Настоящее имя: Максим

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

Сообщение selenur » 25 дек 2013, 12:18

Буду очень рад :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Аватара пользователя
selenur
Почётный участник
Почётный участник
 
Сообщения: 4102
Зарегистрирован: 21 авг 2013, 19:44
Откуда: Новый Уренгой
Репутация: 1452
Медальки:
Настоящее имя: Сергей

След.

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

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

Зарегистрированные пользователи: Bing [Bot], Google [Bot], kts, Majestic-12 [Bot], MSN [Bot], NightV, vestkot, Yandex [bot]

Reputation System ©'