Какие несколько простых проектов вы можете выполнить, чтобы изучить основы встроенного программирования?[закрыто]

StackOverflow https://stackoverflow.com/questions/111254

  •  02-07-2019
  •  | 
  •  

Вопрос

Для тех, кто хочет изучить основы встраиваемого программирования, какими простыми проектами они могли бы заняться?

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

Платформа на самом деле не имеет значения, как и язык (это может быть C, ассемблер или что-то еще).Смысл в том, чтобы получить идеи для простого проекта, который делает что - то.

Если есть книга, посвященная чему-то подобному, не могли бы вы разместить ссылку на нее?

Это было полезно?

Решение

Я купил Arduino недавно, который легко встал на ноги и начал работать.Это небольшая, довольно недорогая плата под управлением Atmega168 с отключенным вводом-выводом, питанием, USB и другими забавными штучками.Он запускает собственный код на C (как и следовало ожидать от чипа Atmega) и может использоваться для управления схемами с помощью программного обеспечения.

Другие советы

Следующий проект предназначен для CSC460:Курс по операционным системам реального времени в Университете Виктории.Этот проект предназначен для того, чтобы студентам CS, не имеющим знаний о встраиваемых системах, было удобно программировать на микроконтроллерах.

Цель:

Разработайте систему привода датчиков для контроля температуры в помещении.Этот проект научит вас широтно- импульсная модуляция и AD (аналого-цифровое) преобразование.

Части:

  • Один 8-битный AT90USB1287 демонстрационная плата микроконтроллера
  • Один датчик температуры ( на борту AT90 )
  • Один двигатель постоянного тока ( чувствителен к напряжениям от 3,3 В до 5,0 В )
  • Пропеллер или лопасть вентилятора, подходящая к двигателю постоянного тока
  • Один L293D Н-образный мост
  • Один регулятор 5 В

Дизайн:

Эта система будет использовать датчик температуры AT90USB1287 для считывания текущей температуры в помещении и регулировки частоты вращения двигателя постоянного тока (с прикрепленной лопастью вентилятора).Регулируя скорость вращения вентилятора, вы теоретически охладите помещение.

Датчик температуры уже встроен в AT90USB1287 и подключен к порту AD микроконтроллера.Вам необходимо ознакомиться с техническим паспортом данного микроконтроллера и написать код для настройки и опроса датчика температуры.

Двигатель постоянного тока будет управляться с помощью широтно-импульсной модуляции.ШИМ может управлять скоростью подключенного двигателя постоянного тока, изменяя рабочий цикл ШИМ-сигнала.Для получения дополнительной информации о PWM обратитесь к большому и подробному ( возможно, немного многовато ) технический паспорт для AT90USB1287.

Как только у вас заработают датчик температуры и двигатель постоянного тока, вы завершите этот проект.H-мост L293D и регулятор 5 В можно использовать для увеличения мощности, подаваемой на двигатель постоянного тока (с 3,3 В на борту по сравнению с 5,0 В от H-моста).

По моему опыту, во встроенных системах на начальном этапе обучения возникает, если хотите, "горб", преодолеть который может быть непросто, но как только вы это сделаете вы будете разочарованы, если первый проект, который вы выберете, будет очень простым.

Есть некоторые первоначальные инвестиции в инструменты разработки (т.е.чипы и программатор по самому минимуму).Создание очень простого проекта не позволит вам исследовать более полезные области чипа, следовательно, объем знаний, которые вы получите, будет непропорциональен количеству ресурсов, которые вы инвестируете;как по времени, так и по деньгам.

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

Я бы также посоветовал НЕ использовать что-то вроде BASIC STAMP или даже Arduino, поскольку эти устройства не научат вас истинным навыкам, необходимым для встроенного программирования.Это скорее платформа, на которой будет выполняться ваш высокоуровневый код.Вы используете улучшенную версию такой платформы, чтобы прочитать этот пост, ваш компьютер;вряд ли это встроенное устройство.С другой стороны, они избавят вас от множества хлопот, если вы не знакомы с электроникой.

Приобретите 8-битный чип производства Microchip или ATMEL, оба очень популярны и относительно дешевы для начала, приобретите программатор и, возможно, демонстрационную плату, демонстрационная плата подойдет, если вы не знакомы с электроникой, для одного из этих чипов.Самое главное, прочтите прилагаемые спецификации и попытайтесь создать что-нибудь умеренно полезное.Программа на C или ассемблере.ATMEL намного лучше справляется с компиляторами и поддержкой C.В конечном счете вы будете рады, что не тратили свое время на изучение платформы, которую никто в здравом уме не стал бы использовать для коммерческого продукта, и вы получите лучшее представление об ограничениях встроенных систем, поскольку нет лучшего источника информации, чем технический паспорт.

Есть довольно хорошая книга на эту тему под названием "Embedded Linux Primer" (автор - Кристофер Халлинан).Эта книга познакомит вас с азами разработки программного обеспечения на встраиваемой платформе Linux.Соедините это с относительно недорогой системой разработки, и результат достигнет предела.

Возьмите экземпляр журнала Circuit Cellar magazine (действительно хороший ресурс по встраиваемому программному обеспечению и оборудованию), и вы найдете десятки объявлений о небольших системах, которые должны позволить вам быстро начать работу.

Простым проектом (похожим на Hello World) было бы создание светодиодного чейзера.Вам нужно:от 6 до 10 светодиодов и простой переключатель.

Каждый раз, когда вы нажимаете на переключатель, светодиоды мигают по-разному.Какой - то узор:
1 Светодиод, прокручивающийся вправо
1 Светодиод прокручивается влево
Чередующиеся светодиоды
...

Из этого вы узнаете о выводах ввода-вывода, о том, как использовать таймер, возможно, как использовать прерывание для переключения (или вы могли бы использовать опрос).

Лично я бы соорудил простой звукозаписывающий аппарат.Давайте попрактикуемся в использовании АЦП и ШИМ-волнового выхода.Также это научило бы, как модулировать код, чтобы обеспечить управление записью и воспроизведением.Единственным ограничением является объем памяти, но даже выборка размером в 1 кБ должна быть увлекательной.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top