ЧПУ пульты
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: ЧПУ пульты
Стандартные настройки СОМ порта:
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: ЧПУ пульты
Тогда там должно быть что-то вроде:
!!!Вот сюда название порта!!! = надо посмотреть как этот ком в системе называется, сделай вывод
dmesg | grep tty
Код: Выделить всё
port = serial.Serial( port=!!!Вот сюда название порта!!!, baudrate=9600)
dmesg | grep tty
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: ЧПУ пульты
Зашил код, вывел на экран: Подключил к РГИ ток АВ и все работает. Одно деление РГИ = 2 импульса. Крутил быстро ровно 5 оборотов 500Impartial писал(а)://А там, что выходы дифференциальные? Если да, то надо ставить приемник.
//Код инициализации таймера 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" будет содержать состояние счетчика энкодера
импульсов на индикаторе = 1000, кручу так же быстро в обратку точно в НОЛЬ
Если 0000 и крутить в минус отсчет идет с 65535 (как на фото). Должно показывать -0,002.
Хотел прикрутить джойстик к АЦП, можно было управлять скоростью передвижением координат. Управлять координатами джойстиком. Код с АЦП вешает проц
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: ЧПУ пульты
Надо тип счетчика переменить с word на int.
- Dmaster
- Мастер
- Сообщения: 1271
- Зарегистрирован: 15 июл 2011, 13:36
- Репутация: 476
- Контактная информация:
Re: ЧПУ пульты
я тоже так хочу!!!!!... уметь(
" Linux CNC - наше всё"
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: ЧПУ пульты
Молодец Impartial, без его примеров дело бы долго двигалось.Lexxa писал(а):Aftaev, молодцом!
Я тожеDmaster писал(а):я тоже так хочу!!!!!... уметь(
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
-
Impartial
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: ЧПУ пульты
Перепиши вот так.aftaev писал(а): Если 0000 и крутить в минус отсчет идет с 65535 (как на фото). Должно показывать -0,002.
i+=(int16_t)TIM8->CNT;
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: ЧПУ пульты
Попробую.
Код есть как работать с USART прием/передача? Буду пробавать в EMC что нибудь передать
Код есть как работать с USART прием/передача? Буду пробавать в EMC что нибудь передать
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
-
Impartial
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: ЧПУ пульты
Можно и на USART, подумай только, может лучше USB?
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: ЧПУ пульты
Давай на USART, потом если что на USB переведем. У меня щас есть чем проверить USARTImpartial писал(а):Можно и на USART, подумай только, может лучше USB?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
-
vmarkiv
- Мастер
- Сообщения: 516
- Зарегистрирован: 21 янв 2012, 00:23
- Репутация: 32
- Откуда: Ивано-Франковск
- Контактная информация:
Re: ЧПУ пульты
Я собрал пульт по подобию 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
Из письма :
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
-
aftaev
- Зачётный участник

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

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: ЧПУ пульты
Написал так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
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
-
Impartial
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: ЧПУ пульты
В цикле так нельзя.
i=(int16_t)TIM8->CNT; //вывод отрицательных чисел
Вот так перепиши.
Обработку энкодера надо делать по прерываниям.
i=(int16_t)TIM8->CNT; //вывод отрицательных чисел
Вот так перепиши.
Обработку энкодера надо делать по прерываниям.
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: ЧПУ пульты
Зачем? Если он в таймерах считается. Когданжнотаймерсчитли - вывели.Impartial писал(а):Обработку энкодера надо делать по прерываниям.
Impartial, напиши пример для ввода/вывода чеез USART я найти не могу.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
-
Impartial
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: ЧПУ пульты
вышли исходник этой функции
USART_Configuration();
Там скорее всего уже все работает.
USART_Configuration();
Там скорее всего уже все работает.
-
Impartial
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: ЧПУ пульты
В любой компьютерной системе ввод/вывод должен производиться либо по прерываниям, либо по ПДП!!! Это не обсуждаемая аксиома. Любой отход от нее заканчивается переделками ПО. Проверено на собственной шкуреЗачем? Если он в таймерах считается. Когданжнотаймерсчитли - вывели.
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: ЧПУ пульты
/*******************************************************************************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: ЧПУ пульты
Теперь все просто
//скорость 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();
//вот где нужны прерывания
//прога будет зависать ожидая символа с приемника
//скорость 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();
//вот где нужны прерывания
//прога будет зависать ожидая символа с приемника
