PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   iCarDS (http://pccar.ru/forumdisplay.php?f=121)
-   -   iCarDS + Arduino = iCarDuino (http://pccar.ru/showthread.php?t=16718)

напор 04.07.2013 10:22

Кнопки резистивные.

admin.
Если можно, по подробнее.
Я ничего не успел настроить, но по признакам очень похоже на кодовое значение которое считывается при отпущенных кнопках.
В каких настройках указывается фоновое значение? Так сказать значение покоя.

admin 04.07.2013 10:41

Фоновое значение нужно удалить из конфига

Bersenev 04.07.2013 11:03

Цитата:

Сообщение от напор (Сообщение 263090)
Возникла проблема, и не знаю куда копать.
установлена айкар и joystick. настраиваю как в шапке написано. когда в айкаре пытаюсь прописать кнопки создается впечатление, что залипла одна из кнопок на руле. то есть на какую бы кнопку не нажал, вновь нажатая кнопка появляется в списке, но выделение строчки опять перескакивает на ту кнопку, которая какбы залипла. когда выхожу из настроек в оболочку происходит залипание той функции, которая была назначена на эту кнопку(например уменьшение громкости чтобы я ни делал)

Какой скетч загружен в ардуино? Если из шапки этой темы, то какой именно код выдаётся при залипании и к какому пину подключены резистивные кнопки?

Цитата:

Сообщение от напор (Сообщение 263090)
Когда подключил родную музыку такого эффекта нет. всё нормально.

Что значит "родную музыку"?

напор 04.07.2013 11:23

аппарат не под рукой. позже посмотрю подробности
admin.
где лежит конфиг?

Bersenev
У меня не ардуино, а JoyStick сделаный как я понял на базе ардуино.
Поэтому ни какого скетча не заливал. На сколько я понял это готовый продукт в который можно ничего не заливать, так как там уже что-то залито. Да и в шапке нет указаний на необходимость заливки, если нужны только кнопки, а не температура.
К какому пину что подключено не видно, т.к. всё закрыто термоусадочной трубкой. А из неё выходят 2 проводка: + и -.
какой именно код выдаётся при залипании смогу посмотреть чуть позже. Если на память, то в коде много буков F

Под родной музыкой я подразумеваю штатную магнитолу

напор 04.07.2013 11:31

код при залипании duino_FEFEFEFE

OsDima 04.07.2013 12:20

Ограничения на количество температурных датчиков есть? Насколь-ко понял в скейтче нет. Вероятно опять глючный датчик попался. 2-ой из 5-ти.

Bersenev 04.07.2013 15:04

Цитата:

Сообщение от напор (Сообщение 263154)
Bersenev
У меня не ардуино, а JoyStick сделаный как я понял на базе ардуино.
Поэтому ни какого скетча не заливал. На сколько я понял это готовый продукт в который можно ничего не заливать, так как там уже что-то залито. Да и в шапке нет указаний на необходимость заливки, если нужны только кнопки, а не температура.
К какому пину что подключено не видно, т.к. всё закрыто термоусадочной трубкой. А из неё выходят 2 проводка: + и -.

Цитата:

Сообщение от напор (Сообщение 263155)
код при залипании duino_FEFEFEFE

Вот теперь ситуация ясная. Но немного безрадостная для тебя.

Судя по всему у тебя залит один из этих скетчей http://compcar.ru/forum/showthread.php?t=4640 , данные скетчи передают по два байта, а раньше в этой теме были скетчи, которые передавали по 4 байта. Именно под них и был написан плагин iCarDuino. Кроме того старые скетчи не передавали ничего, когда не нажата ни одна кнопка. А эти если ничего не нажата передают байты FEFE.

Так что единственное решение на данный момент, это залить скетч из шапки в ардуино или исправить скетчи отсюда http://compcar.ru/forum/showthread.php?t=4640 , под передачу четырёх байтов

Bersenev 04.07.2013 15:11

Цитата:

Сообщение от OsDima (Сообщение 263159)
Ограничения на количество температурных датчиков есть? Насколь-ко понял в скейтче нет. Вероятно опять глючный датчик попался. 2-ой из 5-ти.

Попробуй использовать вот такую функцию обработки температурных датчиков. Та что в шапке сейчас иногда глючит, так что возможно причина не в датчиках

PHP код:


//-----------------------------------------
//- Переменные для температурных датчиков -
//-----------------------------------------
OneWire  ds(WIRE_PIN);
byte addr[8];            
byte data[12];
unsigned long temperature_sensors_milles;
unsigned long temperature_sensors_wait_milles 1000// Интервал передачи данных от температурных датчиков
int t_status 0;


void temperature_sensors()
{
  if(
t_status == 0)
  {

    if (!
ds.search(addr)) 
    {                       
// поиск нового датчика
      
ds.reset_search();    // если не нашли, сбрасываем поиск в начало
      
return;               // и выходим 
    
}
  
    
// Часть кода, которая ниже, выполняется только если
    // найден новый датчик, с которым ещё не работали в
    // главном цикле до сброса поиска

    
if (OneWire::crc8addr7) != addr[7]) // Проверка CRC 
    

      return; 
// Если не пройдена, то в начало главного цикла и продолжаем поиск других датчиков
    
}
  
    if (
addr[0] != 0x28// Проверка того, что найденное устройство - температурный датчик DS18B20 
    
{        
      return; 
// Если не он, то опять в начало главного цикла на продолжение поиска
    
}
  
    
ds.reset();
    
ds.select(addr);
    
ds.write(0x44,1);
      
    
t_status 1;
  }
  else
  {
    if( 
temperature_sensors_milles temperature_sensors_wait_milles millis() )
    {
      
temperature_sensors_milles millis();

      
byte i;

      
ds.reset();
      
ds.select(addr);
      
ds.write(0xBE);
  
      for ( 
09i++) // получаем данные с датчика
      
{         
        
data[i] = ds.read();
      }
      
bytes[0] = 0xFFbytes[1] = 0xFFbytes[2] = 0xFFbytes[3] = 0xFF
      
Serial.writebytes,4); // отправить 0xFFFFFFFF - код температурного датчика
      
Serial.writeaddr,8); // отправить 8 байтовый номер температурного датчика 
      
bytes[0] = 0;          // отправляем байты содержащие температуру  
      
bytes[1] = 0;  
      
bytes[2] = data[0]; 
      
bytes[3] = data[1]; 
      
Serial.writebytes,4); // значение температурного датчика
      
t_status 0;
    } 
  }



