www.open-tager.ru
http://www.open-tager.ru/forum/

LTAscetik
http://www.open-tager.ru/forum/viewtopic.php?f=5&t=1565
Страница 410 из 532

Автор:  Pingvin [ 08 ноя 2014, 22:34 ]
Заголовок сообщения:  Re: LTAscetik

DanGion писал(а):
Доброго времени!

Подбираю электронику новую для клуба.

Пришли к выводу, что комерческие производители - не могут в мат.платы.

Выбираем между Аскетом и местной разработкой.

Хотелось бы узнать примерную стоимость Плата+БТ для повязки.


Печатка - около 40 р.
Атмега32 - около 100р.
HC-05 - около 150 р. на алиэкспресс

Будете сами паять - в 300 р. уложитесь.

Это 3-х Вольтовый вариант.
ТСОПы ставьте соответствующие.

Автор:  DanGion [ 08 ноя 2014, 22:35 ]
Заголовок сообщения:  Re: LTAscetik

Понял спасибо!

Автор:  Pingvin [ 08 ноя 2014, 23:03 ]
Заголовок сообщения:  Re: LTAscetik

DanGion писал(а):
Понял спасибо!


Пожалуйста, но там схемы повязки нет.

Схема та же, прошивка другая (модифицированная).
И на плате хватит проца, кварца, два кондера под кварц, полевик и два резистора - для пищалки.

https://github.com/PingvinOpenTag/LTAscetic

Автор:  Pingvin [ 08 ноя 2014, 23:31 ]
Заголовок сообщения:  Re: LTAscetik

2 DanGion

http://www.youtube.com/watch?v=OKqPU76S ... AxxgJPz0_A

Автор:  Sabbah [ 09 ноя 2014, 00:05 ]
Заголовок сообщения:  Re: LTAscetik

Pingvin писал(а):
Вот эта при смене цвета должна пропикать:
И ещё убавил толерантности на треть.

Потестить не могу. :? :(

Потестил я прошивку, как вернуть толерантность назад? Попасть сейчас практически нереально, хз почему, стреляю в упор 5см от датчика и не попадаю, зато рикошетом об стену попадаю.

Помучался и ничего не получилось у меня, чтобы можно было ожить после смерти при нажатии центральной кнопки, а не только от пульта. Сейчас покажу код, прошу сильно не пинать я в программировании ноль с + :) что я делаю не так?
Код:
            while(!((ir_message.control_byte ==Valid_value)&&(ir_message.ID==Command)&&(ir_message.param==0x05)&&(joystick_event!=key_central_pressing)))//пока не получим команду "старт"
            {//[while]
               rx_event = NOT_EVENT;
               while((rxCount==0)&&(rx_event != RX_MESSAGE_COMPLITE)&&(joystick_event==no_pressing))//пока нет никаких команд пульта
               {//[while]
/*                  WOUND_LED_INVERT;
                  USART_PutChar('1');
                  timer2 = 0;
                  while (timer2 < 1000);
                  WOUND_LED_INVERT;
                  timer2 = 0;
                  while (timer2 < 1000);
*/               }//[while]
               if (rx_event == RX_MESSAGE_COMPLITE) ir_message = get_ir_message_from_buffer();//пришла команда пульта, выдергиваем значения команды из буфера ИК приемника   
               else //[else]
               {                     
                  if (rxCount>0) finde_message_in_bt_buffer();                     
                                          else
                                         {                                            
                                          if (joystick_event==key_central_pressing)
                                          while(keypress_cntr < 5) //ставим если нажата центр кнопка
                                          // while(keypress_cntr < 20) //ставим если нажат курок
                                              {
                                 
                                            // switch (FIRE_KEY_IN&FIRE_KEY_PIN) //проверяем, нажат ли курок
                                             switch (CENTRAL_KEY_IN&CENTRAL_KEY_PIN) //проверяем, нажата ли центральная кнопка
                                               { 
                                            case 0:  keypress_cntr++ ; break; //ставим если нажата центр кнопка
                                          case CENTRAL_KEY_PIN: keypress_cntr = 0; break; //ставим если нажата центральная кнопка
                                    // case FIRE_KEY_PIN: keypress_cntr = 0; break; //ставим если нажат курок
                                            default: keypress_cntr = 0;   
                                 }
                              }
                              }
                              }
                              }
                           }
                           
         //"оживаем" - начинаем новую игру                     

