Показаны сообщения с ярлыком Начинающим. Показать все сообщения
Показаны сообщения с ярлыком Начинающим. Показать все сообщения
понедельник, 30 сентября 2013 г.
четверг, 18 марта 2010 г.
AVR. Комнатная Охота на лис.
Справка из Википедии.
«Охота на лис» или спортивная радиопеленгация также известна под аббревиатурой ARDF (Amateur Radio Direction Finding). «Охота на лис» — это состязание между спортсменами, которые с помощью карты местности, компаса и радиоприемника с направленной антенной (3,5 МГц и 144 МГц, он же - "пеленгатор") должны найти 5 радиопередатчиков в лесу, на пересеченной местности. Цель состязания — найти заданное количество «лис» за наименьшее время.
Как-то раз, после N-й бутылки пива:), пришла идея показать собственным детям, что есть охота на лис. Как писали раньше в официальных спортивных документах "в целях развития технического творчества молодежи и пропаганды здорового образа жизни".
(Вообще говоря данный вид спорта ни капли не зрелищный, и соревнования мало кому интересны, кроме самих участников. Короче, как любительские ралли, только со зрелищностью еще хуже).
Дык вот. Значит надо передатчик и приемник, и чтоб это все работало хотя бы в пределах квартиры. И чтоб все это сделать и настроить, нужно много чего, и главное - время. А с ним, как всегда, полная задница. Идея зависла...
Долго ли коротко ли, но заливая прошивку в какой-то очередной свитч, вдруг подумалось - а нафига?
В наше время, когда "космические корабли бороздят просторы большого театра":), проще и быстрее все сделать программным путем.
Ладно, хорош лирики, пора к делу.
Сердце "лисы"(а также голову, лапы и хвост) решено сделать из ATtiny2313, просто потому что давно валялась без дела.
Частота выбрана 1Мгц. Фуфель полный, согласен неглядя, но! Это СВ(MW) диапазон, который есть в любой китайской мыльнице за 100р, и прием ведется на магнитную антенну - а это тоже фуфельная, но направленность.
Короче для игрушки потянет. Осталось попробовать.
Схема проще некуда.

