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)

Diagnose 19.02.2012 01:15

Цитата:

Сообщение от Bersenev (Сообщение 211544)
Не надо, не пользуйся. Но со временем икаром можно будет управлять только имея два энкодера.

На сегодня у меня один энкодер управляет громкостью, второй яркостью. А в расширенном режиме (пока только в моей версии скина) ещё и перемещением по спискам и выбором нужных действий.

Андрей, ты прям мои мысли годовалой давности читаешь.:ydance: Давно лежат 2 энкодера - один поворотный с нажатием, а второй кроме поворота и нажатия, ещё и в 4 стороны наклоны умеет делать. Тоже затея была сделать на 1й - управление громкостью и может быть Mute, а вторым по кнопкам/спискам перемещаться и нажатием подтверждать действие, но пока все лежит в коробке и никак нет времени воплотить всё это.:sm555: А тут ты это даже к икару привязываешь... Классно!!!:thumbup: Может я так быстрей зашевелюсь и доделаю девайс.

Alex-NN 19.02.2012 01:51

Цитата:

Сообщение от Diagnose (Сообщение 211558)
второй кроме поворота и нажатия, ещё и в 4 стороны наклоны умеет делать.

Что за энкодер такой? Интересно.

Diagnose 19.02.2012 14:45

Вот такой, достался от мерса W221, задний энкодер. Хотел достать передний - у него есть ещё обратная связь, но пока не получилось.

Alex-NN 19.02.2012 22:13

Цитата:

Запускаете икар, при первом запуске в папке используемого скина ..\Chameleon\DuinoKey будет создан файл duino_temp_sensors.ini
Андрей, после смены кода Ардуино у меня все перестало работать. И под ХР и под семеркой сейчас. Файл, что в цитате, не создается.
Вроде, все сделал: библиотеки на месте, плагин зарегился и включен, но в экране настроек кнопок пусто...
Код в Ардуино грузится нормально, но никакой реакции ни на пульт ни по поводу температуры.

Что может быть?:dntknw:

Можешь повторить старый код?

Bersenev 19.02.2012 22:37

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

добавь в Global Vars

duino_com_baudRate=115200

Alex-NN 20.02.2012 01:05

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

Что может мешать созданию файла "duino_temp_sensors.ini"?
Вроде бы все на месте, но он не создается.:dntknw:

Bersenev 20.02.2012 01:28

Добавь ещё вот эти переменные в skin.ini

calibrate_x=418
calibrate_y=400
calibrate_z=568
calibrate_n=15
calibrate_a=48

badnetrnd 20.02.2012 17:22

А куда подрубать рулевые кнопки ? и по какой схеме ?

Bersenev 20.02.2012 19:00

Цитата:

Сообщение от badnetrnd (Сообщение 211728)
А куда подрубать рулевые кнопки ? и по какой схеме ?

Рулевые кнопки можно подцеплять через это устройство http://carmonitor.ru/ru/joystick-p-104.html, код для ардуино, используемый в этом устройстве находится в этой теме http://www.compcar.ru/forum/showthread.php?t=464

Но я пробовал подключать по этой схеме, в результате получил страшный дребезг при нажатии, то есть на нажатие одной и той же кнопки возвращает разные коды. Что пока с этим делать я не решил.

1) Если прицеплять конкретный набор кнопок (как у меня реализованы энкодеры), то надо писать код для ардуино именно под этот набор кнопок, тогда в комп будут попадать уже готовые коды кнопок

2)если делать что бы цеплялись любые кнопки, то надо слать всё в плагин, а уже в нём делать сопоставление полученных данных конкретной кнопке.

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

badnetrnd 20.02.2012 19:12

А к какому пину подключать что бы icards не считал кнопки руля энкодером ?

Bersenev 20.02.2012 19:33

Цитата:

Сообщение от badnetrnd (Сообщение 211736)
А к какому пину подключать что бы icards не считал кнопки руля энкодером ?

