Страница 13 из 66

Re: ЧПУ пульты

Добавлено: 26 янв 2012, 19:02
aftaev
Стандартные настройки СОМ порта:
СОМ.JPG (3773 просмотра) <a class='original' href='./download/file.php?id=3921&mode=view' target=_blank>Загрузить оригинал (31.04 КБ)</a>

Re: ЧПУ пульты

Добавлено: 26 янв 2012, 19:24
Nick
Тогда там должно быть что-то вроде:

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

port = serial.Serial( port=!!!Вот сюда название порта!!!, baudrate=9600)
!!!Вот сюда название порта!!! = надо посмотреть как этот ком в системе называется, сделай вывод
dmesg | grep tty

Re: ЧПУ пульты

Добавлено: 27 янв 2012, 21:45
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 (3753 просмотра) <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 (3753 просмотра) <a class='original' href='./download/file.php?id=3944&mode=view' target=_blank>Загрузить оригинал (23.11 КБ)</a>
Джойстик2.jpg (3753 просмотра) <a class='original' href='./download/file.php?id=3945&mode=view' target=_blank>Загрузить оригинал (37.75 КБ)</a>
Код с АЦП вешает проц :wtf:

Re: ЧПУ пульты

Добавлено: 27 янв 2012, 22:59
Nick
Надо тип счетчика переменить с word на int.

Re: ЧПУ пульты

Добавлено: 27 янв 2012, 23:24
Lexxa
Aftaev, молодцом!

Re: ЧПУ пульты

Добавлено: 28 янв 2012, 10:01
Dmaster
:shock: .......... :wtf: ............ :freak: .......... :cheesy: .............. :cry:

я тоже так хочу!!!!!... уметь(

Re: ЧПУ пульты

Добавлено: 28 янв 2012, 10:40
aftaev
Lexxa писал(а):Aftaev, молодцом!
Молодец Impartial, без его примеров дело бы долго двигалось.
Dmaster писал(а):я тоже так хочу!!!!!... уметь(
Я тоже :)

Re: ЧПУ пульты

Добавлено: 28 янв 2012, 11:04
Impartial
aftaev писал(а): Если 0000 и крутить в минус отсчет идет с 65535 (как на фото). Должно показывать -0,002.
Перепиши вот так.
i+=(int16_t)TIM8->CNT;

Re: ЧПУ пульты

Добавлено: 28 янв 2012, 11:36
aftaev
Попробую.
Код есть как работать с USART прием/передача? Буду пробавать в EMC что нибудь передать :)

Re: ЧПУ пульты

Добавлено: 28 янв 2012, 12:55
Impartial
Можно и на USART, подумай только, может лучше USB?

Re: ЧПУ пульты

Добавлено: 28 янв 2012, 13:41
aftaev
Impartial писал(а):Можно и на USART, подумай только, может лучше USB?
Давай на USART, потом если что на USB переведем. У меня щас есть чем проверить USART :D

Re: ЧПУ пульты

Добавлено: 29 янв 2012, 16:37
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

Re: ЧПУ пульты

Добавлено: 04 фев 2012, 00:13
aftaev
vmarkiv, скольо эт чудо стои?

Благодоря кодам Impartial, моя платка читает данные с АЦП :)
Но засада, зарузить картинки как фон/кнопки пульта иль какие нибудь картинки в п лату пока не выходит, хитро там все сделано :wtf:

Re: ЧПУ пульты

Добавлено: 04 фев 2012, 23:46
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:

Re: ЧПУ пульты

Добавлено: 05 фев 2012, 00:47
Impartial
В цикле так нельзя.
i=(int16_t)TIM8->CNT; //вывод отрицательных чисел
Вот так перепиши.
Обработку энкодера надо делать по прерываниям.

Re: ЧПУ пульты

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

Impartial, напиши пример для ввода/вывода чеез USART я найти не могу.

Re: ЧПУ пульты

Добавлено: 05 фев 2012, 13:09
Impartial
вышли исходник этой функции
USART_Configuration();
Там скорее всего уже все работает.

Re: ЧПУ пульты

Добавлено: 05 фев 2012, 13:27
Impartial
Зачем? Если он в таймерах считается. Когданжнотаймерсчитли - вывели.
В любой компьютерной системе ввод/вывод должен производиться либо по прерываниям, либо по ПДП!!! Это не обсуждаемая аксиома. Любой отход от нее заканчивается переделками ПО. Проверено на собственной шкуре :)

Re: ЧПУ пульты

Добавлено: 05 фев 2012, 16:09
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 писал(а):либо по ПДП!!!
Что за зверь ПДП?

Re: ЧПУ пульты

Добавлено: 05 фев 2012, 18:51
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();

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