напор 04.07.2013 16:27

удалено

Bersenev 04.07.2013 16:43

Цитата:

Сообщение от напор (Сообщение 263187)
Подскажите куда надо класть библиотеки IRremote, OneWire

В папку ..\Arduino\libraries\

admin 04.07.2013 16:55

Вот здесь есть скетч с инструкцией

напор 04.07.2013 17:03

Куда класть уже разобрался. Спасибо.
Теперь компилятор требует SPI.h
И есть подозрение что ещё потребует eeprom.h
Гугл выдает что-то далекое от моего понимания...


Нашел более свежую версию компилятора с нужными библиотекками по ссылке выше.

Спасибо.

Bersenev 04.07.2013 17:16

Цитата:

Сообщение от напор (Сообщение 263193)
Куда класть уже разобрался. Спасибо.
Теперь компилятор требует SPI.h
И есть подозрение что ещё потребует eeprom.h
Гугл выдает что-то далекое от моего понимания...

Здесь ссылки на все библиотеки

http://arduino.cc/en/Reference/Libraries

напор 04.07.2013 17:36

Был я там. Но как скачать не понял...

Но уже нашел в другом месте.

напор 08.07.2013 19:41

Продолжаем. Прошивку из шапки удалось залить. Ещё раз поискал поиском. Поставил все нужные настройки, перепрописал ардуину и т. д.
Теперь кнопки в айкар выдают коды вида АА000503, АА000504 и т.д.
Но все равно происходит зацикливание на АА000503. Открыв настройки первым делом я вижу АА000503, не успев нажать ни одной кнопки.
Нажимаю , она выдает следующий код и выделение возвращается обратно на АА000503. И опять если я назначаю на АА000503 какое либо действие -- оно зацикливается.
При чем одна итаже кнопка может выдавать разные коды
Куда копать дальше?

напор 08.07.2013 19:44

Цитата:

Сообщение от Bersenev (Сообщение 263184)
Вот теперь ситуация ясная. Но немного безрадостная для тебя.

