пятница, 30 мая 2014 г.

Самодельный станок ЧПУ фрезеровка плат

микрошаг открытые проекты:

http://mardus-kreutz.blogspot.com/2008/11/mardus-kreutz-unipolar-micro-stepper_24.html

http://www.pminmo.com/kreutz/Mardus-Kreutz%20Schematics%20Rev%202.1E.pdf

линистеппер http://www.piclist.com/techref/io/stepper/linistep/liniv2_bld.htm

http://robozone.su/cnc-home/50-mikroshagovyjj-kontroller-shagovogo-dvigatelja-na.html

полезные ссылки:

http://www.deep-shadows.com/hax/wordpress/?page_id=1057

http://vri-cnc.narod.ru/

Управление двигателями шаговыми:

http://eldigi.ru/articles/shagovye_dvigateli_stepper_motors RUS

http://www.npoatom.ru/articles/4.html#6 униполярный и биполярный как включать обмотки.(Биполярный – > в Униполярный) RUS

http://www.npoatom.ru/articles/4.html#6 RUS

http://ww1.microchip.com/downloads/en/AppNotes/1307A.pdf !!!!!!!!!!!!!!!!!!!!

http://www.microchip.com/stellent/groups/SiteComm_sg/documents/DeviceDoc/en548365.pdf!!!!!!!!!!!!!!!!!!!!!

http://www.atmel.com/images/doc8017.pdf АТМЭЛ

http://www.dr-iguana.com/prj_StepperDriver/index.html

http://ww1.microchip.com/downloads/en/AppNotes/00822a.pdf

http://ww1.microchip.com/downloads/en/AppNotes/00906B.pdf

http://www.st.com/st-web-ui/static/active/en/resource/technical/document/application_note/CD00004353.pdf

http://e2e.ti.com/blogs_/b/motordrivecontrol/archive/2013/09/17/the-fast-track-to-understand-amp-spin-a-stepper-motor.aspx

http://e2e.ti.com/blogs_/b/motordrivecontrol/archive/2012/04/04/so-which-pwm-technique-is-best-part-4.aspx

http://e2e.ti.com/group/launchyourdesign/m/msp430microcontrollerprojects/665483.aspx

http://cnc-club.ru/forum/viewtopic.php?f=41&t=2558&start=300

http://www.pandia.ru/text/78/177/14982.php

http://vri-cnc.ru/forum/viewtopic.php?f=13&t=353&start=45

воскресенье, 18 мая 2014 г.

Адаптер USB to USART & SPI & I2C

Все началось с того, что мне надо было подключиться к одному устройству по USART. Я сразу взял адаптер USB to UASRT (ибо в ноутбуке COM порт не предусмотрен) на AtTiny2313 (рекламой заниматься не буду, схема легко находится в интернете), подключил, запустил и внезапно понял, что у адаптера фиксированная скорость 9600, а у девайса, к которому требовалось подключиться, скорость 57600. Дело, естественно, было поздним вечером, и купить что-нибудь вроде FT232 возможности не было. Поэтому после непродолжительного раздумья, было решено изменить скорость UASRT в адаптере обычной перепрошивкой. В итоге соединение было успешно налажено. Но согласитесь - это ведь не выход, программатора может под рукой не оказаться, да и неудобно каждый раз с прошивкой шаманить. В следствие этого я серьезно задумался о создании нормального адаптера, с регулируемой скоростью (и не только).

пятница, 16 мая 2014 г.

Генерирование таблицы синуса в матлабе

Процесс по шагам на примере MatLab Version 6.5.0.180913a Release 13.

1. File -> New -> M-file. Окроется новое окно редактора кода программы MatLab.

2. Скопипастите в окно редактора код:

function GenerateSinusTable (size)
% Генерирует таблицу синуса в файле sinus.c
% Пример вызова:
% GenerateSinusTable(256)
stream_c = fopen('sinus.c' ,'wt');
fprintf (stream_c , '__flash char SINUS_ML [%i] = \n{\n', size);
for k=0:size-1
if (0==bitand(k, 7))
fprintf(stream_c , ' ');
end;
sinus = round(127 + 124*sin(2*pi*k/size));
fprintf(stream_c , '%i', sinus);
if (not((k+1)==size))
fprintf(stream_c , ',');
end;
if (7==bitand(k, 7))
fprintf(stream_c , '\n');
end;
end

