www.open-tager.ru

открытый лазертаг форум
Текущее время: 23 ноя 2024, 17:26

Часовой пояс: UTC + 3 часа [ Летнее время ]


Реклама

Правила форума


В разделе запрещены - обсуждение оборудования не поддерживающего открытых протоколов, реклама и ссылки на готовые продукты лазертага, обсуждение политики производителей и самих производителей. Виден всем.



Начать новую тему Ответить на тему  [ Сообщений: 1089 ]  На страницу Пред.  1 ... 105, 106, 107, 108, 109  След.
Автор Сообщение
 Заголовок сообщения: Re: LTArmada
СообщениеДобавлено: 20 апр 2018, 07:29 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Протокол обмена по блютус между "мостом" и софтиной простой до безобразия.
Протокол текстовый.
r0AFF21D4......F0\r
i0AFF21D4......F0\r
r - значит данный получены/нужно отправить по радиоканалу
i - по ИК каналу
0AFF21D4......F0 - данные в шестнадцатеричном виде.

\r - это служебный символ возврата каретки - "Enter" на клавиатуре.

Пока полностью работает обмен только по радиоканалу.
За ИК просто ещё не брался, ничего там сложного нет.
Единственное - количество передаваемых бит может быть не кратно 8, то есть нужно будет указать - сколько бит передать нужно.

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTArmada
СообщениеДобавлено: 04 май 2018, 09:15 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
"Матрешка" теперь универсальная - и с "Аскетом" может работать, и с "АРМадой" без смены прошивки.
https://www.youtube.com/watch?time_cont ... RLN4_1Ghfw

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTArmada
СообщениеДобавлено: 19 май 2018, 07:47 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Немного "ужал" плату. Теперь АРМада помещается в рукоять Носорога.


Вложения:
ARMadaAndRHINO800x600.JPG
ARMadaAndRHINO800x600.JPG [ 130.7 KiB | Просмотров: 27280 ]

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTArmada
СообщениеДобавлено: 22 май 2018, 08:34 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Почти готово.


Вложения:
IMG_8087_800x600.JPG
IMG_8087_800x600.JPG [ 134.15 KiB | Просмотров: 27252 ]
IMG_8088_800x600.JPG
IMG_8088_800x600.JPG [ 167.27 KiB | Просмотров: 27252 ]
IMG_8089_800x600.JPG
IMG_8089_800x600.JPG [ 135.38 KiB | Просмотров: 27252 ]

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTArmada
СообщениеДобавлено: 22 май 2018, 12:53 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Rhino case and ARMada inside.

https://www.youtube.com/watch?v=-BoHT1J3Mvs

Чем не "народный" корпус?
При партии от 50 штук цена 800 р.
Скинулись кому надо и ...

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTArmada
СообщениеДобавлено: 07 авг 2018, 18:01 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Грызу плюсы понемногу - какая няшка! :)

Например, описываем класс - пин
Код:

#ifndef _PIN_H
#define _PIN_H
#include <stdint.h>

        constexpr static uint8_t PORTA = 0;
   constexpr static uint8_t PORTB = 1;
   constexpr static uint8_t PORTC = 2;
   constexpr static uint8_t PORTD = 3;
   constexpr static uint8_t notAPort = 0xFF;


        constexpr static uint8_t PIN0 = 0;
   constexpr static uint8_t PIN1 = 1;
   constexpr static uint8_t PIN2 = 2;
   constexpr static uint8_t PIN3 = 3;
        constexpr static uint8_t PIN4 = 4;
   constexpr static uint8_t PIN5 = 5;
   constexpr static uint8_t PIN6 = 6;
   constexpr static uint8_t PIN7 = 7;



   constexpr static uint8_t notAPin = 0xFF;




class Pin{

public:
Pin(uint8_t port, uint8_t pin);

void switchToOutput();
void set();
void reset();

private:
uint8_t m_port;
uint8_t m_pin;

protected:




};





Код:


Pin::Pin(uint8_t port, uint8_t pin){
m_port=port;
m_pin=pin;

// Enable GPIO Peripheral clock
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA << (port), ENABLE);


}



void Pin::switchToOutput(){
GPIO_InitTypeDef GPIO_InitStructure;

  // Configure pin in output push/pull mode
  GPIO_InitStructure.GPIO_Pin = (1 << m_pin);//BLINK_PIN_MASK(BLINK_PIN_NUMBER);
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(((GPIO_TypeDef *)(GPIOA_BASE + (GPIOB_BASE-GPIOA_BASE)*(m_port))), &GPIO_InitStructure);

}


