18+
реклама
18+
Бургер менюБургер меню

Чарльз Платт – Электроника для начинающих (2-е издание) (страница 79)

18

Микроконтроллеры есть во всех современных автомобилях, там они выполняют как сложные задачи, например обеспечивают синхронизацию зажигания в двигателе, так и совсем простые – выдают звуковое оповещение, если вы не пристегнули ремень безопасности.

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

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

Микроконтроллер: да или нет?

Микроконтроллер универсален и многофункционален, однако в одних ситуациях он подходит лучше, чем в других. Он идеален для выполнения логических операций типа «если происходит это, то делаем то-то, а если то, то делаем что-то другое», но он увеличивает сложность и стоимость устройства, и конечно же, подразумевает основательный процесс обучения: чтобы программировать микроконтроллер, вы должны освоить компьютерный язык.

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

Но программа может функционировать не совсем так, как нужно вам. Вам придется ее модифицировать – и вы вернетесь назад к ситуации, когда вам необходимо понимать язык, чтобы по максимуму задействовать микросхему.

Написать программу для среды Arduino в принципе несложно, здесь многое зависит от конкретной задачи. Тем не менее, это не одношаговая операция. Программный код необходимо проверить, а процесс отыскания и устранения ошибок может занять много времени. Одна маленькая ошибка будет приводить к непредсказуемым результатам или вообще блокировать работу всей системы. Вам понадобится заново вычитать код, исправить ошибки и попробовать еще раз.

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

В любом случае, чтобы выяснить, хотите ли вы заниматься микроконтроллерами, нужно поэкспериментировать с ними самостоятельно.

Одна плата и несколько микросхем

Я начну с основного вопроса. Что такое Arduino? Если вы считаете, что это микросхема, то вы не вполне правы. Каждый продукт с брендом Arduino состоит из небольшой печатной платы, спроектированной компанией Arduino, и содержит микроконтроллер, произведенный абсолютно другой фирмой. На плате Arduino Uno (рис. 5.79) установлен микроконтроллер Atmel ATmega328P-PU. Плата содержит также стабилизатор напряжения, несколько гнезд, которые позволяют вам подключить провода или светодиоды, кварцевый генератор, разъем для подключения питания и USB-адаптер, который реализует обмен информацией между платой и компьютером.

Если вы покупаете микроконтроллер ATmega 328P-PU отдельно у поставщика компонентов, он обойдется вам менее чем в 1/6 от розничной стоимости платы Arduino с той же микросхемой. Почему вы должны столько переплачивать, чтобы получить эту маленькую печатную плату? Ответ заключается в том, что проектирование платы и разработка программного обеспечения для нее не такая уж простая задача.

Рис. 5.79. Плата Arduino Uno, оснащенная микроконтроллером ATmega 328P-PU компании Atmel

Это программное обеспечение обозначают буквами IDE (от англ. integrated development environment – интегрированная среда разработки). После того как вы установите ее на свой компьютер, удобная пользовательская среда позволит вам написать программу и скомпилировать ее: это означает, что среда преобразует инструкции на языке С (который понятен людям) в машинный код (который понятен микросхеме Atmel). Затем вы запишете код в микросхему ATmega.

Если для вас это пока не слишком понятно, подытожу сказанное:

• Arduino – это печатная плата, в которую встроен микроконтроллер Atmel.

• Программное обеспечение IDE компании Arduino позволяет вам написать программу на вашем компьютере.

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

• Среда IDE отправляет этот код микросхеме Atmel, которая хранит его.

Как только ваш код окажется в микросхеме, плата Arduino становится ей больше не нужна. Теоретически вы можете вынуть микроконтроллер ATmega328 и использовать его где-либо – на макетной плате или в другой схеме, где предусмотрен микроконтроллер. Микросхема будет по-прежнему выполнять запрограммированную работу, потому что код хранится в ней.

В реальности же этому препятствует ряд мелочей, о них вы можете узнать, прочитав очень хорошую книгу под названием Make: AVR Programming («Программирование микроконтроллеров серии AVR») Эллиота Уильямса (Elliot Williams). Она расскажет вам, как на самом деле осуществить «пересадку» микросхемы ATmega.