fprintf (stream_c, '};\n');
fclose(stream_c);
% Построение графика полученной таблицы:
x=0:1:size; y=round(127 + 124*sin(2*pi*x/size)); plot (x,y)

3. Сохраните наш файл кода под именем GenerateSinusTable.m (важно, чтобы имя файла совпадало с именем функции), запускаем на выполнение в консоли MatLab:
>> GenerateSinusTable(128) [нажмите Enter]

После запуска появится окошко с графикой периода синусоиды, и в текущей папке появится сгенерированный файл sinus.c.

Микрошаговый режим для шаговика

Ссылки по теме:

http://robozone.su/cnc-home/page,1,3,48-mikroshagovyjj-kontroller-shagovogo-dvigatelja-na.html – реализован микрошаговый режим с осциллограммами и видео.

http://radiokot.ru/circuit/digital/security/26/

Сегодня пробовал запустить микрошаговый режим для униполярного двигателя,  имеющего 4 обмотки соединенных в общую точку. На каждую обмотку пробовал подавать синус.

Результат таков что не получил микрошага, а какой то не понятный режим + на некоторых напряжениях двигатель начинает шуметь, а на некоторых такое ощущение что микрошаг у двигателя но только при одной скорости.

Осциллограммы с затворов ключей.(сигналы сдвинуты на 90град.)

scope_68

scope_69

Делал на stm32f103rbt6 + силовая платка с транзисторами IRF1607.

Хорошая анимация показывающая полушаговую работу униполярного двигателя.(На этом сайте имеется много подобного рода анимаций)

image

среда, 14 мая 2014 г.

Микрошаговый режим для шагового двигателя

Для получения микрошагового режима для  необходимо подавать на обмотки двигателя синусоидальный ШИМ, вместо дискретного сигнала, как это делается для шагового или полушагового режима.

Апноуты Atmel, TI, NXP и т.д

Application Notes (аппноуты) можно скачать с сайта atmel.com на английском языке в формате pdf. Много переведенных на русский язык аппноутов есть на сайте http://www.gaw.ru/ . Ссылки на них такие:
http://www.gaw.ru/html.cgi/txt/app/micros/avr/AVRnnn.htm
где заместо AVRnnn нужно подставить номер аппноута. Например, для аппноута "AVR444: Sensorless control of 3-phase brushless DC motors" ссылка на исходник должна быть такой:
http://www.gaw.ru/html.cgi/txt/app/micros/avr/AVR444.htm
Скачать исходники к Application Notes можно по ссылкам:
http://www.atmel.com/dyn/resources/prod_documents/AVRnnn.zip
где заместо AVRnnn нужно подставить номер аппноута. Например, для аппноута AVR444 ссылка на исходник должна быть такой:
http://www.atmel.com/dyn/resources/prod_documents/AVR444.zip

Последнее обновление ( 31.08.2008 )

Взято с microsin.net

пятница, 9 мая 2014 г.

3ф синусоидальный ШИМ. (Организации временных задержек для шагания по таблице синуса )

Идея простая шагать по таблице и из неё вынимать значения для синусоидальной шим.
Можно также очень просто реализовывать задержки инкрементирования переменной i, не делеями, а по другому.

while(1)
{
i++;
delayus(20)
}

для того чтобы задрежать
можно сдеать так:

uint32 a = 0;
uint32 i = 0;
uint32 delay_inc = 1;
while(1)
{
if (i%delay_inc == 0) a++;
i++;
}
Если i++ тикает в прерывании с частотой 100 раз в секунду, то при помощи delay_inc мы можем выставлять делитель для переменной a, если delay_inc=1 то переменная а тикает с такой же частотой как и i.
Если delay_inc=20, то переменная а тикает с частотой 100/20=5 раз в секунду и т.д 

О блоге.

Краткие темы которые будут пополняться по мере надобности чтобы не забыть.