void Pin::set(){
GPIO_SetBits(((GPIO_TypeDef *)(GPIOA_BASE + (GPIOB_BASE-GPIOA_BASE)*(m_port))),
        (1 << m_pin));
}

void Pin::reset(){
GPIO_ResetBits(((GPIO_TypeDef *)(GPIOA_BASE + (GPIOB_BASE-GPIOA_BASE)*(m_port))),
        (1 << m_pin));

}





Теперь можем делать так
Pin myPin(PORTB,PIN1);
myPin.switchToOutput();
myPin.set();
myPin.reset();


А теперь - новый класс Led наследник Pin

Код:

class Led: public Pin{

public:
Led(uint8_t port, uint8_t pin): Pin(port,pin){switchToOutput();};
void on(){set();};
void off(){reset();};

};



Теперь так можно

Led myLed(PORTB,PIN1);
myLed.on();
myLed.off();

Смешные, конечно, "открытия" для монстров вроде Alexies. :-)

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTArmada
СообщениеДобавлено: 08 авг 2018, 00:33 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 27 ноя 2011, 00:22
Сообщений: 1569
Откуда: Україна
Боюсь даже представить какой восторг у Вас вызовет перегрузка операторов :)
Одумайтесь, одумайтесь, товарищ Pingvin, прежде чем, понимаете, увидеть С++ без санкции соответствующих органов!
Так и в Ардуинство недолго скатиться...

_________________
Нет предела совершенству, но ресурсы заканчиваются быстро.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTArmada
СообщениеДобавлено: 08 авг 2018, 05:58 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Будет и переопределение операторов, будут и виртуальные функции.
Виртуальные буду использовать для работы с экранчиками.
Они же у меня двух типов, так чтобы в основном коде каждый раз не уточнять (при помощи #ifdef), функцию из какого драйвера вызвать - буду использовать виртуальные функции.
В основном коде будет только что то типа
COLOR_LCD *LCD = new COLOR_LCD();//если цветной
или
BLACK_LCD *LCD = new BLACK_LCD();//если черно-белый
приводим указатель на экранчик к указателю на базовый класс
пусть базовый класс называется LCD_BASE
тогда
LCD_BASE* Screen = LCD;
и далее просто используем виртуальные функции базового класса, во время выполнения автоматически будут вызываться нужные функции - или для черно-белого экрана, или для цветного.

Screen->print(0,0,"Hello!");
Screen->clear();

и т.д.
И наконец то избавлюсь от этих жутких #ifdef-ов.
Надеюсь - ничего не напутал (ещё буду уточнять).


Ардуинство - тот же самый C++, только все "кишки" (описания классов, шаблоны) спрятаны во всевозможные библиотеки.
С Ардуиной проблема в том, что пользователю ничего в "кишочках" поправить не дают.
У нас же все будет доступно (если захотим). ;)

Код должен быть удобочитаем и самодокументированный.
Так что ничего плохого в Ардуино-style коде я не вижу. :)
И я понимаю, что это был сарказм. :)

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTArmada
СообщениеДобавлено: 08 авг 2018, 16:23 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Немного доработал класс Pin.
Теперь можно включать внешние прерывания.
Например
Код:
Pin BtStatePin(PORTC,PIN7);
BtStatePin.enableExti(true);
BtStatePin.setCallback(testCallback);

активирует внешние прерывания на ножке и при наступлении таковых вызовет функцию testCallback()
Функцию можно переназначить на любую другую (типа void f(void)) - то есть без возвращаемого значения и аргументов.
Или отключить
BtStatePin.setCallback(0);
Функция будет работать в контексте прерывания.

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTArmada
СообщениеДобавлено: 24 сен 2018, 00:22 
Не в сети
Местный
Аватар пользователя

Зарегистрирован: 06 фев 2012, 01:30
Сообщений: 420
Откуда: Мордор
Кстати такой модуль еще никто не юзал? Заявленая дальность 10км. https://ru.aliexpress.com/item/Ra-01-Lo ... 53009619b7
Изображение


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 1089 ]  На страницу Пред.  1 ... 105, 106, 107, 108, 109  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB