Вы хотите освоить современную область электроники и научиться программировать микроконтроллеры?
И не просто научиться программировать, а научиться ПОНИМАТЬ как микроконтроллеры работают НА УРОВНЕ МАШИННЫХ КОДОВ И ОТДЕЛЬНЫХ ЭЛЕКТРИЧЕСКИХ СИГНАЛОВ
Здесь Есть Все, что бы Самому Начать Разрабатывать Собственные Электронные Устройства на Микроконтроллерах
Здравствуйте!
Меня зовут Ceливaнoв Мaкcим. И если Вас интересует электроника, программирование и микроконтроллеры, и Вы хотите пополнить свой багаж знаний в этих областях, то, Вы попали на нужную страницу! Вот уже почти 7 лет, я занимаюсь разработкой электронных устройств на микроконтроллерах. Сначала это было просто хобби, продолжение моего увлечения электроникой еще с детства. Разрабатывал и собирал всю электронику самостоятельно: от идеи до рабочей платы. Никогда не нравилось повторять чужие схемы из журналов или из интернета. Всегда доставляло удовольствие проектирование собственных устройств, с теми функциями, которые нужны мне, а не которые навязывает автор статьи. Все устройства собирал в основном для себя, иногда для знакомых и родственников. А c 2008 года я начал выполнять и индивидуальные заказы. И с тех пор это еще и дополнительный источник дохода.
Но дело тут даже не в деньгах. Сам процесс решения поставленных задач, проектирования принципиальной схемы, написание и отладка программы, разводка печатной платы, ее изготовление и запайка электронных компонентов - это просто безумно увлекательно. Кто пробовал, тот меня поймет.
А сегодня я готов поделиться всем своим личным опытом создания и отладки устройств на микроконтроллерах. И я с гордостью хочу представить Вам мой авторский обучающий видеокурс по программированию микроконтроллеров!
Для кого этот курс?
Прежде всего, я создавал его для начинающих, для тех, кто уже знаком с основами электроники и программирования, кто знает базовые электронные компоненты, собирает простые схемы, умеет держать паяльник и желает перейти на качественно новый уровень, но постоянно откладывает этот переход из-за сложностей в освоении нового материала.
Курс замечательно подойдет и тем, кто только недавно предпринял первые попытки изучить программирование микроконтроллеров, но уже готов все бросить от того, что у него ничего не работает или работает, но не так как ему нужно.
Курс будет полезен и тем, кто уже собирает простенькие (а может и не очень) схемы на микроконтроллерах, но плохо понимает суть того как микроконтроллер работает и как взаимодействует с внешними устройствами.
Что Вы узнаете, изучив мой курс?
Прежде всего, после изучения курса у Вас появиться четкое понимание, как работают микроконтроллеры на самом низком уровне, на уровне машинных команд, на уровне отдельных сигналов на выводах. А это очень многого стоит в наше время, когда программисты хоть и владеют разными языками программирования, но плохо себе представляют, какие процессы скрываются за командами того языка на котором они пишут свои программы.
Вы узнаете, как микроконтроллеры взаимодействуют с различными периферийными устройствами и электронными компонентами. Научитесь грамотно создавать принципиальные схемы и грамотно проектировать печатные платы для своих устройств.
Познакомитесь с популярными протоколами обмена: RS232, UART, I2C, SPI, 1-WIRE, Манчестерский код, кодирование без возврата к нулю. И обращаю внимание, что почти все протоколы будут реализованы программно, то есть в программе будет прописано, в какой момент времени какой уровень сигнала необходимо установить на выводах микроконтроллера, что бы передать либо логическую единицу, либо логический ноль. Благодаря программной реализации протоколов, у Вас появиться очень четкое понимание того, как организованы протоколы обмена данными на самом низком уровне и по какой логике происходит построение протоколов обмена! Более того, Вам вполне по силам будет создать свой собственный протокол обмена!
Вы научитесь использовать различные средства отладки и программирования: от программы виртуального моделирования электронных схем до логического анализатора. Без этих средств сегодня не обходиться ни один серьезный разработчик.
Для того, что бы лучше понимать работу микроконтроллера, я научу Вас программировать на самом низкоуровневом языке – на Assembler'е . Почему на ассемблере, а не на Си? Потому что Ассемблер, в отличие от более высокоуровнего языка Си, дает намного более глубокое понимание работы микроконтроллера. Изучение языка ассемблера дает программисту одно очень важное преимущество - он глубже начинает понимать принцип работы программ, написанных на любых других языках. На этом языке мы вместе напишем множество программ, и разберем работу программных библиотек для работы с различными микросхемами и модулями, а так же изучим популярные протоколы обмена. И обращаю ваше внимание, что все программы и программные библиотеки, которые будут встречаться в этом курсе, написаны мной лично. Подобных библиотек Вы не найдете ни в интернете, ни в книгах!
Но самое главное, что Вы приобретете - это бесценный практический опыт! Потому что все что мы будем изучать, мы ТУТ ЖЕ ПОСЛЕ ИЗУЧЕНИЯ, БУДЕМ ПРОДЕЛЫВАТЬ НА ПРАКТИКЕ!
А какие преимущества у обучающего курса?
Благодаря видео урокам, Вы будете отслеживать каждое мое действие, которое я буду сопровождать подробными комментариями, и Вам не составит труда все проделанное повторить уже самостоятельно. Эффективность обучения по видео урокам НА ПОРЯДОК превышает все другие формы обучения! Как будто, рядом с Вами сидит преподаватель и разъясняет, почему он делает все так, а не иначе.
Во всех примерах я использую только современные, но легкодоступные электронные компоненты и модули. Так что, возможно, Вы откроете для себя новые функциональные компоненты!
Материал в курсе, по большей части, ориентирован на практику программирования микроконтроллеров. То есть, почти вся теория в обязательном порядке будет закреплена на практике. А как известно, самый лучший способ понять теорию - это применить ее на практике.
Такого объема информации на одном диске вы не найдете больше нигде. Здесь есть почти ВСЕ, что бы успешно не только начать осваивать программирование микроконтроллеров, но и значительно дальше других продвинуться в понимании того, как работает вся современная электроника.
Еще никогда изучение такой сложной темы, как микроконтроллеры не было таким простым!
Только представьте себе: сегодня вы кое-что знаете (или почти ничего не знаете) о том, как проектируются и создаются устройства на микроконтроллерах. А всего через месяц после начала изучения курса (хотя я уверен, что и раньше), вы не только сможете самостоятельно писать и отлаживать программы для ваших устройств, но и разрабатывать принципиальные схемы, подбирать нужные компоненты, грамотно проектировать печатные платы и подключать различные внешние модули и устройства. Другими словами, всего за месяц я научу вас выполнять полный цикл производства готового изделия: от идеи до работающего устройства.
Но, Пожалуйста, не думайте, что пройдя курс вы станете профессионалом в области программирования микроконтроллеров. Ни один курс, каким бы замечательным он ни был, и даже 5-летнее обучение в университете этого не сделают. Это просто невозможно, потому что профессионалами становятся учась годами на практике, проектируя, собирая и отлаживая сотни различных проектов.Но я обещаю вам, что вы сможете совершить скачек, от уровня человека, что-то слышавшего про микроконтроллеры, до уровня разработчика средней квалификации.
Что значит уровня «средней квалификации»?
Вот несколько примеров тех устройств, которые Вам вполне будет по силам спроектировать самостоятельно, после изучения курса:
Автоматический регулятор температуры с часами, управляющий нагревательным прибором и выводящий показания на дисплей, регистрирующий почасовые показания температуры во внутренней памяти с возможностью их просмотра на дисплее или на компьютере. Управление регулятором осуществляется или непосредственно с помощью клавиатуры, или дистанционно через USB порт компьютера.
Охранное устройство, собирающее информацию с различных датчиков и контролирующее охраняемый периметр. Снятие и постановка на охрану осуществляется либо при помощи электронных ключей-таблеток, либо дистанционно при помощи пульта управления.
Устройство, принимающее команды с обычного пульта дистанционного управления и осуществляющее управление различными устройствами (двигателями, освещением, нагревательными приборами и др.) по заранее заданным алгоритмам.
И еще раз повторюсь: Самое главное - это не то, что Вы сможете собрать подобную электронику на микроконтроллерах, а то, что Вы получите ОЧЕНЬ ГЛУБОКОЕ и ЧЁТКОЕ понимание того, как все это работает!
Благодаря глубокому пониманию работы микроконтроллеров и различных протоколов обмена данными Вы на порядок лучше будете разбираться в современной электронике, чем те, кто программирует на высокоуровневых языках типа Си, Pascal или вообще использует arduino.
А какие темы будут рассмотрены в курсе?
Всего на диске записано 109 видеоуроков общей продолжительностью 60 часов!
Все темы я условно разбил на семь разделов. Вот краткое содержание этих разделов и скриншоты из некоторых видеоуроков:
Теоретические основы микроконтроллеров. Отличие микроконтроллеров от процессоров, компьютеров, микрокомпьютеров и промышленных контроллеров. Основные этапы эволюции языков программирования от машинных кодов до языков высокого уровня. Выбор ассемблера в качестве основного языка для изучения микроконтроллеров. Выбор среды для написания и отладки программ. Краткий обзор современных микроконтроллеров и средств программирования. Выбор микроконтроллера для изучения.
Краткое ознакомление с архитектурой и командами микроконтроллеров AVR. Разбор файла описаний микроконтроллера. Написание первой программы. Трансляция программы и получение файла прошивки. Разбор содержимого файла прошивки и коррекция работы программы при помощи редактирования отдельных байтов hex-файла. Подробный разбор среды программирования AVR Studio и среды отладки AVR Simulator. Обзор программы PROTEUS.
Подробное изучение архитектуры и команд микроконтроллеров AVR. Регистр статуса. Стековая память. Понятие «срыва стека» и программные ошибки, приводящие к этому явлению. Прерывания микроконтроллера. Внешние и внутренние прерывания. Механизм сохранения адреса возврата в стековой памяти. Представление отрицательных двоичных чисел. Понятие дополнения до 2, дополнения до 1, дополнительного кода и обратного кода. Управление портами ввода-вывода. Считывание и запись байтов из памяти программ и памяти данных. Выражения языка ассемблера, макроопределения ассемблера и подключение библиотечных файлов.
Байты конфигурационных ячеек. Выбор и настройка источника тактирования микроконтроллера. Конфигурирование FUSE-бит микроконтроллера на примере нескольких программаторов. Защита памяти программ и EEPROM памяти от считывания и перезаписи. Подключение внешних электронных компонентов к микроконтроллеру. Обзор наиболее интересных электронных компонентов и модулей. Элементы внешней «обвязки» микроконтроллера и их влияние на стабильность работы. Основные правила трассировки печатных плат.
Работа с EEPROM памятью микроконтроллера. Основные правила по предотвращению потери данных в EEPROM-памяти. Таймеры микроконтроллера. Работа таймера в режиме сброса по переполнению и сброса по совпадению. Прерывания таймера по совпадению и переполнению. Режим широтно-импульсной модуляции. Режим захвата. Понятие сторожевого таймера. Режимы работы сторожевого таймера. Модуль аналогового компаратора. Режимы работы аналогового компаратора и настройка прерываний. Понятие динамического режима индикации. Основные параметры динамической индикации и тонкости аппаратной реализации.
Матричный способ опроса группы механических контактов. Модуль USART микроконтроллера. Конфигурирование модуля на режим асинхронной передачи данных. Связь микроконтроллера и компьютера. Обмен данными через USB. Виды энкодеров. Подключение инкрементного энкодера к микроконтроллеру. Жидкокристаллический символьный индикатор на базе контроллера HD44780. Подключение индикатора к микроконтроллеру. Программная библиотека для управления индикатором. Прием данных, передаваемых по инфракрасному каналу связи. Виды протоколов передачи. Универсальный алгоритм дешифрации принятых посылок.
Шина SPI. Теория передачи данных по SPI в четырех режимах работы. Программная эмуляция шины. Flash-карты памяти формата SD и SDHC. Подключение карт памяти к микроконтроллеру. Чтение и запись данных в посекторном режиме. Шина I2C. Теория обмена данными по шине. Программная эмуляция протокола I2C. Микросхема часов реального времени. Считывание и запись байт данных. Вывод считанных данных на индикатор. Шина 1-WIRE. Теория обмена данными по шине 1-WIRE. Программная эмуляция работы шины. Микросхемы класса iButton. Считывание ID кода микросхем и вывод на индикатор. Микросхема температурного датчика. Команды транспортного и сетевого уровней. Запуск процесса преобразования температуры, считывание и преобразование байт данных. Программный подсчет контрольной суммы CRC-8. Понятие полиномного генератора. Программная реализация полиномного генератора.
Более полный список видеоуроков можно посмотреть на этой странице
Вот некоторые отзывы от тех, кто изучил мой курс
Некоторые из отзывов я специально просил оставить, а другие я взял из переписки через e-mail.
Если захотите оставить отзыв о курсе, то я его тоже опубликую.
"Не так давно решил расширить свои навыки и изучить МК. Довольно
долго искал качественный самоучитель, но, скажу честно, осваивать
с нуля эту сферу было не так легко, поскольку все самоучители
написаны для людей, которым для полного понимания изложенного
необходимо знать электронику на уровне не ниже "среднего" в
интернете попал на страничку данного курса и почитав информацию
решился (хотя в начале цена немного испугала). Если коротко, то ЭТО
ПОТРЯСАЮЩЕ! Когда я просмотрел первые уроки, то был просто
ошеломлен. Проделана гигантская работа! Информация по каждому
разделу разжевывается так четко и подробно, что не понять просто
нереально Кроме того, что подробнейшим образом рассмотрены все
аспекты программирования МК автор не оставляет без внимания
смежные темы, что я считаю одним из важнейших особенностей
данного пособия Не пожалел ни копейки и до сих пор удивляюсь этому
фантастическому по объему труду Советую всем кто интересуется
данной тематикой - это безусловно лучшее пособие на данный момент!
Максим оказывает качественную поддержку давая исчерпывающие
ответы на все вопросы по электронной почте. Огромная благодарность создателю!"
Инженер-энергетик, аспирант ГНУ "НИИ ВИЭСХ- Руцкой Андрей
“Уважаемый Максим! Никогда не думал что обучение может приносить такое удовольствие. Я человек который в основном работал
с периферией и цель моя была вовсе не программирование (в отличии
от моего друга о котором я писал раньше). Но тот заряд, который я уже
получил лишь пройдя 30% обучения превзошел мои ожидания и за это
Вам огромное спасибо! Вы открыли мне глаза не то, что я раньше
игнорировал и теперь понимаю что делал это зря. Хоть и сейчас
придерживаюсь мнения что программирование это удел помешанных,
очень умных и влюбленных в свое дело людей Вам частично удалось
убедить меня что это очень интересно! Замете - это только 30%. Вы доказали это не сложно, у Вас просто талант учителя."
Игорь, Украина. Из переписки по е-mail
“Моя работа состоит в ремонте и обслуживании компьютеров и периферийных устройств. Но меня давно — интересовали микроконтроллеры, и несколько лет назад я реализовал несколько
простых проектов. Когда после долгого перерыва понадобилось срочно
решить простую задачу, все забуксовало. Я с крайним сожалением
понял, что знания по программированию улетучились из моей головы.
Потратить неизвестно сколько времени на повторное изучение или
отказаться от проекта? Оба вариант никуда не годились! В первый раз
у меня ушло несколько месяцев на изучение микроконтроллеров...
К счастью, мне посчастливилось приобрести курс Максима «Программирование микроконтроллеров для начинающих». И я понял,
что мне крупно повезло! Потратив около 30 часов на изучение части
курса и повторение материала, я восполнил пробелы и восстановил
четкую картину в своей голове. И примерно за столько же отладил
программу и сделал макет проекта. Задача была решена быстро!
Надо прямо сказать, что программирование контроллеров - дело не
из простых. Нужно не только подружить программу и «железо»
микроконтроллера, но и добиться согласованной работы с периферией. Это при том, что в книгах и даташитах могут быть ошибки и неточности! Так что порог вхождения в эту область довольно высок. К счастью, курс Максима сильно понижает этот порог и делает программирование контроллеров гораздо более доступным. В курсе
очень много информации из самых разных областей, связанных с
микроконтроллерами. Кроме того, у Максима несомненный
педагогический талант - объяснять сложные вещи просто. Это дорогого
стоит! Есть немало «учителей», которые не столько объясняют, сколько
гордятся своими знаниями. И, ко всему прочему, курсеще и недорогой. Где еще такой найдешь? Аналогов ему действительно нет.
Спасибо за курс, Максим!“
Виктор Геронда, Россия.
“В процессе трудовой деятельности у нас возникла необходимость
автоматизировать некоторые процессы. И если бы это был единичный
случай, то никаких проблем бы не возникло. Можно было бы заказать
схемку у профессионала и вопрос был бы решен. Но, к сожалению,
одним случаем дело не ограничивалось, а постоянно заказывать все
новые и новые разработки было не выгодно. Мне когда-то приходилось сталкиваться с паянием схем, но дело было
давно, и многое я уже подзабыл. Кроме того, мне никогда не
приходилось сталкиваться с икроконтроллерами. Поэтому я полез в
интернет и попытался разобраться во всем самостоятельно. И чем больше я читал, тем страшнее становилось. Я начал понимать,
что программирование микроконтроллеров - это тёмный лес. И тут мне
повезло - я случайно наткнулся на этот курс. Когда я прочитал аннотацию к курсу я понял, что это то, что мне нужно, причём достаточно недорого. Весь курс стоил дешевле стоимости одной разработки схемы контроллера, заказанной у профессионалов! Курс был приобретен. И оказалось, что объем учебных материалов и их качество превзошли
все мои ожидания. Автор - профессионал высокого класса, очень
подробно рассказывает о всех тонкостях работы с микроконтроллерами. Благодаря ему я достаточно быстро разобрался
в работе этих замечательных микросхем и за месяц сделал свой первый
проект. В курсе очень много дополнительных справочных материалов, благодаря которым практически любой человек, у которого есть для
этого желание, может стать профессиональным программистом
микроконтроллеров и создателем на их основе различных схем
автоматов для любого производства.
И одно из самых важных достоинств этого курса это постоянная поддержка автора. Он со знанием дела и очень подробно отвечает на
все вопросы, которые у меня возникают.
Максим, спасибо тебе большое
Александр Лаврентьев, Россия.
Сомневаетесь, нужен ли Вам этот курс?
Без всякого стеснения могу сказать, что данный курс уникален, и аналогов ему нет. Запись всех видеоуроков у меня по времени заняло 1 год. В этот курс я вложил весь свой опыт и очень много сил, тщательно разжевывая каждую деталь, но при этом, стараясь не впадать в крайности и не зацикливаться на объяснении очевидных вещей. Отличительной особенностью этого видеокурса является очень глубокий подход к изучению работы микроконтроллеров на уровне их архитектуры и очень глубокое изучение протоколов обмена данными на уровне отдельных сигналов. Кроме того что значительная часть курса посвящена программной составляющей конструирования устройств на микроконтроллерах, так же немало времени уделяется и аппаратной составляющей: подбору электронных компонентов, составлению принципиальной схемы и правильной трассировке печатной платы. Конечно, при изучении такой сложной темы, как низкоуровневое программирование микроконтроллеров, не может не возникнуть вопросов. И поэтому каждый покупатель курса получает возможность обращаться ко мне со всеми возникающими вопросами по материалам видеокурса. Где Вы еще сможете получить бесплатные консультации по самому широкому кругу вопросов, связанных с программированием микроконтроллеров?
Для тех, кто "в теме"
Мне иногда задают вопросы вроде такого: "Я знаком с микроконтроллерами AVR и умею писать программы на ассемблере для этих микроконтроллеров. Узнаю ли я что-нибудь нового из вашего курса?" Для того что бы уважаемый посетитель этой страницы смог самостоятельно ответить на этот вопрос, чуть ниже я привожу пример небольшой программы на ассемблере для микроконтроллеров AVR. Если Вы разбираетесь в том, как работает эта программа, то в плане понимания работы микроконтроллера, скорее всего, ничего нового не узнаете.
01 /* 02 Для МК tiny2313, mega8, mega88, mega48, mega16, mega32 и других, 03 где spl = 0x3D и ОЗУ начинается с 0x60 04 */ 05 06 .cseg 07 .org 0x00 08 ldi R31,low(m0) 09 ldi R30,byte1((m0>>1) + 1) 10 sts 0x10,R30 11 eor R15,R15 12 lpm 13 sts 0x5F,R0 14 rjmp PC+(m0 - 8) ;Переход на строку 18 15 m1: .dw 0x00,(main)+1,0xFF 16 17 .org 0x100 18 m0: out 0x3D,R16 19 ldi R30,byte1((m1+1)*2) 20 ldi R31,byte2((-(m1+1)*2) - 1) 21 sbc R15,R31 22 sts 0x1F,R15 23 pop R16 24 pop R16 25 pop R16 26 27 lpm 28 sts 0x86,R0 29 adiw R30:R31,1 30 lpm 31 sts 0x85,R0 32 ret ;Переход на строку 35 33 34 main: nop 35 inc R16 36 .db "эПереход на main" ;Переход на строку 34 37 /*В последней строке в двойных кавычках прописать 38 русскими буквами "эПереход на main"*/
А можно ли посмотреть фрагменты из видеоуроков?
Да, фрагменты из видеоуроков посмотреть можно. Сообщите мне (координаты для обратной связи находятся внизу страницы) отрывки из каких видеоуроков Вы хотели бы посмотреть. Я их подготовлю и вышлю Вам ссылку на скачивание. Таким образом, Вы сможете оценить качество материала видеоуроков.