RemoteXY

Тема в разделе "Закажу проект", создана пользователем stikoff, 22 сен 2015.

  1. stikoff

    stikoff Нерд

    собсно вот код
    Код (C++):
    /////////////////////////////////////////////
    //        RemoteXY include library         //
    //   use ANDROID app version 3.2.1 or up   //
    /////////////////////////////////////////////

    /* определение режима соединения и подключение библиотеки RemoteXY */
    #define REMOTEXY_MODE__SOFTWARESERIAL
    #include <SoftwareSerial.h>
    #include <RemoteXY.h>

    /* настройки соединения */
    #define REMOTEXY_SERIAL_RX 2
    #define REMOTEXY_SERIAL_TX 3
    #define REMOTEXY_SERIAL_SPEED 9600

    /* конфигурация интерфейса  */
    unsigned char RemoteXY_CONF[] =
      { 6,0,44,0,3,5,4,0,1,2
      ,7,60,1,4,0,19,2,7,60,6
      ,4,0,10,2,7,60,4,4,128,28
      ,4,53,9,2,3,3,82,16,16,44
      ,3,4,0,71,19,8,40,7 };
     
    /* структура определяет все переменные вашего интерфейса управления */
    struct {

        /* input variable */
      signed char red; /* =0..100 положение слайдера */
      signed char blue; /* =0..100 положение слайдера */
      signed char gren; /* =0..100 положение слайдера */
      signed char slider_4; /* =0..100 положение слайдера */
      unsigned char mode; /* =0 если переключатель в положении A, =1 если в положении B, =2 если в положении C, ... */
      signed char speed; /* =0..100 положение слайдера */

        /* other variable */
      unsigned char connect_flag;  /* =1 if wire connected, else =0 */

    } RemoteXY;

    /////////////////////////////////////////////
    //           END RemoteXY include          //
    /////////////////////////////////////////////



    void setup()
    {
      RemoteXY_Init ();
     
     

      // TODO you setup code
     
    }

    void loop()
    {
      RemoteXY_Handler ();
     
     

      // TODO you loop code
      // используйте структуру RemoteXY для передачи данных


    }

    сделать чтоб 3 слайдера управляли по отдельности каналами RGB верхний слайдер он же slider_4 ругулировал яркость всех каналов одновременно, Перключаль в режиме А Ручной выбор, В мигание Разными цветами, С плавное изменение цвета, слайдер speed регулирова скорость мигания-измения цвета. По стоимости в ЛС
     
  2. vvr

    vvr Инженерище

    сделать чтоб 3 слайдера управляли по отдельности каналами RGB верхний слайдер он же slider_4 ругулировал яркость всех каналов одновременно - все 4 слайдера одновременно работать не смогут.

    в одном режиме - сделать чтоб 3 слайдера управляли по отдельности каналами RGB
    в другом - верхний слайдер он же slider_4 ругулировал яркость всех каналов одновременно
     
  3. stikoff

    stikoff Нерд

    ну имеется ввиду. выбираем цвет Допустим Оранжевый а 4й слайдер меняет яркость тоесть пропорционально рулит мощьностью 3х каналов одновременно
     
  4. vvr

    vvr Инженерище

    один слайдер определяет цвет
    второй яркость
    как то так
     
  5. stikoff

    stikoff Нерд

    наверно так. немогу конкретно описать. вот есть у меня китай контроллер с пультом, вот я выставляю на нем нужный мне оттенок и рулю яркостью от совсем не горит до светит аж глаза слезятся
     
  6. stikoff

    stikoff Нерд

    Код (C++):
    /////////////////////////////////////////////
    //        RemoteXY include library         //
    //   use ANDROID app version 3.2.1 or up   //
    /////////////////////////////////////////////

    /* определение режима соединения и подключение библиотеки RemoteXY */
    #define REMOTEXY_MODE__SOFTWARESERIAL
    #include <SoftwareSerial.h>
    #include <RemoteXY.h>

    /* настройки соединения */
    #define REMOTEXY_SERIAL_RX 2
    #define REMOTEXY_SERIAL_TX 3
    #define REMOTEXY_SERIAL_SPEED 9600

    /* конфигурация интерфейса  */
    unsigned char RemoteXY_CONF[] =
      { 14,0,119,0,3,5,4,0,1,2
      ,7,60,1,4,0,19,2,7,60,6
      ,4,0,10,2,7,60,4,4,128,25
      ,3,53,9,2,3,3,82,16,16,44
      ,3,4,0,71,19,8,40,7,2,0
      ,77,4,22,7,2,79,78,0,79,70
      ,70,0,3,131,48,28,22,8,4,1
      ,1,27,27,8,8,1,43,0,1,1
      ,37,27,8,8,1,45,0,1,1,27
      ,36,8,8,4,43,0,1,1,37,36
      ,8,8,4,45,0,1,1,27,45,8
      ,8,6,43,0,1,1,37,45,8,8
      ,6,45,0 };
     
    /* структура определяет все переменные вашего интерфейса управления */
    struct {

        /* input variable */
      signed char red; /* =0..100 положение слайдера */
      signed char blue; /* =0..100 положение слайдера */
      signed char gren; /* =0..100 положение слайдера */
      signed char slider_4; /* =0..100 положение слайдера */
      unsigned char mode; /* =0 если переключатель в положении A, =1 если в положении B, =2 если в положении C, ... */
      signed char speed; /* =0..100 положение слайдера */
      unsigned char switch_1; /* =1 если переключатель включен и =0 если отключен */
      unsigned char select_1; /* =0 если переключатель в положении A, =1 если в положении B, =2 если в положении C, ... */
      unsigned char button_1; /* =1 если кнопка нажата, иначе =0 */
      unsigned char button_2; /* =1 если кнопка нажата, иначе =0 */
      unsigned char button_3; /* =1 если кнопка нажата, иначе =0 */
      unsigned char button_4; /* =1 если кнопка нажата, иначе =0 */
      unsigned char button_5; /* =1 если кнопка нажата, иначе =0 */
      unsigned char button_6; /* =1 если кнопка нажата, иначе =0 */

        /* other variable */
      unsigned char connect_flag;  /* =1 if wire connected, else =0 */

    } RemoteXY;

    /////////////////////////////////////////////
    //           END RemoteXY include          //
    /////////////////////////////////////////////

    #define PIN_SWITCH_1 13


    void setup()
    {
      RemoteXY_Init ();
     
      pinMode (PIN_SWITCH_1, OUTPUT);
     

      // TODO you setup code
     
    }

    void loop()
    {
      RemoteXY_Handler ();
     
      digitalWrite(PIN_SWITCH_1, (RemoteXY.switch_1==0)?LOW:HIGH);
     

      // TODO you loop code
      // используйте структуру RemoteXY для передачи данных


    }
    Снимок.PNG


    Дополнение: Нужны 2 независимых канала. Управление Маленьким переключателем А1, С2, В одновременно. Ну С ON-Off я думаю все ясно, и 6 кнопок для более точного выбора оттенка
     
  7. vvr

    vvr Инженерище

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

    нужный оттенок вы выставляете тремя ползунками?:)
     
  8. stikoff

    stikoff Нерд

    Тремя кнопками. Ставим r10 g10 b10 и другой кнопкой увеливаем - уменьшаем одновременно rgb+1. Если r10 g10 b30 то после нажатия на кнопку будет r11 g11 b31
     
  9. DrProg

    DrProg Вечный нерд

    В чем проблема, не пойму. Я делал и потенциометрами и автоматом через датчик цвета, о чем докладывал с видео.
     
    ИгорьК нравится это.
  10. stikoff

    stikoff Нерд

    Вот и я не пойму в чем сложность. Мне кажется меня просто тролят
     
  11. stikoff

    stikoff Нерд

    Ну что кто возьмётся? Цена вопроса ?
    На плей маркет есть сотни готовых решений но интерфейс совсем не дружелюбный
     
  12. vvr

    vvr Инженерище

    перед тем, как заявлять о сложности и троллинге , разберитесь как формируется цвет на rgb.
    менять яркость свечения от нуля до максимума вы сможете только для семи цветов.
    например пурпурный (128, 0, 128) не получится
     
  13. stikoff

    stikoff Нерд

    Вот отснял видео как работает Китай контроллер хотелось бы повторить тоже самое в приложении
     
  14. stikoff

    stikoff Нерд

    Тема ещё актуальна
     
  15. DrProg

    DrProg Вечный нерд

    Получится ли добиться точного цвета с помощью китайской RGB вопрос второй, или даже третий, первый вопрос: можно ли рулить тремя слайдерами по отдельности каждым цветом и одним слайдером всеми цветами одновременно. Думаю да. Но из этого вытекает следующий вопрос.

    Например установлены такая позиция: R-50%, G-100%, B-20%, общий 100%. Двигаем общий на 50%, как должны меняться RGB? Пропорционально или равно? В первом случае получится 25%, 50%, 10% (что верно), во втором 0%, 50%, 0%, потому что отрицательных % не бывает. Думаю, что автор именно в этом и застрял. С помощью нехитрой формулы можно вычислять яркость RGB поканально из положения всех четырех слайдеров, что и будет требуемым результатом.
     
    Последнее редактирование: 23 сен 2015
    ИгорьК и stikoff нравится это.
  16. DrProg

    DrProg Вечный нерд

    Бывают задачи простые, когда решить их можно за небольшое время, или достаточно сделать подсказку. В таком случае тут, как правило, помогают сразу и безвозмездно (то есть даром). А бывают, вроде бы не безумно сложные, но трудоемкие, когда надо вникать, схемы рисовать и писать тонны кода, с такими обычно связываются когда есть время и академический интерес, либо интерес материальный. Ваш именно такой случай. Причем, в случае материальной заинтересованности, она должна превозмочь лень и отодвинуть на второй план другие дела, что не всегда и у всех возможно.

    Или делать самому, что и полезно и приятно и выгодно. )
     
    ИгорьК нравится это.
  17. stikoff

    stikoff Нерд

    Ну очень эта тема не понятна мне ; (
     
  18. DrProg

    DrProg Вечный нерд

    Стоит ли игра свеч?
     
    ИгорьК нравится это.
  19. stikoff

    stikoff Нерд

    Смотря сколько народ готов просить за это