Программа еще проще.
На таймере 0 запускаем генератор несущей. Но неплохо бы промодулировать это звуковой частотой. Ок, модулятор сделаем из таймера 1.
Неплохо бы еще вместо непрерывного писка выдавать что-то осмысленное. Пусть это будет CQ телеграфом. И еще светодиодом мигать в такт:) Итак, вот окончательный вариант.
(Писал на скорую руку, и даж сейчас заметил некоторые ляпы, но править пока не буду, потому что работает)
Писано на С, компилировано WinAVR.
Итоги.
1. Конкретно с "охотой на лис" - болт. Мощность мизерная, частота низкая, пришлось припаять метровую антенну чтоб хоть как-то излучалось.
2. Диапазон зашумлен дальше некуда, в офисе вообще глухо, в квартире лучше - дальность 1-2 метра:) Возможно на природе метров 10 и получится.
Плюс ко всему на 1МГц вещает толи Маяк толи Радио России, так что частоту лучше сдвинуть.
Вобщем поиск лисы больше похож на поиск жучков и закладок - надо бегать по квартире и слушать где появится сигнал, а там уже постепенно локализовывать.
Как оказалось задача не из простых - сигнал распространяется по электропроводке, арматуре и проч. - много ложных целей! :)
3. И главное. Дети два дня с визгом по очереди носились по квартире в поисках пищаще-мигающей коробочки с антенной, пока не кончилась фантазия где ее можно спрятать:) И азарт слегка поутих...
Но время от времени вспоминают, выкапывают из груды игрушек, и все начинается снова...
Короче, считаю что несмотря на свою смехотворность, дивайс с задачей справился на все сто.
зы. Детям 5 и 2 года. Про лис и охоту не вкурили. Они называют это "Поиском Бомбы" :D
«Охота на лис» или спортивная радиопеленгация также известна под аббревиатурой ARDF (Amateur Radio Direction Finding). «Охота на лис» — это состязание между спортсменами, которые с помощью карты местности, компаса и радиоприемника с направленной антенной (3,5 МГц и 144 МГц, он же - "пеленгатор") должны найти 5 радиопередатчиков в лесу, на пересеченной местности. Цель состязания — найти заданное количество «лис» за наименьшее время.
Как-то раз, после N-й бутылки пива:), пришла идея показать собственным детям, что есть охота на лис. Как писали раньше в официальных спортивных документах "в целях развития технического творчества молодежи и пропаганды здорового образа жизни".
(Вообще говоря данный вид спорта ни капли не зрелищный, и соревнования мало кому интересны, кроме самих участников. Короче, как любительские ралли, только со зрелищностью еще хуже).
Дык вот. Значит надо передатчик и приемник, и чтоб это все работало хотя бы в пределах квартиры. И чтоб все это сделать и настроить, нужно много чего, и главное - время. А с ним, как всегда, полная задница. Идея зависла...
Долго ли коротко ли, но заливая прошивку в какой-то очередной свитч, вдруг подумалось - а нафига?
В наше время, когда "космические корабли бороздят просторы большого театра":), проще и быстрее все сделать программным путем.
Ладно, хорош лирики, пора к делу.
Сердце "лисы"(а также голову, лапы и хвост) решено сделать из ATtiny2313, просто потому что давно валялась без дела.
Частота выбрана 1Мгц. Фуфель полный, согласен неглядя, но! Это СВ(MW) диапазон, который есть в любой китайской мыльнице за 100р, и прием ведется на магнитную антенну - а это тоже фуфельная, но направленность.
Короче для игрушки потянет. Осталось попробовать.
Схема проще некуда.
Программа еще проще.
На таймере 0 запускаем генератор несущей. Но неплохо бы промодулировать это звуковой частотой. Ок, модулятор сделаем из таймера 1.
Неплохо бы еще вместо непрерывного писка выдавать что-то осмысленное. Пусть это будет CQ телеграфом. И еще светодиодом мигать в такт:) Итак, вот окончательный вариант.
(Писал на скорую руку, и даж сейчас заметил некоторые ляпы, но править пока не буду, потому что работает)
#define F_CPU 4000000L
#define N 1 //timers prescaler
#define F_MOD 1000 //F tone modulation Hz
#define F_CARR 1000000L //F carrier Hz
#define F_PULSE 1 //F pulse Hz
#define C_MOD ((F_CPU/(2*N*F_MOD)) - 1)
#define C_CARR ((F_CPU/(2*N*F_CARR)) - 1)
#include <avr/io.h>
#include <avr/interrupt.h>
unsigned char Atone = 1;
unsigned char Apulse = 1;
int Kpulse = 0;
unsigned char Ipulse = 0;
unsigned int cod[] = {500,170,170,170,500,170,170,500,500,170,500,170,170,170,500,500};
ISR(TIMER1_COMPA_vect){
Kpulse++;
Atone = Atone ^ 1;
if(Kpulse >= cod[Ipulse]){
Apulse = Apulse ^ 1;
PORTD ^= (1<<PD4);
Kpulse = 0;
if(++Ipulse > 15){
Ipulse = 0;
}
}
if(Apulse == 1 && Atone == 1){
TCCR0B = (1<<CS00);
}
else{
TCCR0B &= (~(1<<CS00));
}
}
int main(void){
DDRD = (1<<DD5) (1<<DD4);
PORTD = (0<<PD5) (1<<PD4);
TCCR0A = (1<<COM0B0) (1<<WGM01);
OCR0A = C_CARR; //freq=Fclk/(2*N*(1+ocr0a))
TCCR0B = (1<<CS00);
OCR1A = C_MOD;
TIMSK = 1<<OCIE1A;
TCCR1B = (1<<WGM12) (1<<CS10);
sei();
while(1){
}
return 0;
}
Писано на С, компилировано WinAVR.
Итоги.
1. Конкретно с "охотой на лис" - болт. Мощность мизерная, частота низкая, пришлось припаять метровую антенну чтоб хоть как-то излучалось.
2. Диапазон зашумлен дальше некуда, в офисе вообще глухо, в квартире лучше - дальность 1-2 метра:) Возможно на природе метров 10 и получится.
Плюс ко всему на 1МГц вещает толи Маяк толи Радио России, так что частоту лучше сдвинуть.
Вобщем поиск лисы больше похож на поиск жучков и закладок - надо бегать по квартире и слушать где появится сигнал, а там уже постепенно локализовывать.
Как оказалось задача не из простых - сигнал распространяется по электропроводке, арматуре и проч. - много ложных целей! :)
3. И главное. Дети два дня с визгом по очереди носились по квартире в поисках пищаще-мигающей коробочки с антенной, пока не кончилась фантазия где ее можно спрятать:) И азарт слегка поутих...
Но время от времени вспоминают, выкапывают из груды игрушек, и все начинается снова...
Короче, считаю что несмотря на свою смехотворность, дивайс с задачей справился на все сто.
зы. Детям 5 и 2 года. Про лис и охоту не вкурили. Они называют это "Поиском Бомбы" :D
среда, 17 марта 2010 г.
AVR. Программатор Громова и PonyProg.
Один из простейших программаторов для AVR это конечно программатор им.Громова.
Имхо, оптимальный вариант для начинающих.
Да, есть и более простые варианты аля 5 проводов в LPT, но не стоит рисковать. LPT порт создание весьма нежное, и спалить его как два байта об асфальт, особенно втыкая туда собственный шедевр электроники, в который еще периодически тыкаешь паяльником :)
Итак программатор Громова. К PC подключается через COM порт, который гораздо труднее спалить, что уже хорошо. Минимум деталей - 7 резисторов и 3 диода. Работает с популярным софтом для прошивки МК типа UniProF и Avrdude...
А вот с PonyProg2000 - болт! Придется пораскинуть мозгами...
Собственно раскидывать-то там особо нечего, всего делов - сравнить схемы Громова и оригинального программатора от Пони. Схемы см. ниже, все ясно как белый день.
Скажу только пару слов за транзистор.
При дефолтных настройках интерфейса в ПониПрог сигнал на ногу RESET контроллера приходит инверсный (т.е. в состоянии покоя "0", при прошивке "1"), получается смешно - МК не шьется, зато в момент прошивки запускается. А фигли нам кабанам - ставим галку Invert Reset в настройках и ... очередной болт, всегда "0". В принципе при таком раскладе МК шьется, но чтобы его запустить надо отключать программатор от схемы. Утомительно. Короче, убираем галку Invert Reset, а инвертируем транзистором.
Вот и все. Enjoy камрадес! :)
ЗЫ. Возможно бага с Invert Reset исключительно в моей версии ПониПрога, другие не пробовал.
ЗЗЫ. И не забывайте, что PonyProg фузы отображает с точностью до наоборот, нежели атмеловские даташиты ;)
Оригинальная схема от Громова

