avatar_Overrider

Самопальный контроллер BLDC на Arduino/Freeduino

Автор Overrider, 23 Окт. 2009 в 13:22

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Overrider

Недавно обнаружив существование такого девайса как arduino , завёлся желанием с ним поэкспериментировать.
Заказал себе парочку, благо девайсина стоит до 1000р, и имеет несложный язык программирования.
Почитал доки и примеры и понял что на нём вполне возможно реализовать управление трёхфазным движком с постоянными магнитами. Все необходимые для этого входы-выходы есть. Под вопросом пока остаётся достаточность быстродействия данного девайса, однако, если использовать его только как электронный коллектор а ШИМить только ток, то быстродействия гарантированно хватит.
Теперь собственно что я хочу получить на выходе:
-минимум это покрутить BLDC от старого винчестера, дабы понять что там и как работает, какие есть тонкости и освоить токовое управление.
-максимум разработка стандартного shield для arduino с драйверами мощных полевиков, и собственно самими полевиками. Ну и софт для ардуины.
Если подключить к контроллеру дисплей то можно будет получать любую информацию  до которой только может "дотянуться" контроллер. Как то: скорость, пробег, потребляемый ток, мощность и т.д.
Собственно вопрос к форумчанам, есть желающие поучаствовать в проекте? ну или помочь ценными советами/указаниями? :)

Alex_Soroka

Цитата: Overrider от 23 Окт. 2009 в 13:22
Недавно обнаружив существование такого девайса как arduino , завёлся желанием с ним поэкспериментировать.
Заказал себе парочку, благо девайсина стоит до 1000р, и имеет несложный язык программирования.

подобных девайсов полно :) и немецкой и американской разработки...
я даже как-то бросал ссылку на "контроллер с Бейсиком" внутри...

ЦитироватьТеперь собственно что я хочу получить на выходе:
-минимум это покрутить BLDC от старого винчестера, дабы понять что там и как работает, какие есть тонкости и освоить токовое управление.
-максимум разработка стандартного shield для arduino с драйверами мощных полевиков, и собственно самими полевиками. Ну и софт для ардуины.
Если подключить к контроллеру дисплей то можно будет получать любую информацию  до которой только может "дотянуться" контроллер. Как то: скорость, пробег, потребляемый ток, мощность и т.д.
Собственно вопрос к форумчанам, есть желающие поучаствовать в проекте? ну или помочь ценными советами/указаниями? :)

Вообще-то может проще и дешевле взять полуготовые разработки на AVR управления мотором ? дешевле выйдет, чем нагибать "универсальный" к спец.применению...
Но все в спрос упирается...

На сегодня понятно что очень востребованы нашими соклубниками :) таковы устройства:
1) "прибор контроля АКБ и всего-всего" - т.е. мощность, токи, напруги, пробег, прогнозы и т.п.
2) "грамотная зарядка АКБ" :) ну и "быстрая зарядка" для литиеводов - им можно хоть киловатт всасывать из сети - литий примет...
3) "простой преобразователь вверх" - т.е. с 3.7В или 12В ОДНОЙ аккум. банки поднимать напругу до 480-60В для питания скутера-велика. Тем самым перейдя на новый уровень - т.е. применение единичных стартерных АКБ свинцовых вместо хилых и дорогих сборок "типа тяговых" акков. Это прямая экономия денег на АКБ...

...всякие мелкие поделки особой погоды не делают - каждый для себя что-то разрабатывает и паяет - это не "всем нужные устройства"...

Вот то что у нас моторов для эл.мобилей нет на 3-10кВт - это да... но покажите пальцем кто РЕАЛЬНО собрался делать эл.мобиль? :( все только языком...

Overrider

Цитата: Alex_Soroka от 23 Окт. 2009 в 14:36
Цитата: Overrider от 23 Окт. 2009 в 13:22
Недавно обнаружив существование такого девайса как arduino , завёлся желанием с ним поэкспериментировать.
Заказал себе парочку, благо девайсина стоит до 1000р, и имеет несложный язык программирования.

подобных девайсов полно :) и немецкой и американской разработки...
я даже как-то бросал ссылку на "контроллер с Бейсиком" внутри...
[/quote]
В ардуине подкупает огромное количество уже реализованных проектов и большой объём как базы знаний, так и сообществ (хоть и англоязычных)