Автор:  Pingvin [ 09 ноя 2014, 08:14 ]
Заголовок сообщения:  Re: LTAscetik

А частота ИК правильно выставлена?

В файле miles_protocol.h

#define ERROR_TOLERANCE_FOR_36KHZ 14
#define ERROR_TOLERANCE_FOR_56KHZ 22

были такие значения раньше.


Я что то похожее наблюдал, когда в повязку поставил в параллель ТСОПы на 56 кГц и на 36 кГц, но я грешил, что из-за этого.
Может чего накуролесил с переключением частоты?... :?

А может - точнее целиться приходится?
Само пятно то маленькое, если близко стрелять.
Попадания то с близи скорее ореол дает.


Код и правда не верно написан, поправлю.
Если не ошибаюсь, этого достаточно

while(!((ir_message.control_byte ==Valid_value)&&(ir_message.ID==Command)&&(ir_message.param==0x05)||(joystick_event==key_central_pressing)))//пока не получим команду "старт"

В скобках после восклицательного знака условия для выхода из цикла.
А выйти мы должны, если получим команду пульта

(ir_message.control_byte ==Valid_value)&&(ir_message.ID==Command)&&(ir_message.param==0x05)

ИЛИ будет нажата центральная кнопка джойстика

||(joystick_event==key_central_pressing)
Остальное уберите!
Внутри цикла состояние джойстика проверять не надо - никаких
Код:
 if (joystick_event==key_central_pressing)
                                          while(keypress_cntr < 5) //ставим если нажата центр кнопка
                                          // while(keypress_cntr < 20) //ставим если нажат курок
                                              {
                                 
                                            // switch (FIRE_KEY_IN&FIRE_KEY_PIN) //проверяем, нажат ли курок
                                             switch (CENTRAL_KEY_IN&CENTRAL_KEY_PIN) //проверяем, нажата ли центральная кнопка
                                               {
                                            case 0:  keypress_cntr++ ; break; //ставим если нажата центр кнопка
                                          case CENTRAL_KEY_PIN: keypress_cntr = 0; break; //ставим если нажата центральная кнопка
                                    // case FIRE_KEY_PIN: keypress_cntr = 0; break; //ставим если нажат курок
                                            default: keypress_cntr = 0;   
                                 }



Ибо если кнопка будет нажата, мы уже будем за пределами цикла.

С этой логикой легко запутаться! :?

Автор:  maksim [ 09 ноя 2014, 11:35 ]
Заголовок сообщения:  Re: LTAscetik

Дядьки спаял аскета 3,1))))Все работает как надо)))Спасибо loner32 за печатку))))
ИзображениеИзображениеИзображение

Автор:  Pingvin [ 09 ноя 2014, 14:07 ]
Заголовок сообщения:  Re: LTAscetik

maksim писал(а):
Дядьки спаял аскета 3,1))))Все работает как надо)))Спасибо loner32 за печатку))))
ИзображениеИзображениеИзображение

Молодец, пацан! ;) :) :lol:

Автор:  Pingvin [ 09 ноя 2014, 14:27 ]
Заголовок сообщения:  Re: LTAscetik

А чего ЖКИ на таг не ставите?
И резистор слабоват на ИК.
Случись чего - пыхнет махом!
1206, хотя бы.

Опытные люди утверждают, что номинал можно уменьшить до 1,5 Ом, чтобы дальше бил.

Автор:  Pingvin [ 09 ноя 2014, 17:16 ]
Заголовок сообщения:  Re: LTAscetik

Аппаратный SPI

http://mainloop.ru/avr-atmega/avr-spi.html

Время если будет, завтра поковыряю.

Страница 410 из 532 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/