Лишь проделав всю эту трудоемкую работу, можно добиться желаемого результата. По этой причине лично я считаю, что применять микроконтроллер целесообразно, если только ваши ожидания реалистичны.
В любом случае, чтобы выяснить, хотите ли вы заниматься микроконтроллерами, нужно поэкспериментировать с ними самостоятельно.
Одна плата и несколько микросхем
Я начну с основного вопроса. Что такое Arduino? Если вы считаете, что это микросхема, то вы не вполне правы. Каждый продукт с брендом Arduino состоит из небольшой печатной платы, спроектированной компанией Arduino, и содержит микроконтроллер, произведенный абсолютно другой фирмой. На плате Arduino Uno (рис. 5.79) установлен микроконтроллер Atmel ATmega328P-PU. Плата содержит также стабилизатор напряжения, несколько гнезд, которые позволяют вам подключить провода или светодиоды, кварцевый генератор, разъем для подключения питания и USB-адаптер, который реализует обмен информацией между платой и компьютером.
Если вы покупаете микроконтроллер ATmega 328P-PU отдельно у поставщика компонентов, он обойдется вам менее чем в 1/6 от розничной стоимости платы Arduino с той же микросхемой. Почему вы должны столько переплачивать, чтобы получить эту маленькую печатную плату? Ответ заключается в том, что проектирование платы и разработка программного обеспечения для нее не такая уж простая задача.
Это программное обеспечение обозначают буквами 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.