Цитировать
ЦитироватьТеперь собственно что я хочу получить на выходе:
-минимум это покрутить BLDC от старого винчестера, дабы понять что там и как работает, какие есть тонкости и освоить токовое управление.
-максимум разработка стандартного shield для arduino с драйверами мощных полевиков, и собственно самими полевиками. Ну и софт для ардуины.
Если подключить к контроллеру дисплей то можно будет получать любую информацию  до которой только может "дотянуться" контроллер. Как то: скорость, пробег, потребляемый ток, мощность и т.д.
Собственно вопрос к форумчанам, есть желающие поучаствовать в проекте? ну или помочь ценными советами/указаниями? :)

Вообще-то может проще и дешевле взять полуготовые разработки на AVR управления мотором ? дешевле выйдет, чем нагибать "универсальный" к спец.применению...
Но все в спрос упирается...
Ну не только спрос. Для 90% проблема самостоятельно изготовить плату, для большинства из этих 90% запрограммировать "голый" AVR ещё большая проблема. Я же предлагаю готовый, стандартизированный девайс, использовать в нужных целях.

ЦитироватьНа сегодня понятно что очень востребованы нашими соклубниками :) таковы устройства:
1) "прибор контроля АКБ и всего-всего" - т.е. мощность, токи, напруги, пробег, прогнозы и т.п.
2) "грамотная зарядка АКБ" :) ну и "быстрая зарядка" для литиеводов - им можно хоть киловатт всасывать из сети - литий примет...
3) "простой преобразователь вверх" - т.е. с 3.7В или 12В ОДНОЙ аккум. банки поднимать напругу до 480-60В для питания скутера-велика. Тем самым перейдя на новый уровень - т.е. применение единичных стартерных АКБ свинцовых вместо хилых и дорогих сборок "типа тяговых" акков. Это прямая экономия денег на АКБ...

...всякие мелкие поделки особой погоды не делают - каждый для себя что-то разрабатывает и паяет - это не "всем нужные устройства"...

Вот то что у нас моторов для эл.мобилей нет на 3-10кВт - это да... но покажите пальцем кто РЕАЛЬНО собрался делать эл.мобиль? :( все только языком...
Прибор контроля на той же ардуине есть в проектах (в голове), дабы не мешать крутить колесо его лучше сделать отдельным устройством. Нечто похожее я делал для измерения ёмкости литиевых элементов.
Грамотная зарядка для СКА в принципе возможна, хоть на 6 каналов сразу (если применить мультиплексор), не уверен только что оно будет востребовано. Учитывая цену сопутствующего барахла (блок питания, силовые транзюки, в идеале ещё и дисплей) общая цена вплотную приблизится к вашей зарядке и возникает вопрос "а смысл"? Если только добавит ещё и функционал измерения ёмкости, тогда некоторый смысл появится.
Быстрая зарядка для лития так и вовсе упирается исключительно в силовую часть, ум тут не нужен  :D
Простой степ-ап есть ли смысл на ардуине корячить? есть же специализированные sepic-микрухи

Именно что каждый сам для себя разрабатывает. Я же предлагаю стандартную и достаточно широко распространённую платформу.

imatveev13

>Для 90% проблема самостоятельно изготовить плату, для большинства из >этих 90% запрограммировать "голый" AVR ещё большая проблема. Я же >предлагаю готовый, стандартизированный девайс, использовать в нужных >целях.

AVR лучше. Берем за 400руб. отладочную плату AvrButterfly. На ней проц, немножко памяти(16к кажется), 5 кнопок, LCD, куча выходов. Программатор - преобразователь уровней ком порта. Припаять 3 провода. Программируется на старом добром C, а не на загадочном языке.
И вся куча AVR'овских примеров к Вашим услугам.

Overrider

Цитата: imatveev13 от 23 Окт. 2009 в 20:44
>Для 90% проблема самостоятельно изготовить плату, для большинства из >этих 90% запрограммировать "голый" AVR ещё большая проблема. Я же >предлагаю готовый, стандартизированный девайс, использовать в нужных >целях.

AVR лучше. Берем за 400руб. отладочную плату AvrButterfly. На ней проц, немножко памяти(16к кажется), 5 кнопок, LCD, куча выходов. Программатор - преобразователь уровней ком порта. Припаять 3 провода. Программируется на старом добром C, а не на загадочном языке.
И вся куча AVR'овских примеров к Вашим услугам.

ага а как крутить трёхфазное двигло посредством двух I/O портов:bk:

NEWVALERY

Позволю себе пару фраз.
Лучшего языка для любого процессора кроме как его родного ассемблера не существует, так как при компиляции программы написанной на другом языке, она, программа транслируется в ассемблер. При этом программа занимает больше места в процессоре, скорость ее выполнения ниже.
Подобные платы и наборы выпускают и разрабатывают с вполне понятными целями.
Используются клубами по интересам. Для создания настоящих устройств не годятся.
Программировать любой процессор надо на ассемблере и в крайнем случае на С.

imatveev13

>>AVR лучше. Берем за 400руб. отладочную плату AvrButterfly.

>ага а как крутить трёхфазное двигло посредством двух I/O портов?

По вашей ссылке написано:
Solder pads for user-supplied connectors: 2 8-bit I/O ports, ISP, USI, JTAG

И каждым битом=ножкой этих двух портов Вы можете подрыгать отдельно. Можете рулить 16ю фазами :). Эти порты просто кучки GPIO, I/O портами их делает софт.

