Re: Радар-детектор и Arduino
А цель то какая всего этого? Просто скрыть от глаз и ушей? Вот еслиб данные в комп вводить....
Re: Радар-детектор и Arduino
Для начала - да: просто втыкать РД на торпедо - провоцировать слишком многих. Опять же, врожденный дефект зверушки (реакция ее на включение питания) раздражает, а это - прекрасная возможность изящно обойти его. Ну и концептуально - все системы должны быть интегрированы (и между собой, и в целом).
А касательно введения данных в комп - тут уже столько копий поломали на эту тему...
Я пока для себя не вижу такой необходимости.
Можно было бы звук оповещения отключать в зависимости от скорости (глушить его, например, при скоростях ниже 30 км/ч) - так опять же: смысл РД не только в том, чтобы упредить определение твоей текущей скорости, но еще и в предупреждении о самом факте засады на дороге. А в свете этого - идея бессмысленная... Хотя завести в прогу данные из GPS, полагаю, несложно.
Вот только зачем?
Re: Радар-детектор и Arduino
Версия программы для Arduino под управление через последовательный порт компа.
PHP код:
/*
Управление радар-детектором Stinger S650 с carpc через интерфейс RR
Питание на нагрузку подается либо при начальной инициализации системы,
либо программно (для вкл/выкл нагрузки без снятия питания со всей системы)
По включению питания формируется импульс сброса самотестирования нагрузки.
The circuit:
* Оптрон Режима 1 attached from pin 9 to ground
* Оптрон Режима 2 attached from pin 11 to ground
* Оптрон Вкл/Выкл attached from pin 7 to ground
* pin 8 attached to pin 11
* pin 7 attached to pin 12
******************
modified 29.01.2010
*/
// constants won't change. They're used here to
// set pin numbers:
const int buttonPin1 = 12; // Вход с питания
const int buttonPin2 = 8; // Вход с формирователя сброса
const int buttonPin7 = 6; // Включение/выключение питания
const int ledPin4 = 9; // Управление 1 режимом
const int ledPin5 = 11; // Управление 2 режимом/Ипульс сброса теста
const int ledPin2 = 7; // Включение нагрузки
int val;
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
void setup() {
Serial.begin(115200); //установка порта
// initialize the LED pin as an output:
pinMode(ledPin2, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin5, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(buttonPin7, INPUT);
// turn LED on:
digitalWrite(ledPin2, HIGH); // Первое включение системы
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin1);
// Если питание подано, формируется импульс сброса с задержкой 2 сек:
if (buttonState == HIGH) {
// turn LED on:
delay(2000); // пауза на сброс теста for a 2 second
digitalWrite(ledPin5, HIGH); // Импульс сброса 1 сек
delay(1000);
}
else {
}
}
void loop() {
// Если нагрузка уже инициалирована, переход в рабочую программу
while (digitalRead(buttonPin1) == HIGH) {
work();
}
// Если нагрузка не инициалирована, переход в инициализацию
while (digitalRead(buttonPin1) == LOW) {
initial();
}
}
void initial(){
delay(1000); // пауза на включение
// Выбор режима Вкл/Выкл:
if (Serial.available()) //если есть принятый символ,
{
val = Serial.read(); // то читаем его и сохраняем в val
buttonState = digitalRead(buttonPin7);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (val == 'd') {
// turn LED on:
digitalWrite(ledPin2, HIGH); // Включение питания
}
else {
}
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin1);
// check if the pushbutton is pressed.
// Если питание подано, формируется импульс сброса с задержкой 2 сек:
if (buttonState == HIGH) {
// turn LED on:
delay(2000); // пауза на сброс теста for a 2 second
digitalWrite(ledPin5, HIGH); // Импульс сброса 2 сек
delay(1000);
}
else {
}
// Если импульс сброса сформирован, переход к рабочему циклу
while (digitalRead(buttonPin2) == HIGH) {
work();
}
}
}
void work(){
digitalWrite(ledPin5, LOW); // Снятие импульса сброса
// Выбор режима 1 короткое/длинное нажатие:
if (Serial.available()) //если есть принятый символ,
{
val = Serial.read(); // то читаем его и сохраняем в val
//buttonState = digitalRead(buttonPin3);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (val == '1') {
// turn LED on:
digitalWrite(ledPin4, HIGH);
delay(1000); // Короткое нажатие (Реж.1)
digitalWrite(ledPin4, LOW); // set the LED off
}
else {
// turn LED off:
digitalWrite(ledPin4, LOW);
}
//buttonState = digitalRead(buttonPin4);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (val == '3') {
// turn LED on:
digitalWrite(ledPin4, HIGH);
delay(3000); // Длинное нажатие (Реж.1)
digitalWrite(ledPin4, LOW); // set the LED off
}
else {
// turn LED off:
digitalWrite(ledPin4, LOW);
}
// Выбор режима 2 короткое/длинное нажатие:
//buttonState = digitalRead(buttonPin5);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (val == '5') {
// turn LED on:
digitalWrite(ledPin5, HIGH);
delay(1000); // Короткое нажатие (Реж.2)
digitalWrite(ledPin5, LOW); // set the LED off
}
else {
// turn LED off:
digitalWrite(ledPin5, LOW);
}
// read the state of the pushbutton value:
//buttonState = digitalRead(buttonPin6);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (val == '7') {
// turn LED on:
digitalWrite(ledPin5, HIGH);
delay(3000); // Длинное нажатие (Реж.2)
digitalWrite(ledPin5, LOW); // set the LED off
}
else {
// turn LED off:
digitalWrite(ledPin5, LOW);
}
// Включение/выключение питания:
//buttonState = digitalRead(buttonPin7);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (val == 'd') {
// turn LED on:
digitalWrite(ledPin2, LOW);
delay(1000); //
digitalWrite(ledPin2, LOW); // set the LED off
}
else {
}
}
}
В данной версии еще не реализовано управление громкостью динамика.
Мои благодарности Chip`у и AlexNS за неоценимую помощь, оказанную при написании проги для фронт-энда (тема об этом)
Re: Радар-детектор и Arduino
Pinin если не сложно, расскажи куда именно спрятал радар-детектор... т.к. сам голову ломаю над этим...
У самого Sho-Me 520, очень хочется его спрятать, вывести дисплей отдельно на торпеду, а звук просто отключить...
Думал, может спрятать куда-нибудь в фару, т.к. в районе лобовухи по моим прикидкам, как-то всё уж больно колхозно смотрится =))) но тогда теряется обещанные 360 градусов поиска, а это весьма не обходимо на МКАДе =)
Как вариант поставить два, но как-то это затратно и проблематично…
Re: Радар-детектор и Arduino
Хм, ну я пока еще никуда не поставил - готовлю матчасть: даже в гараже с машиной ковыряться - ласты склеишь, слишком холодно еще...
Планирую все-таки поставить под лобовое, между солнечных козырьков над зеркалом заднего вида. Корпус будет выкинут в топку, сделана наставка на потолок, в которой и будет размещен сабж (перевернутый относительно штатного положения на 180 градусов). Фотоэлемент на плате расположен таким образом, что на него идут два потока: один - с морды прибора, второй - со сферической линзы с бывшей верхней его части (будущей нижней). Дисплей будет вынесен либо над зеркалом, либо вделан в потолок (пока еще не решил). Кнопки/регуляторы при этом будут недоступны - отсюда и вся эта бодяга с софтом.
В принципе, могу выложить фото потрохов РД - м.б. тогда намерения будут более понятны, хотя вообще-то собирался написать полный отчет уже по завершению проекта...
P.S. Да, и кстати - идея смонтировать сабж где-то вне салона (в фару, под капот и т.п.) вряд ли хороша: все-таки температурные диапазоны там по-любому далеки от приемлемых для девайса...
Re: Радар-детектор и Arduino
Цитата:
Сообщение от
Pinin
Исходные данные:
РД Stinger S650 - две управляющие кнопки (выбор режимов, навигация по меню и т.п.), потенциометр регулировки громкости (он же включение/выключение), разъем внешнего питания.
Всё плохо...... Причём плохо с детекторами и новыми радарами.
Сейчас в "научном" поиске. Катаюсь с разобранными радарами, с доработками и заведением контролем сигнала через звуковуху.
(сигналов с выхода приёмников, которые идут на процессор обработки)
Радаров разобрал уже много. К слову сказать стингер внутри - основан на приёмнике кранч - а кранч на порядок дешевле. Отличается только процессорной частью.
По результатам. Процессор обработки игнорирует ЛИСД , хотя приёмник видит и обнаруживает радар. Кроме того фотодетектор видит работу подсветки радара "Стрелки" , достаточно далеко.
В планах - прикрутить приёмник к Arduino и на компе уже обрабатывать и принимать решение радар это или нет.
Кроме того при работе со "Стрелкой" нет сигнала с приёмника (из-за слишком коротких импульсов) в планах доработка приёмника - введение накопительных ёмкостей, чтобы импульс измерения сделать на выходе более широким и чтобы его можно было наблюдать низкочастотными детекторами.
Для справки - "Стрелка" - новый комплекс, который сопровождает все цели с дальности около 1000метров раздельно и примерно за 300м делает видео фиксацию номера нарушителя.
Re: Радар-детектор и Arduino
Сегодня доработанный аппарат Saver прамого усиления с частотой генератора на диоде 60Мгц , на выходе усилителя D триггер на 74ALVC зачуял за 1300М стрелку в Мытищенском районе :)
Пока собрал воздушным монтажом, нужно собраться с мыслями как это сделать более красиво.
Re: Радар-детектор и Arduino
2 dragon
Да, серьезный задел... Поделишься наработками?
2 ALL
Если интересно - установил:
http://photofile.ru/photo/dytljhju/9.../117571034.jpg http://photofile.ru/photo/dytljhju/9.../117569630.jpg http://photofile.ru/photo/dytljhju/9.../117569206.jpg
Сам РД - под колпаком монитора, индикатор вывел на напольную консоль
Сказать по-правде, избирательностью/чувствительностью сабжа не парюсь: пока налететь на фен без заблаговременного предупреждения от РД еще не довелось. Хотя, наверное, и такое когда-нибудь случится...
Re: Радар-детектор и Arduino
Наработки пока такие , гетеродинные детекторы все в топку. Либо нужно пробовать частоту сканирования повышать на 6 порядков (вряд ли правда оно работать будет, но хрен знает)
Савер на приёмнике прямого усиления после доработки и установки на выходе D триггера чует стрелку. У стрелки импульсы по 30нс каждые 20мс , в результате получается на выходе меандр (кривенький) , но 30нс успевает переключить состояние Д триггера до следующего импульса измерения. Пока ясно одно, что нужно брать приёмник прямого усиления и делать сразу от него интерфейс ввода в комп, пусть даже и Arduino , но намертво :)