Визитной карточной современного общества является человек склонивший голову над освещающим его бледное лицо смартфоном. Жуткая картина. Но, что поделать если электронные гаджеты, де факто, являются неотъемлемой частью нашей повседневной жизни. О компьютерах размером с ладонь, еще лет сорок назад мечтали только продвинутые футурологи, а сейчас каждый школьник расскажет вам о том, что вот-вот телефоны начнут вживлять прямо в сосцевидный отросток. |
---|
Но все гаджеты, какими бы изощренными они не были, требуют для своей работы программное обеспечение. И чем дальше прогресс уходит в сторону автоматизации всего и вся, тем больше потребуется людей, которые должны будут ежедневно «выдавать на-гора» программный код и обслуживать электронное оборудование.
Безусловно, можно прожить всю жизнь параллельно. Заниматься искусством, пользоваться последней версией iPhone и предпочитать розовые тона в одежде. Но для тех, кто хочет быть в фарватере цифрового мейнстрима, необходимо уже с молодых ногтей приучать себя к мышлению в стиле {do while; if else}.
И для этого накрыта большая поляна. Тут тебе и LEGO со своими Education и Mindstorms EV3, и Arduino, и Амперка с матрешками, и еще много других не менее интересных конструкторов. Аж глаза разбегаются. В интернете полно разных образовательных каналов и литературы. Можно также записаться на тематические курсы или кружки... И вроде бы все хорошо грызи гранит программирования и робототехники. Ан нет. Не везде есть кружки технической направленности, не каждый может позволить себе выложить кучу денег за начальный комплект Mindstorms. А ведь есть еще «дети», которым в радиокружок идти как-то уже не по годам. Что-им-то делать?
Намучившись в своё время с самостоятельным изучением контроллеров и посмотрев на счастливые лица ребят, которые попали на Робофест, я решил попробовать сделать небольшой курс по изучению основ программирования микроконтроллеров.
Я, к сожалению, не являюсь профессионалом не в программировании, не в электронике. И все же, имея за плечами опыт самостоятельного изучения предмета, я хотел бы поделится им с другими. И смею надеется на то, что курс будет полезен и понятен всем, и тем, кто делает первые шаги открывая для себя мир радио, и тем, кто, являясь радиолюбителем со стажем намерен приобщиться к цифровым устройствам.
Для практических работ будет использован минимальный набор инструментов и не дорогие, распространённые электронные компоненты, которые можно приобрести на любом радиорынке или заказать на Али.
По времени, изучение материала может занять от трех до шести месяцев. Я планирую составить курс приблизительно из тридцати занятий. Первое вводное, затем два или три урока будет посвящено вопросам подключения микроконтроллера к компьютеру, а также необходимому программному обеспечению. Еще около двенадцати уроков будут посвящены основам программирования на языке С, радиотехнике и составлению алгоритмов. Остальные, изучению «железа» на примере микроконтроллера ATmega-8 от компании Atmel. Каждое занятие будет базироваться на обязательной практической части, которая предусматривает реальную сборку схемы и тестирование программ. Ни каких эмуляторов, только хардкор!
По окончанию курса учащийся будет знать азы радиотехники, программирования и сможет самостоятельно изготавливать несложные электронные устройства в основе которых будет лежать микроконтроллер. Начальных знаний будет достаточно для изучения как других микроконтроллеров, так и для самостоятельного изучения программирования более серьезных устройств.
Т.к. в основе, применяемой мной методики лежат практические занятия, то и материал будет подаваться не так как он изложен в учебниках, а в порядке получения практического опыта. Более того теоретические знания мы будем черпать не из одного источника (учебника), как это делается в учебных заведениях, а сразу из нескольких при этом я буду просить вас на каждом уроке читать об одном и том же, в изложении разных авторов. Если же что-то надо будет посмотреть в интернете, то прошу не останавливаться на прочтении только одной найденной статьи, а почитать по интересующей теме как минимум две или три разные публикации. Это необходимо для того чтобы не только закрепить полученный материал, но и составить более полную картину изучаемой темы. Потому как каждый автор имеет свой взгляд на интересующий нас предмет и по-своему излагает свои мысли.
Если хотите изучить тему глубоко, то читать придется много. К сожалению, люди еще не придумали ни одного более действенного способа качественно передавать свои знания кроме как через книги и практический опыт. И да. Если при чтении этих страниц или книг вам встретятся незнакомые термины, то не стесняемся лезем в сеть за разъяснениями. Белых пятен на карте ваших знаний быть не должно.
Теперь, давайте поговорим о том, какое оборудование и материалы нам понадобятся для дальнейшей работы и как увлекательно мы будем проводить время.
Начнем с компьютера, на котором вы будете писать программы для МК. Т.к. мы ставим цель изучить программирование с минимальными финансовыми затратами, то нам вполне подойдет старенький стационарный компьютер или ноутбук. Главное, чтобы на нем был установлен Windows_XP, или W-7, имелся LPT порт, и было хотя бы пару гигабайт для наших проектов.
Новомодный компьютер, если в нем есть LPT, кончено тоже подойдет. Но я не советую его использовать для обучения потому как если вы что-то перепутаете и LPT порт сгорит. Будет очень обидно.
Программное обеспечение, которым мы будем пользоваться, состоит из двух программ. Первая это последовательный программатор - PonyProg 2000, а вторая среда разработки CodeVisionAVR Evaluation. Обе программы бесплатны, компактны и не требовательны к ресурсам компьютера. CV_AVR вообще-то платная программа, но CodeVisionAVR Evaluation имея ряд незначительных ограничений распространяется бесплатно. Эти программы можно скачать с сайтов разработчиков или в других местах. Лучше всего если вы сможете найти полную версию CV_AVR. В ознакомительных целях, конечно.
Ну а вообще для написания программ для МК фирмы Atmel существует бесплатная среда разработки AVR Studio. Но для начинающих это достаточно сложная и громоздкая программа для изучения которой придется потратить много времени. Лучше всего плавно переходить с CV_AVR на AVR Studio, когда есть базовые знания в вопросах программирования.
Для выполнения практических заданий необходимо будет обзавестись минимальным набором инструментов (плоскогубцы 120мм, бокорезы 120мм, пинцет 150мм, шило, ножницы тупоконечные прямые 140мм, нож-скальпель, небольшой плоский напильник для заточки жала паяльника и паяльник (20…30 Ватт) с медным жалом и подставкой), расходными материалами (сосновая канифоль, припой ПОС-61 трубчатый с канифолью диаметром 1…2 мм) и мультиметром. Прибор может быть любой. Главное, чтобы в нем были три основные функции: омметр, вольтметр и амперметр. Помимо инструментов для занятия вам понадобятся радиодетали и макетная плата со стабилизатором на 5 и 3,3 вольта, а также соединительные провода.
Этот комплект, в который входит стабилизатор, макетная плата и соединительные провода я приобрел на Али за 250 рублей, а все радиодетали купил на радиорынке. Перечисленных ниже радиокомпонентов должно хватить для первых пятнадцати занятий.
1. Микроконтроллер Atmega-8А - 1 шт. Микроконтроллер должен быть строго в DIP корпусе. 2. Резисторы выводные мощностью 0.125 Вт: 100 Ом - 10шт. 300 Ом - 10шт. 500 Ом - 10 шт. 1 кОм -10 шт. 10 кОм. - 10 шт. 100 кОм - 10 шт. 3. Конденсаторы керамические выводные: 100 нф - 10шт. 4. Конденсаторы электролитические:1000 мкф х 10 вольт - 2шт. 5. Светодиоды(можно приобрести и аналоги): L-1154GT зеленый 3мм - 10шт. L-1154ID красный 3мм - 10 шт. L-1154YD желтый 3мм - 10шт. 6. Кнопки тактоваые (tc-3121) - 5 шт. 7. Диод FR-101 - 1 шт. По большому счету подойдет любой диод на 50 вольт или больше, мощностью 1…2 ампера. 8. Реле HLS-14F1L-DC5V-C - 1 шт. Подойдет любое малогабаритное реле с управляющей катушкой на 5 вольт. 9. Транзисторы: КТ814 - 3 шт. КТ815 - 5 шт. 10.Индикаторы светодиодные: CPD-05212SR1/A - 1 шт. E30361-1-K-8-W - 1шт. 11. Энкодер с кнопкой (PEC11R-4215K-S0012) или аналогичный - 1 шт. 12. LCD дисплей Nokia 5110 - 1шт. Такой дисплей на Али стоит 130 руб. шт.
Всё сразу можно не покупать. На первых парах достаточно будет приобрести макетную плату и детали с 1 по 9 позицию. Затем все остальное. Если вдруг, я что-то упустил, то в конце каждого урока буду писать о том, какие детали нам понадобятся на следующем занятии.
Также для изготовления программатора необходимо приобрести:
Разъем DB-25M с корпусом - 1шт. Резисторы 160 Ом - 4 шт. Кабель плоский, FRC-9-28 1,27мм, 9 жил - 1 метр, разъем одноштырьковый BDS1071-1x1, - 5шт. Вилка штыревая 2.54мм 1x10 прямая тип1 DS1021-1x10 -1 шт. Термоусадочный кембрик 2....3 мм. – 200 мм. Термоусадочный кембрик 8...10 мм. – 100 мм.
Изготовлением программатора мы займемся на следующим занятии, а пока необходимо почитать об инструментах, организации рабочего места радиолюбителя, пайке и технике безопасности:
В.Ю. Иваницкий «Советы начинающему радиолюбителю» 1982 год. Страницы 6…25 и 118…126. С.А. Никулин, А.В. Повный «Энциклопедия начинающего радиолюбителя» 2011 год. Страницы 188…234. Также не лишним будет посмотреть в интернете видеоролики по этой тематики. Их там превеликое множество.
Всю литературу, на которую я буду ссылаться придется самостоятельно найти в сети и скачать. Надеюсь, пользоваться «Яндексом», никого обучать не надо. Все добытые книги советую сохранять в одном месте. Мы к ним не раз будем обращаться. Если у кого есть другая литература по программированию и радиоделу, то нужно почитать и её.
Также поищите в интернете статьи и видео уроки по работе с мультиметром. В жизни пригодится. И не обращайте внимания на то, что я рекомендую к прочтению литературу прошлого века. Конечно за это время радиоэлектроника сделала гигантский скачек от лампы до многоядерных процессоров. Но поверьте, в организации рабочих мест, техники безопасности и физических принципах на которых базируется радиотехника, существенно ничего не поменялось. Только ручная дрель стала аккумуляторным шуруповертом, а рукоятки шарнирно-губцевого инструмента стали повсеместно облачать в диэлектрический пластик.
А на сегодня всё. Удачи.
16.04.18
Если вдруг найдете в статье неточности или заблуждения. Напишите мне об этом. Я подправлю.