Судя по всему у тебя залит один из этих скетчей http://compcar.ru/forum/showthread.php?t=4640 , данные скетчи передают по два байта, а раньше в этой теме были скетчи, которые передавали по 4 байта. Именно под них и был написан плагин iCarDuino. Кроме того старые скетчи не передавали ничего, когда не нажата ни одна кнопка. А эти если ничего не нажата передают байты FEFE.

Так что единственное решение на данный момент, это залить скетч из шапки в ардуино или исправить скетчи отсюда http://compcar.ru/forum/showthread.php?t=4640 , под передачу четырёх байтов

Если можно, по подробней. Как добиться, чтоб скетчи не передавали ничего, когда не нажата ни одна кнопка

напор 08.07.2013 20:42

Прописал в duino.ini и в skin.ini
duino_is_ir_key=0
duino_is_encoder_1=0
duino_is_encoder_2=0
duino_is_res_keys=1

Теперь зацикливания не происходит. Но при открытии настроек в айкар независимо от нажатия кнопок появляется код АА000519. И всё. Если назначить на этот код , допустим, увеличение громкости, то безсистемно происходит однократное увеличение громкости на 5 единиц и больше ни чего не происходит.

Что-то я в тупике. Помогите...

OsDima 09.07.2013 07:03

После обновления в машине на 33 версию с предыдущей, стали тормозить энкодеры - "как в замедленном кино" крутанул и каждый "шечок" обрабатывается с паузой ~1 сек.
Причем на домашнем ноуте этот контроллер отрабатывает номально. В настройках "кнопок iCarDuino" паузы между шелчками не заметил. Что делать? Не хочется устанавливать на чистую систему - времени мало, собираюсь в Крым на машине. 3-й раз за 3 года, и каждый раз с iCar, уже не могу без него.

Bersenev 09.07.2013 12:10

Цитата:

Сообщение от напор (Сообщение 263553)
Прописал в duino.ini и в skin.ini
duino_is_ir_key=0
duino_is_encoder_1=0
duino_is_encoder_2=0
duino_is_res_keys=1

Теперь зацикливания не происходит. Но при открытии настроек в айкар независимо от нажатия кнопок появляется код АА000519. И всё. Если назначить на этот код , допустим, увеличение громкости, то безсистемно происходит однократное увеличение громкости на 5 единиц и больше ни чего не происходит.

Что-то я в тупике. Помогите...

В строке скетча

#define RES_KEY_FLAG_ 0x76 // Флаг первого запуска скетча

измени значение на другое, допустим 0x77, это переведёт скетч в первоначальное состояние, то есть сбросит ранее запомненные коды клавиш.

Потом желательно точно определить к какому именно пину на ардуино подсоединены резистивные кнопки, к 5-му или 7-му и указать этот номер в строке скетча

int RES_PIN = 5 ; // аналоговый вход(пин) для резестивных(рулевых) кнопок

Дело в том, что если твоё устройство построено на Arduino Nano V5 , то скорее всего у тебя используется 5-й пин, а если Arduino Nano V7, то скорее всего на 7-м.

Ещё желательно знать схему подключения, ты писал что данные кнопки работают с родной музыкой(то есть с магнитолой), так вон случайно кнопки не подключены одновременно и к ардуино и к магнитоле?

Bersenev 09.07.2013 12:13

Цитата:

Сообщение от OsDima (Сообщение 263588)
После обновления в машине на 33 версию с предыдущей, стали тормозить энкодеры - "как в замедленном кино" крутанул и каждый "шечок" обрабатывается с паузой ~1 сек.
Причем на домашнем ноуте этот контроллер отрабатывает номально. В настройках "кнопок iCarDuino" паузы между шелчками не заметил. Что делать? Не хочется устанавливать на чистую систему - времени мало, собираюсь в Крым на машине. 3-й раз за 3 года, и каждый раз с iCar, уже не могу без него.

Попробуй в настройках скина (3-й экран) --Звуки -- отключить звук при нажатии на кнопку

OsDima 09.07.2013 14:49

Цитата:

Сообщение от Bersenev (Сообщение 263609)
Попробуй в настройках скина (3-й экран) --Звуки -- отключить звук при нажатии на кнопку

Да включено, по дороге домой проверю, но к звуку я привык, неудобно будет без него.

P.S. Помогло. Я совсем забыл что у меня раньше EventGost "пикал", но сейчас его уже нет "не нужен" из-за наличия iCarDuino.
Осталось только второй монитор пристроить где-то сзади, что-бы дети могли "углубится" в фильмы, а я на "первом" мониторе с навигацией и музыкой.