Если вы научитесь это делать, то последствия будут значительными. Вам понадобится лишь одна плата Arduino, и вы сможете очень дешево покупать микросхемы Atmel. Установите микроконтроллер в панельку на плате, запрограммируйте его, выньте и используйте в другом устройстве. Вставьте в плату другой микроконтроллер, передайте в него другую программу и задействуйте в другом проекте.

Все достаточно просто, если у вас версия Arduino Uno, где микроконтроллер – это микросхема, предназначенная для установки в монтажные отверстия. Вы можете вынуть ее из панельки миниатюрной отверткой и заменить на другую микросхему, вставив ее двумя пальцами. Существует версия Arduino Uno с впаянным микроконтроллером, установленным методом поверхностного монтажа. В этом случае поменять микросхему нельзя.

Нужно ли остерегаться подделок?

Теперь, когда я объяснил основы, расскажу о том, как все настроить.

Хотя существует множество моделей Arduino, здесь я отдал предпочтение плате Arduino Uno, и мои инструкции применимы к версии R3 и более поздним.

Вы можете приобрести плату Arduino у многих поставщиков, поскольку она была спроектирована и продается как продукт «с открытым исходным кодом», позволяя каждому желающему изготовить ее копию, подобно тому как любой производитель может выпустить таймер 555 (хотя доводы здесь немного другие).

Компании Mouser, Digikey, Maker Shed, Sparkfun и Adafruit – все они продают оригинальные продукты Arduino. В интернет-магазине eBay, тем не менее, вы можете встретить нелицензированные копии плат Arduino за треть их цены. Идентифицировать такой продукт можно по отсутствующему логотипу Arduino. Чтобы отличить оригинальную плату от имитации, посмотрите на логотип, изображенный на рис. 5.80.

Нелицензированные платы полностью законны. Это не покупка пиратского программного обеспечения или музыки. Единственная отличительная черта, контролируемая компанией Arduino, – это ее торговая марка, которую не могут использовать другие производители. (Хотя на деле некоторые мошенники присваивают этот логотип незаконно, но вы поймете, что такие платы не являются оригинальными, потому что они очень дешевые.)

Рис. 5.80. Только платы, произведенные или лицензированные компанией Arduino, могут иметь такой логотип

Замечание

Из-за спора между компанией Arduino и ее бывшим производителем подлинные платы Arduino за пределами США продаются под названием Genuino.

Будет ли плата-имитация работать надежно? Я стал бы доверять платам, которые выпущены компаниями Adafruit, Sparkfun, Solarbotics, Evil Mad Scientist и некоторыми другими. Я не могу купить и перепроверить их все, поэтому вам придется составить собственное мнение об этом, основываясь на отзывах других покупателей и вашем общем впечатлении о поставщике. Но помните о том, что вам будет достаточно одной платы для программирования множества микросхем Atmel. Поэтому, возможно, доплата за приобретение подлинного продукта Arduino не станет такой уж разорительной. Приобретая фирменное изделие, вы помогаете компании продолжать разработку новых продуктов.

Лично я купил оригинальную плату Arduino.

Настройка среды Arduino

Будем считать, что к настоящему моменту вы уже купили плату Arduino Uno или ее копию, которую вы считаете надежной. Вам понадобится также стандартный USB-кабель с разъемами типа А на одном конце и типа В на другом, как показано на рис. 5.81. Обычно он не идет в комплекте с платой. Если у вас нет запасного кабеля, то можете взять его от другого устройства, пока выполняете настройку и начальную проверку. Дешевые кабели можно найти в онлайн-магазинах, таких как eBay.

Рис. 5.81. Кабель для подключения платы Arduino к USB-порту компьютера

У вас уже есть плата и кабель, теперь нам понадобится программное обеспечение IDE. Зайдите на сайт Arduino (http://www.arduino.cc) и выберите вкладку Download («Загрузка»). Затем выберите версию среды IDE, которая соответствует вашему компьютеру. В настоящее время доступны версии для OS X, Linux и Windows. Я буду использовать версию 1.6.8, но мои инструкции должны быть применимы и к более поздним версиям. Скачать программное обеспечение можно бесплатно.