Плагину iCarDuino всё равно к какому пину, что подсоединено. Ик приёмник, энкодер и рулевые кнопки плагин не различает, для него это всё одно и тоже. Главное чтобы ардуино отправлял четырёхбайтный код, который плагин воспринимает как код нажатия клавиши.

Единственное нельзя отправлять такие комбинации FF FF FF FF - это сообщает о том что дальше пойдут данные от температурных датчиков и EF FF FF FF - это код данных от акселерометра. Всё остальное плагин воспринимает как код клавиши.

badnetrnd 20.02.2012 20:23

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

Alex-NN 22.02.2012 14:33

Цитата:

Сообщение от Bersenev (Сообщение 211654)
Добавь ещё вот эти переменные в skin.ini

calibrate_x=418
calibrate_y=400
calibrate_z=568
calibrate_n=15
calibrate_a=48

Андрей, ты еще что-то правишь сейчас по поводу Ардуино? Что-то уперся я в стену после смены скетча на новый. Ждать исправлений или копать проблему у себя?
Не сохранился первый скетч?

Bersenev 22.02.2012 14:43

Цитата:

Сообщение от Alex-NN (Сообщение 212016)
Андрей, ты еще что-то правишь сейчас по поводу Ардуино? Что-то уперся я в стену после смены скетча на новый. Ждать исправлений или копать проблему у себя?

Да, точнее всё уже сделал, сейчас доделаю некоторые исправления в скине для телефона и выложу скин со всеми исправлениями для ардуино и телефона.

Кстати теперь на каждую кнопку ик пульта или энкодера можно назначить по две команды. Для этого надо будет одну кнопку пульта назначить кнопкой Shift и она будет переключать режим работы пульта. У меня теперь пульт вместо 11 команд можен 20 выполнить.

folv 23.02.2012 04:03

Я как понял для управления с рулевых кнопок нужно еще одно Arduino ставить?

Bersenev 23.02.2012 11:55

Цитата:

Сообщение от folv (Сообщение 212101)
Я как понял для управления с рулевых кнопок нужно еще одно Arduino ставить?

Нет, всё будет реализовано в одном ардуино. Как писал ранее я ещё точно не решил как буду бороться с дребезгом кнопок.

onv23 23.02.2012 13:03

Цитата:

Сообщение от Bersenev (Сообщение 212117)
Нет, всё будет реализовано в одном ардуино. Как писал ранее я ещё точно не решил как буду бороться с дребезгом кнопок.

А простейший способ почему не работает ? (по нажатию кнопки запоминать ее код, в этот момент читать таймер, если дельта по таймеру при следующем нажатии меньше антидребезгового окна (200-300 мсек), то, если код следующей нажатой равен предыдущему запомненному, ничего не делать, если не равен - перезаписать код последней нажатой и новый таймер)

admin 23.02.2012 14:10

Вот пример с фильтром дребезга
PHP код:

//http://compcar.ru      
#define PIN 5  //номер аналогового порта     
#define LIMIT 10 //предел погрешности при дребезге    

byte bytes[4];      
unsigned long math_time,old_time,real_timeres_dt1res_d;      
void setup()           
{          
Serial.begin(115200);           
}      