напор 09.07.2013 15:39

Цитата:

Сообщение от Bersenev (Сообщение 263607)
измени значение на другое, допустим 0x77

попробую. Но позже. Дал себе сутки на просветление мозгов:be:

Цитата:

Сообщение от Bersenev (Сообщение 263607)
Потом желательно точно определить к какому именно пину к 5-му или 7-му

А если ошибиться с пином, по идее, ничего происходить не должно. Я от этого и отталкивался, считая, что если хоть какие-то коды приходят, то пин правильный. Или я ошибаюсь?


Магнитола отключена. Лежит в сторонке.

Bersenev 09.07.2013 17:28

Цитата:

Сообщение от напор (Сообщение 263628)
А если ошибиться с пином, по идее, ничего происходить не должно. Я от этого и отталкивался, считая, что если хоть какие-то коды приходят, то пин правильный. Или я ошибаюсь?

Часто, если к пину ничего не подключено, то команда analogRead() может возвращать что угодно, если данный пин не подтянут к +5V

Bersenev 09.07.2013 17:30

Цитата:

Сообщение от OsDima (Сообщение 263623)
Да включено, по дороге домой проверю, но к звуку я привык, неудобно будет без него.

Отключи, что бы проверить, если из-за этого, то подумаем как решить

OsDima 10.07.2013 05:03

Удалено

[ivi] 10.07.2013 13:15

AlexIz, пробовал загружать скетч из твоего поста http://www.pccar.ru/showpost.php?p=260178&postcount=442 в такую же Ардуину на альтмеге 168, скетч загружается нормально, но когда на кнопки нажимаешь- ноль эмоций. По первому посту всё сделал, как доктор прописал (порт 20, скорость 115200, ножка на ардуине 5) - реакции ноль (нужны только кнопки). Прописал в duino.ini
duino_is_ir_key=0
duino_is_encoder_1=0
duino_is_encoder_2=0
duino_is_res_keys=1
в skin.ini прописывал, но после этого Икар зависал при загрузке, приходилось переустанавливать Икар... из скин.ини удалил запись. Стоит 1.7.0.33
На ЦФ ардуина работала. Диод на ардуине мигать должен?, когда на кнопки руля нажимаешь? у меня не мигает.

напор 10.07.2013 15:51

кнопки присоединены на 7 пин. управление пока сделал через хоткей. через плагин пока не получилось. наверно пока так поезжу.

Спаибо за помощь

AlexIz 11.07.2013 23:52

Цитата:

Сообщение от [ivi] (Сообщение 263797)
AlexIz, пробовал загружать скетч из твоего поста http://www.pccar.ru/showpost.php?p=260178&postcount=442 Диод на ардуине мигать должен?, когда на кнопки руля нажимаешь? у меня не мигает.

Посмотри ниже, там Bersenev поправил скетч, с ним всё работает нормально.
При обмене данными диодик должен мигать.

[ivi] 15.07.2013 13:47

Bersenev, Андрей, выложите пожалуйста скетч только для кнопок. Пробовал заливать этот http://www.pccar.ru/showpost.php?p=260397&postcount=457 с изменением
Цитата:

Сообщение от Bersenev (Сообщение 260437)
Давай попробуем так, найди в скетче эти строки

PHP код:

