Схемы, программы, прошивки Перспективные проекты на МК

Discussion in 'Электроника и Фрикинг' started by presidentua, 13 Nov 2007.

  1. presidentua

    presidentua милиционер Античата

    Joined:
    4 Nov 2007
    Messages:
    305
    Likes Received:
    236
    Reputations:
    15
    Микроконтроллеры AVR от Atmel.Введение

    Что такое микроконтроллеры в общих чертах отлично рассказал MegaDeth (респект). Но должна быть свобода выбора.
    Микроконтроллеры AVR и PIC приблизительно равны по параметрам. Но все же AVR немного лучше (с моей субъективной стороны): дешевле, производительнее, ПРОЩЕ в освоении.
    Например, есть такая модель ATmega8. Цена - 1,5у.е. Частота - 16 МГц. 32 8-ми битных регистра общего назначения. 1 Кб оперативной памяти. 512 байт флеш памяти, 8 Кб памяти под программу. Плюс АЦП, ЦАП и еще много полезной мелочи. И к тому же 23 линии ввода вывода. А еще можно перезаписывать программу ну почти неограниченное количество (10 000 раз).

    Теперь самое приятное - для его программирование кроме софта нужно лишь 5 проводков. Не надо паять никакого программатора, просто подключаем к LPT пятью проводками.

    Программировать лучше на С. Дока на avr123.nm.ru и там же ссылка на компилятор http://www.hpinfotech.ro/cvavre.zip
    Неплохой консольный программатор здесь - http://ln.com.ua/~real/avreal/http://ln.com.ua/~real/avreal/

    Ссылки:
    atmel.com - сайт производителя, документация на английском
    gaw.ru - документация на русском
    avr123.nm.ru - отличный самоучитель.

    Теперь жду вопросов. И есть предложение - сделать маленький девайсик с нуля. С полным разбором каждого элемента. Ну только нужны предложения - полезные и простенькие.

    ПС: На AVR реализовал: систему управление температурой (обогреватель в комнате), светильник с изменением яркости в зависимости от освещение (чтобы ночью клавиатуру было нормально видно), шахматные часы, и на диплом систему поиска жучков и еще много никому не нужных мелочей. :)
    ПСС: Предложение для MegaDeth - можна сделать один и тот же девайс но паралельно на AVR и PIC?
     
    10 people like this.
  2. Animal

    Animal Elder - Старейшина

    Joined:
    19 Oct 2007
    Messages:
    221
    Likes Received:
    89
    Reputations:
    6
    Отлично! Развивается здоровая конкуренция! :)) Как человек свято преданный пикам, AVR никогда не занимался, так что будет очень интересно посмотреть.
    Для начала хотелось бы увидеть тот же "Hello, World!", как и в параллельной теме MegaDeth - несколько светодиодов мигающих с кратной частотой. Пожалуйста схему в студию, текст программы на С. Убедительная просьба давать подробные комментарии к строкам, связанным с конфигурацией контроллера.
     
  3. presidentua

    presidentua милиционер Античата

    Joined:
    4 Nov 2007
    Messages:
    305
    Likes Received:
    236
    Reputations:
    15
    Далее

    Все что дальше буду писать относится к микроконтроллеру ATmega8.
    Надеюсь скачали компилятор (ссылка выше) и таблетку к нему. Если таблетку не найдете, то пишите – помогу. (кстати, модераторы, может разрешите мне прикреплять файлы, без этого неудобно :)).
    Итак, запускаем CodeVision. Создаем новый проект, дальше нас спрашивают – будем ли мы использовать мастера. Конечно, жмем ОК. Дальше в вкладке Chip выбираем наш МК, а в поле частота вводим 1 МГц (по умолчании внутренний генератор настроен именно на 1 МГц). Дальше идем на вкладку Ports – и всем линиям на порте В указываем – out. Дальше выбираем файл-генерировать, сохранить и выход. Вводим имена файлов и постоянно жмем ОК.
    Ухты! Как много кода сгенерировано. Но на самом деле его можна очень сильно урезать.
    Теперь на основе этого кода напишем программу для для мигания светодиодами. Тоесть 8 светодиодов, горят через один и раз в секунду меняются местами - эфект бегущих огоньков.
    Текст программы:
    Code:
    //будем использовать МК mega8
    #include <mega8.h>
    //нужны функции для роботы с задержками
    #include <delay.h>
    
    void main(void)
    {
    //порт B будет работать на выход
    DDRB=0xFF;
    //в порт B записываем 10101010b
    PORTB = 0xAA;
    while (1)
          {
    //инвертируем значения на выходе порта B
          PORTB ^= 0xFF;
    //ждем одну секунду
          delay_ms(1000);
          };
    }
    Схему подключения рисую, опубликую позже
     
    1 person likes this.
  4. presidentua

    presidentua милиционер Античата

    Joined:
    4 Nov 2007
    Messages:
    305
    Likes Received:
    236
    Reputations:
    15
    Схема

    [​IMG]
    какая гадость рисовать в Paint, но под рукой ничего другого нету.

    Квадратик красного цвета нужно повторить к каждой линии порта В - PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7

    И хорошая новость, что никакой другой обвязки не надо. После подачи питание МК сразу начнет работать на частоте 1Мгц.

    На днях помещу программатор, чтобы можна было каждому попробовать.

    Пишу с расчетом на какие то минимальные знание в МК, но если будут вопросы или что-то не будет получатся отвечу.
     
  5. Animal

    Animal Elder - Старейшина

    Joined:
    19 Oct 2007
    Messages:
    221
    Likes Received:
    89
    Reputations:
    6
    Зачетно! Пока все понятно. :) На счет схем: я рисую в P-CADе 2004. Помоему, если контроллерами заниматься, к его изучению все равно придешь в конце концов. Давай, presidentua, ждем продолжения! ;)
     
    1 person likes this.
  6. presidentua

    presidentua милиционер Античата

    Joined:
    4 Nov 2007
    Messages:
    305
    Likes Received:
    236
    Reputations:
    15
    Согласен P-CAD нужен будет. Но сейчас в основном пользуюсь Proteus. Хотя это отличный симулятор, но принт-скрин дает отличные рисунки. Выше же его не использовал чтобы показать внешнюю обвязку полностью ( Proteus некоторые вещи сам добавляет ).

    ПС: Ночью размещу программатор. Ждем-с-с-с
     
    1 person likes this.
  7. MegaDeth

    MegaDeth Elder - Старейшина

    Joined:
    8 Nov 2006
    Messages:
    192
    Likes Received:
    72
    Reputations:
    13
    presidentua, чуваккк =))) рад видеть новых микронотроллерщиков =)))))))
    я так понимаю высоковольтное программирование?...+12в? не ну я знаю есть фича такая что подвод питания, перевод в режим программирвания, данные, такт, масса - 5 проводов всего (собсна больше и ненадо, протоколы одинаковые то =))) )
    но я бы советовал резисторы воткнуть на 4,7 Ком...
    и вообще юзать LVP (Low Voltage Programming)
    я разрабатываю девайс сейчас "мигающее сердце" на светодиодах... я взял мощный контроллер с 22 линиями, чтобы отдельным светодиодом можно было управлять без заморочек с разширителями ввода вывода, ктомуже ШИМ аппаратный есть. контроллер PIC16F873A... это конечно как по мухе из пушки но я хотел деффке на денюху подарить - всеравно не успел :D
    кстати хороший подарок на 8 марта будет =)))
    я печатку 10 раз переделывал. я решил что небуду играничивать ток светодиодов резисторами, пусть ярко горят, но контроллер может не выдержать (для всего порта макс 25 Ма) светодиод один жрет 3 Ма примерно... вообще их дофига и больше но если брать слаботочные и яркие то разоришся =)))
    вывод - ставить транзисторные ключи...
    вот такая сумашедшая идея у меня =))))))))
    еще у меня в задумках просто сделать Блок управления аудиомикросхемами (TDA 7313, аудиоконтроллер. по I2c управляется, регулирует громкость, бас,тембр, балланс двух своих каналов) наподобие того что у мя ща усилке но усовершенствовать надо, например экран цветной с часами и пр.
    в мечтах у мя собрать ЦАП и юзать цифровой звук (S\PDIF)
     
    1 person likes this.
  8. Animal

    Animal Elder - Старейшина

    Joined:
    19 Oct 2007
    Messages:
    221
    Likes Received:
    89
    Reputations:
    6
    Да, Мега, просторное ты поле деятельности задумал. Молодец! :)
    Ты давай в пиковскую тему возвращайся! Ато переметнулся на сторону вероятного соперника, понимаете ли. :)))
     
    1 person likes this.
  9. Animal

    Animal Elder - Старейшина

    Joined:
    19 Oct 2007
    Messages:
    221
    Likes Received:
    89
    Reputations:
    6
    Возникла идея обсудить кого какие проекты интересуют. Что-бы хотелось сделать или посмотреть как это сделают другие :). Особенно интересна возможность применения в сфере соответствующей направленности сайта. Короче, теме нужен КРЕАТИВ! :))
    Полет фантазии не ограничен! Я, например, давно мечтаю сделать робота-шпиона: машинка на колесах с камерой и микрофоном. :)
     
    1 person likes this.
  10. presidentua

    presidentua милиционер Античата

    Joined:
    4 Nov 2007
    Messages:
    305
    Likes Received:
    236
    Reputations:
    15
    Интересуют много интересных тем, но к сожалению на реализацию одних не хватает времени, а на других не хватает УМА.
    Например:
    Замок на отпечатках пальцев.
     
    1 person likes this.
  11. presidentua

    presidentua милиционер Античата

    Joined:
    4 Nov 2007
    Messages:
    305
    Likes Received:
    236
    Reputations:
    15
    Программатор

    [​IMG]
    Просто, не правда ли. Но к тому же я никогда не использовал ограничительных резисторов, но вам советую использовать. Линию РЕСЕТ тоже не использую - на схеме ставлю кнопочку которая заземляет РЕСЕТ, тоесть нужно программировать - нажал кнопку и потом запустил программу на ПК. Программируется при питании 5 вольт, у меня все от ЮСБ.

    На это вводная квази-статья о АВР закончена. Целью не было рассказать все, а лишь показать простоту и то что КАЖДЫЙ может попробывать сделать интересные девайсы и это действительно просто (почти :)). А дальше читайте специальную литературу. Ее в нете полно.

    Теперь жду лишь вопросов. Если будут какието проблемы спрашивайте. Пожелание тоже принимаются, только не очень глобальные :)
     
    1 person likes this.
  12. presidentua

    presidentua милиционер Античата

    Joined:
    4 Nov 2007
    Messages:
    305
    Likes Received:
    236
    Reputations:
    15
    MegaDeth, ты что мысли читать умеешь. Я уже месяц собираюсь сделать для девченки сердце, но никак не начну. Я хотел сделать Сердце которое стучит и мигает, но частота его "биения" зависит от расстояния к ближайшему обьекту. Тоесть если девченка подходит к сердцу, то оно начинает чаще биться. А если берет в руки, то играет какую-то мелодию. Давай обьединимся и сделаем какой-то симбиоз из наших идей, только с разными МК. Заведем тему и будем пошагово раздумывать реализацию программирование, схемы и другое. Конечно за поддержки Animal (
    и других форумчан.

    Что думаешь?
     
  13. Animal

    Animal Elder - Старейшина

    Joined:
    19 Oct 2007
    Messages:
    221
    Likes Received:
    89
    Reputations:
    6
    Епт! Ничего себе ты загнул! Может для начала на i-button? :)
     
  14. presidentua

    presidentua милиционер Античата

    Joined:
    4 Nov 2007
    Messages:
    305
    Likes Received:
    236
    Reputations:
    15
    Для реализации замка на i-button надо аж где-то 10 строчек кода (при использовании стандартных библиотек). Это очень простая задача которая решается за один вечер. Другое дело отпечатки пальцев.

    Я над этим много работал, хотел на диплом магистра сделать. Нашел классный датчик от фирмы Atmel - AT77101b. Датчик почти все делает сам и картинку передает через параллельный интерфейс. Дальше можем через МК передать на комп. И проводить там уже анализ картинки. Если сравнение делать по всем правилам дактилоскопии, то это очень сложная робота (очень-очень). Но что нам мешает сравнивать просто картинки, или их части. Нам не надо идентифицировать тысячи людей. Надо лишь узнать одного-двух - а это вполне реализуемо.

    Но меня остановило лишь наш украинский рынок радиоелементов. У меня нет таких слов чтобы его охарактеризовать. Вот такая хня.

    ПС: Если у кого-то есть возможность приобрести этот датчик, то очень прошу свяжитесь со мной, обговорим, расчитаемся. Буду должен до конца жизни.
     
  15. TOT_CAMbIY_IIAPEHb

    TOT_CAMbIY_IIAPEHb New Member

    Joined:
    16 Nov 2007
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    хехе. а я мечтаю сделать себе на отдельном диске подобие ИИ %-)
     
  16. Animal

    Animal Elder - Старейшина

    Joined:
    19 Oct 2007
    Messages:
    221
    Likes Received:
    89
    Reputations:
    6
    А что такое "ИИ"?
     
  17. presidentua

    presidentua милиционер Античата

    Joined:
    4 Nov 2007
    Messages:
    305
    Likes Received:
    236
    Reputations:
    15
    ИИ - типа искуственный интелект. :)
    Это еще более грандиозная идея чем с отпечатками пальцев :)))))))))))))
     
  18. presidentua

    presidentua милиционер Античата

    Joined:
    4 Nov 2007
    Messages:
    305
    Likes Received:
    236
    Reputations:
    15
    Еще идея. Подключить датчик алкоголя к микроконтроллеру и три лампочки. Повесить это устройство на воротник и идти на пьянку. Зеленый свет - трезвый. Желтый свет уже пьяный, но не очень. И красный - харе пить, а то к дому не дойдешь. :)))))))

    Кстати цена устройства будет около 5 баксов.
     
  19. MegaDeth

    MegaDeth Elder - Старейшина

    Joined:
    8 Nov 2006
    Messages:
    192
    Likes Received:
    72
    Reputations:
    13
    не, насчет "подходить" нереально. я видел что если 2 сердца подносиш к другдругу то это да... в руки берешь - сенсорные контакты делать можно, но если сделать большие по площади то оно по любой причине бедт моргать...
    много нерешеных проблем с питанием. я посчитал 300Ма - батарейки 9В ненадолго хватит... можно сделать маленький импульсник (не больше спичечного коробка получается) но надо чтобы было 1000000% безопасно и никаких там 220 чтобы можно было юзать как ночник.
    не решен вопрос с корпусом, не подаришь же плату стеклотекстолитоваю гы =)))

    мелодия - куда ты ее совать будеш?
    ЦАП делать еще гы? кажется приятна будет если просто делать "мигалку".
    печатку еще уже успел неско раз переделать, хреновай я художнег :((((
     
    1 person likes this.
  20. presidentua

    presidentua милиционер Античата

    Joined:
    4 Nov 2007
    Messages:
    305
    Likes Received:
    236
    Reputations:
    15
    Avr

    насчет питания - может использовать ЮСБ (бесопасно), что-бы не сильно думать о экономии. Хотя там ограничение 100 мА. Тоесть нужно будет использовать экономичные светодиоды. А можна соединить к корпусу непосредственно - к контактам где 5 вольт даже при выключении компа.

    Корпус: Можна плату поместить в коробку, типа подставка, а все светодиоды аккуратно на оргстекле в виде сердца.

    Мелодия: маленькую в МК можно поместить. Типа ряд частота и время играния этой частоты.

    ЦАП: можно использовать встроенный, его качества для нашей цели хватит с головой.

    А вот с "приближением" действительно проблема. А излучать ультразвук и оценивать время его "возвращения"?