Overrider

Цитата: NEWVALERY от 23 Окт. 2009 в 23:02
Позволю себе пару фраз.
Лучшего языка для любого процессора кроме как его родного ассемблера не существует, так как при компиляции программы написанной на другом языке, она, программа транслируется в ассемблер. При этом программа занимает больше места в процессоре, скорость ее выполнения ниже.
Подобные платы и наборы выпускают и разрабатывают с вполне понятными целями.
Используются клубами по интересам. Для создания настоящих устройств не годятся.
Программировать любой процессор надо на ассемблере и в крайнем случае на С.
Именно так. Но трудоёмкость разработки софта на ассемблере в разы выше разработки на языке высокого уровня. А с современным количесвом памяти и быстродействием процов, на оптимизацию программы в большинстве случаев можно забить.
Я могу только уважать разработчиков на ассемблере, но сам этим заниматься не буду, у меня столько времени нет.

Overrider

Цитата: imatveev13 от 24 Окт. 2009 в 04:25
>>AVR лучше. Берем за 400руб. отладочную плату AvrButterfly.

>ага а как крутить трёхфазное двигло посредством двух I/O портов?

По вашей ссылке написано:
Solder pads for user-supplied connectors: 2 8-bit I/O ports, ISP, USI, JTAG

И каждым битом=ножкой этих двух портов Вы можете подрыгать отдельно. Можете рулить 16ю фазами :). Эти порты просто кучки GPIO, I/O портами их делает софт.
Будем иметь ввиду, но начну всёже с ардуины :)
Кстати никто не мешает програмить ардуину на С, там в компиляторе gcc присутствует :)

i

Цитата: Overrider от 24 Окт. 2009 в 15:45
...Но трудоёмкость разработки софта на ассемблере в разы выше разработки на языке высокого уровня...
Распространённое заблуждение. При программировании на С много сил тратится на то, что бы объяснить компилятору "чего делать НЕ надо" и "как именно сделать нужное". Приходится использовать разные модификаторы, воевать с препроцессором... Качество полученного кода целиком зависит от конкретного компилятора и степени знания его особенностей программером.
Ассемблеры то же разные бывают, некоторые даже не требуют от программиста знания всех  мнемоник. Мне например, всегда трудно было запомнить мнемоники перехода по битовым условиям (их там чуть ли не дюжина)...
Ассемблер Firmware Studio лояльно относится к любым символам. В именах подпрограмм, регистров и пр. могут
встречаться любые знаки, вплоть до препинания и стрелок. Команды можно записывать как в столбик, так и в
строчку, а метки можно вообще не изобретать. Все это вкупе дало возможность писать программы на ассемблере,
почти как на Си, «с чувством, с толком, с расстановкой».
Вот так:
      code Деление ( делимое делитель -- остаток целое делитель) c( деление 8/8)
            \             r1       r0           r2     r1     r0
            \ вход:                   r1 - делимое; r0 - делитель
            \ выход: r2 - остаток; r1 - целое;        r0 - делитель
            \ измена: Раб
            sub r2,r2 \ очистить остаток и перенос
            ldi Раб,9
            begin
                  rol r1
                  dec Раб    if_z ret then
                  rol r2
                  sub r2,r0 if_c add r2,r0 clc else sec then
            again
            c;
Этот ассемблер умеет "begin - again", "do while", "if  then" и многое другое... например многозадачность!