if( is_temperature_sensors temperature_sensors();  //  температурные датчики   
if( is_res_keys res_keys();                        //  резестивные кнопки 

и замени на эти
PHP код:

temperature_sensors();  //  температурные датчики   
res_keys();                        //  резестивные кнопки 


загрузка останавливается на строчке OneWire ds(WIRE_PIN);. Пробую удалять всё, что связано с темп. датчиками, Икар кнопки видит... но после назначения например кнопки "громкость выше" начинает громкость добавляться постоянно, без паузы до конца не нажимая на кнопку... наверное чего-то не того поудалял в скетче.... порт5, на ардуине нога 5, скорость 115200, ардуина на альтмеге168

M@troskin 16.07.2013 10:07

Цитата:

Сообщение от Bersenev (Сообщение 209144)
Начинаем работы по поддержке Arduino в iCar DS.

Собрал я наконец icarduino, все кнопки заработали, энкодеры читаются по вращению, по нажатию кнопок энкодеров - через раз, бывает, несколько раз надо нажать. почему так?
еще одна проблема.
схема в icards как положено заработала только на рабочем компьютере - core i5, win7 64 bit, 8 gb оперативки. на том компе, который будет стоять в машине - atom 450 (intel d450t), win xp - не работает. грешу на то, что система на карписи свежепереобутая, поковыряюсь сегодня еще в ини-файлах, хотя вроде все делал по инструкции.
кстати, об инструкциях. тема по икардуино разрослась очень широко, вроде как проскакивали сообщения о неких правках скетча - но найти не смог. может, в шапке темы сигналить о выходе новых сборок икара, правках скетча? :blush:

M@troskin 17.07.2013 07:58

Цитата:

Сообщение от M@troskin (Сообщение 264348)
схема в icards как положено заработала только на рабочем компьютере - core i5, win7 64 bit, 8 gb оперативки. на том компе, который будет стоять в машине - atom 450 (intel d450t), win xp - не работает. грешу на то, что система на карписи свежепереобутая, поковыряюсь сегодня еще в ини-файлах, хотя вроде все делал по инструкции.

эта часть вопроса снята - ошибся в портах :rolleyes2:
первая часть про кнопки энкодеров осталась - почему не всегда срабатывают?

Bersenev 17.07.2013 08:17

Цитата:

Сообщение от M@troskin (Сообщение 264445)
первая часть про кнопки энкодеров осталась - почему не всегда срабатывают?

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

if( encoder1_dt >= 0x246 && encoder1_dt <= 0x286 )

и замени на такие

if( encoder1_dt >= 0x226 && encoder1_dt <= 0x2A6 )

[ivi] 17.07.2013 10:33

Андрей, у меня случайно не такая же ситуация с дебезгом? пост №509

Bersenev 17.07.2013 15:20

Цитата:

Сообщение от [ivi] (Сообщение 264274)
Bersenev, Андрей, выложите пожалуйста скетч только для кнопок.

Пробуй

PHP код:

//
#include <EEPROM.h>
  
#define RES_KEY_FLAG_ 0x79  // Флаг первого запуска скетча

byte bytes[4];

//-----------------------------------------
//- входы(пины) ардуино                   -
//-----------------------------------------

int RES_PIN ;       // аналоговый вход(пин) для резестивных(рулевых) кнопок 

//-----------------------------------------
//- переменные включения функций скетча   -
//-----------------------------------------
boolean is_res_keys false;

//-----------------------------------------
//- Переменные для резестивных кнопок     -
//-----------------------------------------
unsigned long  res_dt 0
unsigned long  res_dt_sum=0
#define RES_DT_COUNT 500 // Количество считываемых данных
#define RES_DT_SKIP_COUNT 100 // Количество данных, которые надо пропустить при нажатии
#define RES_DT_POINT 6 // Точность
int res_dt_n 0;
unsigned long res_key=0;
unsigned long res_key_old=0;
unsigned long res_key_wait_first 500;  // время ожидания после первого нажатия кнопки
unsigned long res_key_wait_next 250;  // время ожидания до следующего нажатия кнопки
unsigned long res_key_wait_millis 0;
unsigned long res_key_millis;
unsigned long res_key_array[51][2];
unsigned int res_key_count 0;
unsigned int res_key_delta 5// дельта для определения кода кнопки
  
void setup() 

  
Serial.begin(115200); 
    
res_key_millis millis();
   
    
unsigned int first_run_key EEPROM.read(0);
    if ( 
first_run_key == RES_KEY_FLAG_ )
    {
      
res_key_count EEPROM.read(1);
      
//EEPROM.write(addr, val);
      
for(int i=0i<res_key_count;i++) 
      { 
        
res_key_array[i][0] = (EEPROM.read(i+2) * 256) + EEPROM.read(i+2+50) - res_key_deltares_key_array[i][1] = res_key_array[i][0] + res_key_delta res_key_delta
      }
    }
    for(
int i=res_key_counti<51;i++) 
    { 
      
res_key_array[i][0] = 0xFFFFFFFFres_key_array[i][1] = 0xFFFFFFFF
    }
    
}
 
void loop() 
{
  if (
Serial.available() >= 1// Проверяем наличие команд от компьютера
  
{
     switch (
Serial.read())
    {

     case 
0x06// включить передачу данных от резестивных кнопок
       
is_res_keys true;
     break;

     case 
0x86// выключить передачу данных от резестивных кнопок
       
is_res_keys false;
     break;

     case 
0xAA// выключить передачу данных от резестивных кнопок
     
{
       while (
Serial.available() < 5) {}
       
int i Serial.read();
       
bytes[0] = Serial.read();          // преобразовать в 4-байта  
       
bytes[1] = Serial.read();  
       
bytes[2] = Serial.read(); 
       
bytes[3] = Serial.read(); 
       
unsigned long key_res_min 0key_res_min bytes[0]; key_res_min key_res_min 256 bytes[1];  
       
unsigned long key_res_max 0key_res_max bytes[2]; key_res_max key_res_max 256 bytes[3];  
       
res_key_array[i-1][0] = key_res_min
       
res_key_array[i-1][1] = key_res_max;
     }
     break;

     case 
0xAB// сбросить настройки резестивных кнопок в EEPROM
     
{
       
EEPROM.write(0,0); // сбросить флаг первого запуска
       
res_key_count 0// сбросить количество резистивных кнопок 
       
EEPROM.write(1,0); //
       
for(int i=0i<51;i++) 
       { 
        
res_key_array[i][0] = 0xFFFFFFFFres_key_array[i][1] = 0xFFFFFFFF
       }
     } 
     break;
    }
  } 
  if( 
is_res_keys res_keys();                        //  резестивные кнопки
}

//----------------------------------------------------------------------------------
// Функция работы с резестивными кнопками
//----------------------------------------------------------------------------------
void res_keys()
{  
  {
    
res_dt analogRead(RES_PIN); // прочитать данные АЦП 
    
if( res_dt >= 0x05 && res_dt <= 0x3F0 )
    { 
      
res_dt_n++;
      if( 
res_dt_n RES_DT_SKIP_COUNT )
      {
        
res_dt_sum += (res_dt << RES_DT_POINT);
        if( 
res_dt_n == RES_DT_COUNT)
        { 

          
res_key = (res_dt_sum / (RES_DT_COUNT RES_DT_SKIP_COUNT));
          
res_key = (((((( res_dt_sum / (( RES_DT_COUNT RES_DT_SKIP_COUNT ) + (2^(RES_DT_POINT-1)-1) ) >> (RES_DT_POINT-1)) + 1) >> 1) + 1)>> 1)); // + 1) >> 1;
          
res_dt_sum 0res_dt_n 0;
        }
       }
    }
    else
    {
      
res_dt_sum 0res_dt_n 0res_key 0;
      
res_key_wait_millis 0;
    }
  }
  if( 
res_key_millis res_key_wait_millis*<= millis() ) { res_key_old 0; }
  if( 
res_key_millis res_key_wait_millis <= millis() )
  {
    if( 
res_key != )
    {
      if( ((
res_key_old res_key_delta) <=  res_key) && (res_key <= (res_key_old res_key_delta)) )
      {
        
res_key_millis millis(); res_key_wait_millis res_key_wait_next;
      }
      else
      {
        
res_key_millis millis(); res_key_wait_millis res_key_wait_first;
      }

        
int i 0int exit = 0;
        while( 
res_key_array[i][0] != 0xFFFFFFFF && exit == )
        {
          if( (
res_key_array[i][0] <= res_key) && (res_key <= res_key_array[i][1]) ) exit = 1; else i++;
        }
        if( exit == 

        { 
          
bytes[0] = 0xAA;          // преобразовать в 4-байта  
          
bytes[1] = 0;  
          
bytes[2] = RES_PIN
          
bytes[3] = i+1
          
Serial.writebytes,4); // отправить прочитаное значение компьютеру
        
}
        else
        {
          if( 
res_key_count 50 )
          {
            
res_key_array[res_key_count][0] = res_key res_key_deltares_key_array[res_key_count][1] = res_key res_key_delta;
            
res_key_count++;
            
            
EEPROM.write(1res_key_count); // Запоминаем количество кнопок
            
byte one_byte res_key 256;
            
EEPROM.write(res_key_count+1one_byte ); // Запоминаем старший байт значения кнопки
            
one_byte res_key one_byte 256;
            
EEPROM.write(res_key_count+1+50one_byte ); // Запоминаем младший байт значения кнопки
            
EEPROM.write(0RES_KEY_FLAG_);
          
            
bytes[0] = 0xAA;          // преобразовать в 4-байта  
            
bytes[1] = 0;  
            
bytes[2] = RES_PIN
            
bytes[3] = res_key_count
            
Serial.writebytes,4); // отправить прочитаное значение компьютеру
          
}
          else
          {
            
bytes[0] = 0xAA;          // преобразовать в 4-байта  
            
bytes[1] = 0xAA;  
            
bytes[2] = (res_key 0xFF00) >> 8
            
bytes[3] = res_key 0xFF
            
Serial.writebytes,4); // отправить прочитаное значение компьютеру
          
}
        }
    }
    
res_key_old res_key;
  }



OsDima 21.07.2013 02:21

Как через Дуинку по ИК увести iCar в Сон. На код кнопки от iCarDuino зделать спящий режим.

Интелектуальными БП не пользуюсью. Обычное реле контроля напряжение - включается когда заведен двигатель, а выключаю по ИК.

До того как поставил iCarDuino, пользовался MCE ресивером и Evengost-ом. Засыпал комп от BAT файла.
Ресивер убрал из машины и теперь нечем уводить комп в сон, по экрану в сон тапать напрягает.

Bersenev 23.07.2013 11:38

Цитата:

Сообщение от OsDima (Сообщение 264801)
Как через Дуинку по ИК увести iCar в Сон. На код кнопки от iCarDuino зделать спящий режим.

Интелектуальными БП не пользуюсью. Обычное реле контроля напряжение - включается когда заведен двигатель, а выключаю по ИК.

До того как поставил iCarDuino, пользовался MCE ресивером и Evengost-ом. Засыпал комп от BAT файла.
Ресивер убрал из машины и теперь нечем уводить комп в сон, по экрану в сон тапать напрягает.

Повесь на кнопку нужную команду

CF_POWEROFF - выключить комп
CF_REBOOT - перезагрузить
CF_STANDBY - перейти в ждущий режим
CF_HIBERNATE - гибернация

OsDima 23.07.2013 19:42

Цитата:

Сообщение от Bersenev (Сообщение 264978)
Повесь на кнопку нужную команду

CF_POWEROFF - выключить комп
CF_REBOOT - перезагрузить
CF_STANDBY - перейти в ждущий режим
CF_HIBERNATE - гибернация

Насчет команд понятно, спасибо. Но нужна не одна команда а последовательность действий. В соседней теме, здесь не буду повторятся.

OsDima 27.07.2013 21:22

Цитата:

Сообщение от Bersenev (Сообщение 264978)
Повесь на кнопку нужную команду

CF_POWEROFF - выключить комп
CF_REBOOT - перезагрузить
CF_STANDBY - перейти в ждущий режим
CF_HIBERNATE - гибернация

Повесил на кнопку ИК ресивера команду

CF_HIBERNATE

Ноль эмоций.

У меня подключен второй сенсорный монитор. При нажатии на сенсор 2 монитора запущеное "внешнее" приложение "убегает" с первого монитора на него - "второй". На экране музыка убегает визуализация. Можно ли это както отключить.

OsDima 30.07.2013 08:15

Скрипт при переходе в спящий режим. Запускаю в нем удаление процесса.

Можно-ли организовать задержку на переход в спящий режим можно организовать в этом скрипте. Скрипт не успевает остановить процесс. И процесс закрывается уже после просыпания CarPC.

И добавить еще один скрипт при выгрузке скина.
У меня проблемы с AutoCommService от VOBD, он не стабильно востанавливается после просыпания.

Форумчане ответь завтра в дорогу, две мелочи осталось до "комфорта"

[ivi] 04.08.2013 17:03

Андрей, только сейчас появилась возможность отписаться по поводу скетча (твой пост№ 514). Во-первых спасибо.... Работает звук + -, Mute, след. трэк, предыд. трэк... Но предыдущ. трэк сейчас работает постоянно (как буд-то постоянно нажата кнопка предыд. трэка). По нажимаешь на кнопку сдед.трэка, трэки меняются вперёд, но потом опять всё перелистывается само на начало..... И где можно глянуть блокнот с прописанными настройками на кнопки? Хочу удалить прописанную настройку на эту кнопку (может не в скетче дело) и перенастроить заново, а то в запущенном Икаре не получается перенастроить.


Часовой пояс GMT +4, время: 15:40.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot