ЧПУ пульты

Контроллеры, драйверы, датчики, управляющие устройства.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: ЧПУ пульты

Сообщение aftaev »

Стандартные настройки СОМ порта:
СОМ.JPG (3737 просмотров) <a class='original' href='./download/file.php?id=3921&mode=view' target=_blank>Загрузить оригинал (31.04 КБ)</a>
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЧПУ пульты

Сообщение Nick »

Тогда там должно быть что-то вроде:

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

port = serial.Serial( port=!!!Вот сюда название порта!!!, baudrate=9600)
!!!Вот сюда название порта!!! = надо посмотреть как этот ком в системе называется, сделай вывод
dmesg | grep tty
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: ЧПУ пульты

Сообщение aftaev »

Impartial писал(а)://А там, что выходы дифференциальные? Если да, то надо ставить приемник.
//Код инициализации таймера 8. Расположить в самом конце функции инициализации переферии!
//инициализация тайтера 8 по входам РС6,7 . Туда подключаются выходы А,В энкодера.
GPIOC->CRL &= ~(GPIO_CRL_CNF6 | GPIO_CRL_CNF7); //PINS FOR A,B ENCODER
GPIOC->CRL &= ~(GPIO_CRL_MODE6 | GPIO_CRL_MODE6); //INPUT, 5V TOLERANT
GPIOC->CRL |= GPIO_CRL_CNF6_0 | GPIO_CRL_CNF7_0;
RCC->APB2ENR |= RCC_APB2ENR_TIM8EN; //TIMER8 ON
TIM8->SMCR |= TIM_SMCR_SMS_0; //ENABLE ENCODER MODE 1
TIM8->CR1 |= TIM_CR1_CEN; //ENABLE TIMER8
int32_t i;
//Ну, и наконец сам код :)
i+=TIM8->CNT;
//переменная "i" будет содержать состояние счетчика энкодера
Зашил код, вывел на экран:
DSCN0396.jpg (3717 просмотров) <a class='original' href='./download/file.php?id=3943&mode=view' target=_blank>Загрузить оригинал (151.65 КБ)</a>
Подключил к РГИ ток АВ и все работает. Одно деление РГИ = 2 импульса. Крутил быстро ровно 5 оборотов 500
импульсов на индикаторе = 1000, кручу так же быстро в обратку точно в НОЛЬ :beer_blow:

Если 0000 и крутить в минус отсчет идет с 65535 (как на фото). Должно показывать -0,002.

Хотел прикрутить джойстик к АЦП, можно было управлять скоростью передвижением координат. Управлять координатами джойстиком.
Джойстик.jpg (3717 просмотров) <a class='original' href='./download/file.php?id=3944&mode=view' target=_blank>Загрузить оригинал (23.11 КБ)</a>
Джойстик2.jpg (3717 просмотров) <a class='original' href='./download/file.php?id=3945&mode=view' target=_blank>Загрузить оригинал (37.75 КБ)</a>
Код с АЦП вешает проц :wtf:
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЧПУ пульты

Сообщение Nick »

Надо тип счетчика переменить с word на int.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: ЧПУ пульты

Сообщение Lexxa »

Aftaev, молодцом!
:bender:
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: ЧПУ пульты

Сообщение Dmaster »

:shock: .......... :wtf: ............ :freak: .......... :cheesy: .............. :cry:

я тоже так хочу!!!!!... уметь(
" Linux CNC - наше всё"
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: ЧПУ пульты

Сообщение aftaev »

Lexxa писал(а):Aftaev, молодцом!
Молодец Impartial, без его примеров дело бы долго двигалось.
Dmaster писал(а):я тоже так хочу!!!!!... уметь(
Я тоже :)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: ЧПУ пульты

Сообщение Impartial »

aftaev писал(а): Если 0000 и крутить в минус отсчет идет с 65535 (как на фото). Должно показывать -0,002.
Перепиши вот так.
i+=(int16_t)TIM8->CNT;
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: ЧПУ пульты

Сообщение aftaev »

Попробую.
Код есть как работать с USART прием/передача? Буду пробавать в EMC что нибудь передать :)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: ЧПУ пульты

Сообщение Impartial »

Можно и на USART, подумай только, может лучше USB?
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: ЧПУ пульты

Сообщение aftaev »

Impartial писал(а):Можно и на USART, подумай только, может лучше USB?
Давай на USART, потом если что на USB переведем. У меня щас есть чем проверить USART :D
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
vmarkiv
Мастер
Сообщения: 516
Зарегистрирован: 21 янв 2012, 00:23
Репутация: 32
Откуда: Ивано-Франковск
Контактная информация:

Re: ЧПУ пульты

Сообщение vmarkiv »

