Ви не увійшли.
Не, еще даж малину не корпусировал, все руки не доходят. А в машине и так 2-din магнитола стоит, так что там делов только старую вьідернуть новую вбросить. Потом еще к канбасу чемнить прицепиться, но то уже потом.
Кнопку для резета накладно слишком, нет места, там полосочка 8 мм остается между 2дин рамкой и 7"дисплеем, а туда еще енкодер надо сунуть и пару вьіводов юсб, легше раз'ьем перевьідернуть, если будет вешаться часто то вьіведу кнопу.
А embedded developer шоп цьіфровую кнопу непойми-куда и зачем прикрутить то как-то слишком мне кажеца.
пьісьі. Я понимаю принцип работьі вачдога вообще и тут в частности, знаю когда и зачем и почему он сбросит. Просто если есть то чего б и не использовать, три строчки скопипастить с меня не убудет.
1 ) железячник - embedded developer
2 ) atmel может выступать источником ресета для малины, кнопку для ресета поставьте, для бытовухи не помешает ) тутуВы правы на 100% )
3 ) незнаю как Вы собираетесь программировать, если Вы меня не слышите ) "внутрення собака спасает только от косяков программиста"
4) "заюзать его - дело принципа" - наверное такой расклад имеет право на жизнь )
а так успеха, задумка прикольная )
приборку уже переделали под новую консоль?
Та то в коде огромное колдунство написано.
Жадность єто одно, а интерес єто другое, в машине музьіка есть нормальная китайская с перепаяньім усилком и улучшенньім зафильтрованьім питаловом.
А железячник я и сам железячник, т.е. тот человек которого обьічно находят када нада шота сделать, тока вот программировать не умею, а надо учиться, вот и поставил себе задачу слепить что-то подобное, ибо на аналоге єтот функционал спаять - десять минут навесньім монтажем, 15 на макетке, травить платьі пока негде.
А если вешать еще внешний вачдог для ардуиньі, потом для распберри, потом вачдог для вачдога, и вачдог для вачдога для вачдога, потом физический тумблер на сброс и специально обученного человека, что б стоял и следил, сделать конечно можно, но смьісла нету. Я просто увидел, что в єтой ардуине оказьівается есть вачдог, которьій еще и без бубна не работает, то запустить и заюзать его - дело принципа. Ща вроде работает все в той индусской копипасте, тока во сне ребутит, пришлось отключить на сон.
Немного там непонятного для меня, где-то вначале, где вачдог вьіставляется типо #define WDTCR |= _BV(WDIE) и ISR(WDT_vect) (вектор прерьівания или вектор вачдога?)) НЕХ какое-то), а остально евроде просто, код надо причесать только (не успел вчера причесать, надо ж залить в интернетьі вдруг винт сгорит), да вписать внутри лупа еще пару функций, какую-нить пару подпрограмм добавить, олл_пин_инпут прикрутить и все такое, вачдог коунтер убить, он не нужен мне кажется, но оболочка уже есть, остальное дело техники.
И неясно чего я в сетапе не могу оутпут пин вверх запилить тутже, видел в указанной вами теме про вьіключатель на ардуинепике(!), которьіе кстати шьються двумя диодами через ком-порт без проблем, запилен в сетапе только в путь, а у меня не работает, в луп пришлось перенести, куда б его сместить шоп не дергать каждьій раз.
Потом приедет 3в ардуина, меньше жрать и будет, на нее кину, и СМТ32, хочу потом на стмку адаптировать код, к ней у меня больше доверия.
не,
в таких делах нельзя копипастить бездумно,
вот я чего то по быстрячку "накалякал", а теперь думаю кто это писал? самое интересное скрыто точками ))))
void fKey (tdpkey *pkey, int time_elapsed )
{
if ( digitalRead( pkey->pin_number) )
{
pkey->time_press += time_elapsed;
pkey->time_last_press = 0;
}
else
{
pkey->time_release += time_elapsed;
if ( pkey->time_press > 0 )
{
pkey->time_last_press = pkey->time_press;
}
pkey->time_press = 0;
}
....
"Откуда посоветуете начать? Может почитать что-нибудь, какие-нибудь стетчи для подобньіх проектов уже есть, что бьі только подправить/об'ьеденить под мои задачи?"
Вы ведь в курсе, что в таких делах "жадность" дело лишнее )
найдите толкового единомышленника, желательно железячника, что б смог с Вами пройти пусть от идеи, до работающего образца в авто, я не знаю другого варианта.
watchdog поставьте внешний, с супервизором на борту. мне удавалось положись систему тактирования, так что внутрення собака спасает только от косяков программиста. успеха
martinways, тоже хочет себе в авто модный мафон )
Форум» Аппаратные вопросы» Доработка китайской Android-чудо-автомагнитолы. Выключатель на ардуино
http://forum.arduino.ua/viewtopic.php?id=891
и сделал оптимальнее всего ) ко мне чипы не доехали (
NoName, по тем аббревиатурам немцьі шота излагают, и как-то его прикручивают, но все непонашему говорят, так шо почти ничего непонятно.
Пока кусок кода со всяким непонятньім типа вачдога и енержі сейвер с включением одной релюшки.
Шо там понаписано с єтими вачдогами я не понимаю, просто копил-пастил-компилил
#include <Arduino.h>
#include <avr/interrupt.h>
#include <avr/sleep.h>
#include <avr/power.h> //AVR MCU peripheries (Analog comparator, ADC, USI, Timers/Counters etc) management.
#include <avr/wdt.h> //AVR MCU watchdog timer management.
#include <avr/io.h> //AVR MCU IO ports management.
#define WDTCR |= _BV(WDIE)
// byte led_pin = 13; //Пока не надо, вродь обозначили в другой месте
volatile byte watchdog_counter; // якісь счотчік вачдога, шозанах?
/************************************************************************************************************/
/*
Setup()
Main setup
*/
/************************************************************************************************************/
int ledPin = 13; // LED connected to digital pin 13
int sleepPin = 9; // када 0 то спим, када вьісокое то работаем
int interruptPin = 10; // ПОТОМ УБИТЬ А ПОКА ХАЙ МИГА LED to show the action of a interrupt
int wakePin = 2; // Када вьісокое должно просьіпацо
int sleepStatus = 0; // variable to store a request for sleep
int screenrelePin = 5; //Реле єкрана, налепим несколько релюх
int amprelePin = 6; //Реле усилка пока ноги есть
/************************************************************************************************************/
/*
setup_watchdog()
Sleeps intervals: WDTO_15MS, WDTO_30MS, WDTO_60MS, WDTO_120MS, WDTO_250MS,
WDTO_500MS, WDTO_1S, WDTO_2S, WDTO_4S, WDTO_8S
NOTE: The MCU watchdog runs from internal 128kHz clock and continues to work
during the deepest sleep modes to provide a wake up source.
ХЕРНЯ КАКАЯТО НЕПОНЯТНАЯ, ДЕ ЄТОТ БАЙТ СЛИП ТАЙМ ОБОЗНАЧЯЄЦА?
*/
/************************************************************************************************************/
void setup_watchdog(byte sleep_time)
{
wdt_enable(sleep_time);
}
/************************************************************************************************************/
/*
ISR(WDT_vect) ШОЗАНАХ???7
Watchdog Interrupt Service (automatically executed when watchdog is timed out)
*/
/************************************************************************************************************/
ISR(WDT_vect)
{
watchdog_counter++;
}
void setup()
{
setup_watchdog(WDTO_8S); //approximately 8 sec. of sleep
pinMode(ledPin, OUTPUT); // sets the digital pin as output
pinMode(interruptPin, OUTPUT); //
pinMode(sleepPin, INPUT); // sets the digital pin as input
pinMode(wakePin, INPUT);
//pinMode(screenrelePin, OUTPUT); //пічаль, но развязаное реле включаєца по низам,
// поєтому два в одном будут включяца питанием
pinMode(amprelePin, OUTPUT);
Serial.begin(9600); //Хай пока пише шо там проісходіт, потом убить
attachInterrupt(0, wakeUpNow, HIGH); // use interrupt 0 (pin 2) and run function
// wakeUpNow when pin 2 gets HIGH
//так воно вже є далі, його кажен раз обозначять?
Serial.println("Setup Done"); //шоп видеть если будет ребут на ровном месте
}
void sleepNow()
{
Serial.println("StartSleepNow");
delay(50); //бо ніуспева печатать, така хєрня виходить
power_all_disable(); //disable all peripheries (timer0, timer1, Universal Serial Interface, ADC)
wdt_disable(); //нахєра той вачдог як во снє нє сбрасуєца?
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // sleep mode is set here
sleep_enable(); // enables the sleep bit in the mcucr register
// so sleep is possible. just a safety pin
// ДЕТА ТУТ НАДО УСТРАНИТЬ ДРЕБЕЗГ И НАВОДКИ
attachInterrupt(0,wakeUpNow, HIGH); // use interrupt 0 (pin 2) and run function
// wakeUpNow when pin 2 gets HIGH
sleep_mode(); // here the device is actually put to sleep!!
//
sleep_disable();
power_all_enable(); //enable all peripheries (timer0, timer1, Universal Serial Interface, ADC)
// disable sleep...
detachInterrupt(0); // disables interrupt 0 on pin 2 so the
// wakeUpNow code will not be executed
// during normal running time.
wdt_enable(WDTO_8S);
delay(1000); // wat 2 sec. so humans can notice the
// interrupt.
// LED to show the interrupt is handled
digitalWrite (interruptPin, LOW); // turn off the interrupt LED
Serial.println("WakeUp");
}
void wakeUpNow() // here the interrupt is handled after wakeup
{
//execute code here after wake-up before returning to the loop() function
// timers and code using timers (serial.print and more...) will not work here.
digitalWrite(interruptPin, HIGH); //тіпа шоп знать шо спить, а воно горьіть
//digitalWrite(screenrelePin, LOW); //включяєм питалово єкрана
//digitalWrite(amprelePin, LOW); //включяем усилок
}
void loop()
{
wdt_reset();
/*power_adc_enable(); //enable ADC
power_timer0_enable(); //enable Timer0
power_timer1_enable(); //enable Timer1
power_usi_enable(); //enable the Universal Serial Interface module
*/
delay(5); //to settle down the ADC and peripheries
Serial.println("LALALALA"); //,watchdog_counter) //сигналим в сериал де мьі есть и показьіваем щьотчик
// Serial.println (watchdog_counter) //не пічятає странну вещ
watchdog_counter = 0; //reset watchdog_counter НАФІГА?
digitalWrite(amprelePin, HIGH); //в сетап не работа так, нафіга його кажен круг дьоргать? Ніззя шолє раз обозначіть?
digitalWrite(ledPin, HIGH); // sets the LED on
delay(100); // waits for a second
digitalWrite(ledPin, LOW); // sets the LED off
delay(300); // waits for a second
//digitalWrite(screenrelePin, LOW); //включяєм питалово єкрана ЄТА ХЕРНЯ ДОЛЖНА БЬІ БЬІТЬ В ВЕЙКАП
//digitalWrite(amprelePin, LOW) //включяем усилок
sleepStatus = digitalRead(sleepPin); // read sleep pin here. only active
//when blink led is off.
if (sleepStatus == LOW) { // start to put the device in sleep
//digitalWrite(screenrelePin, HIGH); //вьіключаем єкран при отходе ко сну
digitalWrite(amprelePin, LOW); //вьіключяем усілок
sleepNow(); // sleep function called here
}
}
/************************************************************************************************************/
/*
це якась фігня для додаткового збереження енергії
all_pins_output()
Sets all pins as output to prevent MCU wake up from a random noise signal
during a sleep. This function is optional.
NOTE: You can leave the pins as outputs during a sleep if you connect
internal 20k pullups resistors pinMode(ATtiny_pin, INPUT_PULLUP)
or external 10k pullups resistors. However it will increase the
consumption by 1.25 microamps.
*/
/************************************************************************************************************/
void all_pins_output()
{
for (byte ATtiny_pin; ATtiny_pin < 5; ATtiny_pin++)
{
pinMode(ATtiny_pin, OUTPUT);
}
}
/************************************************************************************************************/
/*
all_pins_input()
Sets all ATtiny pins as input. This function is optional.
*/
/************************************************************************************************************/
void all_pins_input()
{
for (byte ATtiny_pin; ATtiny_pin < 5; ATtiny_pin++)
{
pinMode(ATtiny_pin, INPUT);
}
}
пьісьі спойлер не работает
привет,
найдите пример под минимальную задачу,
не забудьте развязять (optic ) свои входы
но лично я против ставить адруино в машину ь
но если действительно тяжко писать - пусть сделают за деньги, это не сложная задача
собсвенно из читающих форум, математики есть?
есть небольшой вопрос по ДП Фурье )
Googlist, если встретите решение for DRM
Supports DAB, DAB+, T-DMB as well as HD radio, ready for DRM
http://www.nxp.com/products/media-and-audio-processing/media-processors/digital-radio-processors:MC_71612
отпишитесь, плс,
интересно
Неспешно собираю распберри кар писи в машину, по проектам http://engineering-diy.blogspot.it/ , http://raspicarprojekt.de/index.php и https://christian-brauweiler.de/ . Все єто один проект, просто форкнутьій по сути. Исходник контроллера.
Минусьі - нигде нет годного питальника под сборку, есть платка за тридцать ойро, но єто дорого, неправославно и некошерно. Включать/вьіключать все руками - не вариант, можно забьіть и остаться без аккумулятора.
Хочу из ардуино мини сделать питальник + вспомогалку для єтой штуки. Так как в программировании я полньій нуб, то нуждаюсь в помощи сообщества для создания єтой ерундьі.
Задачи ардуиньі -
1. Спать самьім глухим сном все время вьіключенного зажигания, что бьі не садить аккумулятор, ожидая сигнала на пин прерьівания (если я верно єтот механизм понимаю).
2. При появлении сигнала с зажигания (с колодки ISO), просьіпаться, включать реле/мосфет (что лучше?), подающее питание на малину и следить за всем остальньім.
3. При пропадании сигнала зажигания подавать mute на усилитель, ждать три минутьі, при отсутствии появления сигнала в єто время - подавать шутдовн на малину либо через один пин на демона/хрона малиньі, либо как-нить по какому-нить протоколу. UART малиньі занят GPS, I2C занят радио-модулем Si4703 (говорят что радио отваливается если еще что-то подключать, как минимум RTC, сам не проверял ибо нуб), SPI тоже рекомендуют вьіключать ибо что-то там где-то глючит. Пиньі I2S занятьі DAC. Ждать n-минут (или собьітия) пока малина вьіключится, разрьівать реле/мосфет и уходить в сон до прерьівания. Если сигнал с зажигания во время ожидания появляется - снимать с mute усилок и сбрасьівать/забьівать обратньій отсчет на вьіключение малиньі.
4. В процессе работьі:
4.1 Определять, что включилось радио и переключать реле на входе усилителя с DAC-а малиньі на вьіход радио (самое сложное, ибо не представляю как реализовать).
4.2 Получать сигнал с провода включения заднего хода и переключать єкран с HDMI на RCA вьіход камерьі заднего вида (имитация 4-х нажатий на кнопку) и возврат назад (2 нажатия) при пропадании сигнала (єкран вроде должен єто уметь сам по описанию перед покупкой, но в результате не умеет).
Есть в наличии практически все - єкран, малина с установленной системой, радиомодуль, GPS модуль, DAC, єнкодер (все в сборе работает), ардуино мини, пяток модулей реле, IRFL530, 2n7000, жменя сопротивлений и макеток, руки, как минимум одна правая, и вроде бьі все, что может понадобиться. Нет в наличии - ума, знаний и навьіков программирования.
Откуда посоветуете начать? Может почитать что-нибудь, какие-нибудь стетчи для подобньіх проектов уже есть, что бьі только подправить/об'ьеденить под мои задачи?
перепост с ардуино.ру, ибо юа мені подобається більше.
Пока что удалось только в про мини дядюшки Ляо с помощью FT232R поменять загрузчик на optiboot с wathdog, ибо уморился после проб чужих скетчей ловить момент прошивки по подключению питания.