Измененная для PonyProg

Имхо, оптимальный вариант для начинающих.
Да, есть и более простые варианты аля 5 проводов в LPT, но не стоит рисковать. LPT порт создание весьма нежное, и спалить его как два байта об асфальт, особенно втыкая туда собственный шедевр электроники, в который еще периодически тыкаешь паяльником :)
Итак программатор Громова. К PC подключается через COM порт, который гораздо труднее спалить, что уже хорошо. Минимум деталей - 7 резисторов и 3 диода. Работает с популярным софтом для прошивки МК типа UniProF и Avrdude...
А вот с PonyProg2000 - болт! Придется пораскинуть мозгами...
Собственно раскидывать-то там особо нечего, всего делов - сравнить схемы Громова и оригинального программатора от Пони. Схемы см. ниже, все ясно как белый день.
Скажу только пару слов за транзистор.
При дефолтных настройках интерфейса в ПониПрог сигнал на ногу RESET контроллера приходит инверсный (т.е. в состоянии покоя "0", при прошивке "1"), получается смешно - МК не шьется, зато в момент прошивки запускается. А фигли нам кабанам - ставим галку Invert Reset в настройках и ... очередной болт, всегда "0". В принципе при таком раскладе МК шьется, но чтобы его запустить надо отключать программатор от схемы. Утомительно. Короче, убираем галку Invert Reset, а инвертируем транзистором.
Вот и все. Enjoy камрадес! :)
ЗЫ. Возможно бага с Invert Reset исключительно в моей версии ПониПрога, другие не пробовал.
ЗЗЫ. И не забывайте, что PonyProg фузы отображает с точностью до наоборот, нежели атмеловские даташиты ;)
Оригинальная схема от Громова

Измененная для PonyProg
Подписаться на:
Сообщения (Atom)