Я собрал пульт по подобию http://www.franksworkshop.com.au/CNC/Ge ... ard1.0.htm версия 1.0 на 1286 , все работает .Фото с мобильника выставляю . Также по даному проэкту сумел повторить плату расширения ввода\вывода приблиз. 20 на 20 . Все легко программируется . По версии 1.1 http://www.franksworkshop.com.au/CNC/La ... endant.htm списывался с автором , он готовит новую USB версию .
Из письма :
This is the configuration I use for my pendant. You only need to know the
display is connected to the SPI interface.
Also remember this will only work with the display on my web site -
http://www.franksworkshop.com.au/Electr ... LCD.htm#v2.
I'm working on a new version that will connect directly to USB - it is about
1000 times faster. Hopefully it will be finished within a month.
Схему и описание брал отсюда :
https://www.pjrc.com/teensy/pinout.html
Вложения
Photo-0273.jpg (3729 просмотров) <a class='original' href='./download/file.php?id=3975&mode=view' target=_blank>Загрузить оригинал (193.36 КБ)</a>
Photo-0271.jpg (3729 просмотров) <a class='original' href='./download/file.php?id=3976&mode=view' target=_blank>Загрузить оригинал (178.32 КБ)</a>
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: ЧПУ пульты

Сообщение aftaev »

vmarkiv, скольо эт чудо стои?

Благодоря кодам Impartial, моя платка читает данные с АЦП :)
Но засада, зарузить картинки как фон/кнопки пульта иль какие нибудь картинки в п лату пока не выходит, хитро там все сделано :wtf:
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: ЧПУ пульты

Сообщение aftaev »

Impartial писал(а):
aftaev писал(а): Если 0000 и крутить в минус отсчет идет с 65535 (как на фото). Должно показывать -0,002.
Перепиши вот так.
i+=(int16_t)TIM8->CNT;
Написал так
for (f=0; f< 100; f++) { // начало цикла

//Код для РГИ
i+=(int16_t)TIM8->CNT; //вывод отрицательных чисел
// преобразуем число в строку
sprintf(str,"%05d",i); // преобразуем число в строку
//выводим
GUI_DispStringHCenterAt(str , 100, 160-40);
}

Стоит тронуть штурвал цифры с каждым циклом увечивается +1
:wtf:
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: ЧПУ пульты

Сообщение Impartial »

В цикле так нельзя.
i=(int16_t)TIM8->CNT; //вывод отрицательных чисел
Вот так перепиши.
Обработку энкодера надо делать по прерываниям.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: ЧПУ пульты

Сообщение aftaev »

Impartial писал(а):Обработку энкодера надо делать по прерываниям.
Зачем? Если он в таймерах считается. Когданжнотаймерсчитли - вывели.

Impartial, напиши пример для ввода/вывода чеез USART я найти не могу.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: ЧПУ пульты

Сообщение Impartial »

вышли исходник этой функции
USART_Configuration();
Там скорее всего уже все работает.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: ЧПУ пульты

Сообщение Impartial »

Зачем? Если он в таймерах считается. Когданжнотаймерсчитли - вывели.
В любой компьютерной системе ввод/вывод должен производиться либо по прерываниям, либо по ПДП!!! Это не обсуждаемая аксиома. Любой отход от нее заканчивается переделками ПО. Проверено на собственной шкуре :)
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: ЧПУ пульты

Сообщение aftaev »

Impartial писал(а):вышли исходник этой функции
USART_Configuration();
Там скорее всего уже все работает.
/*******************************************************************************
* Function Name : USART_Configuration
* Description : Configures the USART1.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void USART_Configuration(void)
{
USART_InitTypeDef USART_InitStructure;

/* USART1 configuration ------------------------------------------------------*/
/* USART1 configured as follow:
- BaudRate = 115200 baud
- Word Length = 8 Bits
- One Stop Bit
- No parity
- Hardware flow control disabled (RTS and CTS signals)
- Receive and transmit enabled
*/
USART_InitStructure.USART_BaudRate = 115200;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;

USART_Init(USART1, &USART_InitStructure);

/* Enable USART1 */
USART_Cmd(USART1, ENABLE);
}
Impartial писал(а):либо по ПДП!!!
Что за зверь ПДП?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: ЧПУ пульты

Сообщение Impartial »

Теперь все просто :)
//скорость 115200
//Передача символа

void put_char_UART (char c)
{
while(~USART1->SR & USART_SR_TXE);
USART1->DR=c;
}

//Прием символа

char get_char_UART (void)
{
while(~USART1->SR & USART_SR_RXNE);
return(USART1->DR);
}
//это было объявление
//расположишь где нибудь вверху

//Этот код запишет "aftaev" в com, потом прочитает 1 символ
char *sym={"aftaev"};
while(*sym)
put_char_UART(*sym++);

sym=get_char_UART();

//вот где нужны прерывания
//прога будет зависать ожидая символа с приемника
Ответить

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