void loop()          
{        
  
res_d analogRead(PIN);   
  if( 
res_d LIMITres_d LIMIT;  
  
delay(10);    
  
res_dt1 analogRead(PIN);    
        
old_time millis();     
        
math_time 0;      
        while(
math_time 200)     
          {     
             
real_time millis();                  
             
math_time real_time old_time;    
            
res_dt1 analogRead(PIN);   
            if(
res_dt1 res_d-LIMIT || res_dt1 res_d+LIMIT) break;  
          }     
        
    if( 
math_time 70)   
      {    
      
bytes[0] = res_d  0xFF;          // преобразовать в 4-байта      
      
bytes[1] = (res_d  0xFF00) >> 8;      
      
bytes[2] = (res_d  0xFF0000) >> 16;     
      
bytes[3] = (res_d  0xFF000000) >> 24;     
      
Serial.writebytes,4); // отправить прочитаное значение компьютеру           
      
}        



Bersenev 23.02.2012 17:19

Цитата:

Сообщение от onv23 (Сообщение 212123)
А простейший способ почему не работает ? (по нажатию кнопки запоминать ее код, в этот момент читать таймер, если дельта по таймеру при следующем нажатии меньше антидребезгового окна (200-300 мсек), то, если код следующей нажатой равен предыдущему запомненному, ничего не делать, если не равен - перезаписать код последней нажатой и новый таймер)

Цитата:

Сообщение от admin (Сообщение 212133)
Вот пример с фильтром дребезга

К сожалению ни алгоритм onv23 ни код admin не решают проблему дребезга, в обоих вариантах считается что первое полученное значение и есть правильный код, а в дальнейшем проверяется уже дребезг относительно этого значения. Но в реальности первое значение тоже подвергнуто дребезгу.

Допустим есть кнопка, которая выдаёт значения от 100 до 120. В результате при первом считывании может быть получено значение от 100 до 120. Теоретически по коду admin-а мы получим в плагин до 20 кодов кнопки.

В реальности у меня данный код на одну и туже кнопку выдаёт 3-4 кода, допустим при первом нажатии 110, при следующем 112, а потом может и 108 и.д. , а должен всегда один, чего я и добиваюсь. Для конкретного варианта резистивных кнопок это не сложно, а вот один код на всё разнообразие вариантов требует времени.

admin 23.02.2012 18:12

Если рассматривать именно дребезг то тогда может быть проще поставить конденсатор на входе

Bersenev 23.02.2012 19:08

Такой вариант тоже не всегда проходит, уже пробовал, всё равно +-3 получается. Но вариант решения уже существует, осталось код отладить.

admin 23.02.2012 19:19

+- В программе в настройках нужно сделать возможность настраивать допустимую погрешность

Bersenev 23.02.2012 19:28

Цитата:

Сообщение от admin (Сообщение 212161)
+- В программе в настройках нужно сделать возможность настраивать допустимую погрешность

а вот этого делать не хочется, хочется что бы как в ик-приёмнике, в плагин передавался уже готовый код. С энкодером получилось и это сделаем. Надо просто правильно нормализацию передаваемого в плагин кода сделать.

admin 23.02.2012 20:05

Еще подкину тему для размышления.
Можно еще к ардуине подключить парктроник

Bersenev 24.02.2012 21:56

Выложил в шапке вариант скетча с резестивными кнопками. Так же обновил инструкцию, поэтому внимательно читаем шапку.

ps. Завтра постараюсь выложить скин Хамелеон с вариантом расширенного управления с помощью ик-приёмника, энкодера и резестивных кнопок. Но всё должно работать и с текущим скином

dmm_72 25.02.2012 22:58

Доброго времени суток! Есть задумка одна, хочу спросить совета.
У меня на въезде во двор с двух сторон стоят автоматические шлагбаумы. Можно разобрав радиобрелок подпаяться к его кнопкам и выводам дуины, чтобы она эмулировала нажатие кнопок брелка. Далее используя плагин PPOI, при подъезде к шлагбауму вываливалось окно с кнопкой "открыть шлагбаум". Типа жмешь на неё, а дуина жмет соответствующую кнопку брелка. Расстояние между шлагбаумами большое, порядка 250м., координаты GPS можно запомнить для каждого... Что скажете? Реально? А то достало уже по карманам шариться и наощупь кнопки брелка нажимать...

Bersenev 25.02.2012 23:06

Реально, даже можно это сделать автоматически, даже на экран жать не придётся.

Кстати у меня дома тоже двое автоматических ворот, правда на расстоянии 5 метров друг от друга, но сделать их открытие с компа это прикольно, появиться время подумаю над этим.

Alex-NN 25.02.2012 23:26

Цитата:

Запускаете икар, при первом запуске в папке используемого скина ..\Chameleon\DuinoKey будет создан файл duino_temp_sensors.ini
Не создается файл....
Аппаратно схема температуры работает. Проверял на другом скетче.

Скин.ини подправлен, библиотеки есть.
Ик-пульт нормально работает.:yes4:

Андрей, что может быть?:dntknw:

autohirurg 25.02.2012 23:33

Цитата:

Сообщение от Bersenev (Сообщение 212462)
Реально, даже можно это сделать автоматически, даже на экран жать не придётся.

Кстати у меня дома тоже двое автоматических ворот, правда на расстоянии 5 метров друг от друга, но сделать их открытие с компа это прикольно, появиться время подумаю над этим.

А это тема! у меня конечно нет ворот автоматических, но возможно заинтересовали бы другие функции,
Может просто сделать управление 2-мя 3-мя релюшками, а к релюшкам уже цепляй то что хочишь, получится что то в виде универсального автоматически управляемое по данным GPS или другим данным устройство:rolleyes2:

Bersenev 25.02.2012 23:52

Цитата:

Сообщение от Alex-NN (Сообщение 212467)
Не создается файл....
Аппаратно схема температуры работает. Проверял на другом скетче.

Скин.ини подправлен, библиотеки есть.
Ик-пульт нормально работает.:yes4:

Андрей, что может быть?:dntknw:

Сейчас собирал скин и нашёл причину, я сделал чтобы датчики передавались только по запросу, а при первом запуске разумеется никто их не запрашивает, вот они и не создаются. Сейчас что-нибудь придумаю

Alex-NN 25.02.2012 23:53

Цитата:

Сообщение от Bersenev (Сообщение 212471)
Сейчас собирал скин и нашёл причину, я сделал чтобы датчики передавались только по запросу, а при первом запуске разумеется никто их не запрашивает, вот они и не создаются. Сейчас что-нибудь придумаю

:yes4::yes4::yes4:

badnetrnd 26.02.2012 00:00

Я так понял, что резестивные кнопки должны нормально работать ?

Bersenev 26.02.2012 00:04

Цитата:

Сообщение от Alex-NN (Сообщение 212472)
:yes4::yes4::yes4:

Возьми в шапке версию плагина 1.0.0.4

Bersenev 26.02.2012 00:05

Цитата:

Сообщение от badnetrnd (Сообщение 212473)
Я так понял, что резестивные кнопки должны нормально работать ?

Проверяй, вариант кнопок, на котором тестировал я, работает без проблем.

badnetrnd 26.02.2012 00:11

И ещё вопрос, если подрублю только рулевые кнопки, icar ругаться не будет?

Alex-NN 26.02.2012 00:14

Цитата:

Сообщение от Bersenev (Сообщение 212475)
Возьми в шапке версию плагина 1.0.0.4

Есть файлик!
Дальше, думаю, настрою нормально. Спасибо!!!:yes4:

Bersenev 26.02.2012 00:14

Цитата:

Сообщение от badnetrnd (Сообщение 212479)
И ещё вопрос, если подрублю только рулевые кнопки, icar ругаться не будет?

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

Bersenev 26.02.2012 00:16

Цитата:

Сообщение от Alex-NN (Сообщение 212480)
Есть файлик!
Дальше, думаю, настрою нормально. Спасибо!!!:yes4:

Не торопись, через полчаса скин зальётся. А то придётся кнопки пульта перенастраивать.

Alex-NN 26.02.2012 00:21

Цитата:

Сообщение от Bersenev (Сообщение 212482)
Не торопись, через полчаса скин зальётся. А то придётся кнопки пульта перенастраивать.

ОК! Кнопки надо будет настраивать в машине. А на ноуте дома только тесты.:smile2:

Bersenev 26.02.2012 00:39

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


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

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