22.12.2009

Уроки Wiring (1)

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

Урок 1. Из чего состоит Arduino?

Итак, вы собрались поразить мир невероятным электронным устройством и выбрали в качестве платформы Arduino. Но вот вопрос - а что у него, собственно, внутри?

Наверное, вы уже поняли, что на панельке возвышается "сердце" системы - микроконтроллер фирмы ATMEL ATmega328P-PU (иногда это может быть и ATmega168-20PU, и даже - ATmega8-16PU, пока для простоты считайте, что они отличаются лишь максимально возможным размером программы). Если ваши задумки не помещаются в ATmega328P, не паникуйте! Для этого придумали Arduino Mega.

Вернемся к тому, что расположено на плате:



  1. Разъем USB (квадратный, или B-типа) - основной канал общения Arduino с компьютером. Почти всю работу выполняет припаянный справа многоногий чип FT232RL, представляясь компьютеру в виде виртуального COM-порта. Во время обмена моргают светодиоды Rx и Tx. Кроме того, с этого же разъема Arduino будет получать стабилизированное питание +5В - именно от него питается микроконтроллер ATmega.
  2. Разъем питания 2.1/5.5 - альтернативный способ подать питание на Arduino, если под рукой нет компьютера с разъемом USB (c такой ситуацией приходится сталкиваться чаще, чем можно подумать). Когда будете подбирать подходящий блок питания, обращайте внимание на то, что плюс должен быть в центре, а напряжение - в пределах 7..20 Вольт. Идеально было бы питать его от 9 Вольт, иначе стабилизатор начинает ощутимо нагреваться. Часто переносные проекты питают от компактного и относительно недорогого элемента "крона" (6F22).
  3. Кнопка сброса. Работает в точности, как в "большом брате" - нажимаете ее, и все начинается с самого начала!
  4. Колодки цифровых пинов. Цифровые (digital) пины Arduino нумеруются от 0 до 13 и могут превращаться во входы или выходы - причем их роль можно менять прямо по ходу пъесы выполнения программы. Кое-где на них написано PWM, что означает возможность аппаратного ШИМ (широтно-импульсная модуляция, которую мы рассмотрим позже). AREF - это вход опорного напряжения внутреннего АЦП, может пригодиться при работе с аналоговыми значениями. GND - это "земля" или "минус" вашего источника питания. 
  5. Колодки аналоговых и прочих пинов. Справа расположены аналоговые пины - 0..5, их можно использовать для считывания аналоговых сигналов. В отличие от цифровых входов, которые при чтении могут давать только единицу или ноль, аналоговые выдадут вам число от 0 до 1023, в зависимости от текущего приложенного к ним напряжения. Если не хватает цифровых пинов, можно превратить эти выводы в цифровые - и тогда они получат номера 14-19. Левая часть колодки имеет специальное значение, разберем чуть подробнее:





    • RESET - дополнительный вход сброса. Зачем, если и так уже есть кнопка? Очень просто - на пины может надеваться так называемая Shield-плата со схемой, которой управляет Arduino, и до кнопки уже будет не добраться. Поэтому часто на Shield-плате делают еще одну - дублирующую и соединяют с этим входом. Сброс - это святое! ;)
    • 3V3 - питание +3,3 Вольта. Оно получается как бы "побочным" способом от USB-чипа FT323RL. Не исключено, что оно может пригодиться, но увы - допустимый ток всего 50мА! Для сравнения - порт USB может отдавать в 10 раз больше - 500мА.
    • 5V - питание +5 Вольт. Это линия питания микроконтроллера и всей схемы. При питании от внешнего источника, может отдавать до 1,5 А, так что смело используйте, но учтите - помехи на этой шине могут серьезно осложнить жизнь микроконтроллеру! 
    • GND - земля, причем сразу два контакта подряд. Так сделано для удобства.
    • VIN - напряжение, которое поступает прямо с разъема питания [2]. Те самые 7..20 Вольт о которых мы уже упоминали.



  6. Светодиод L. Это специальный тестовый светодиод, подключенный к цифровому входу номер 13. У Arduino нет встроенного дисплея или динамика и иногда единственный способ сообщить миру о том, что в вашей микропрограмме все плохо в порядке - помигать именно этим светодиодом.
У пытливых, наверное, уже созрел вопрос - а что будет, если подключить питание и к USB, и к разъему питания? Облако едкого дыма Да ничего страшного не произойдет - специальная схема на плате Duemilanova выберет, откуда брать питание. В других платах - например, в Diecimila, надо было механически переставлять джампер. Так что эта автоматика - приятное (в основном ;) усовершенствование.

Подводя промежуточный итог: по большому счету, Arduino состоит из микроконтроллера, моста USB-COM и светодиода "L". Микроконтроллер сам по себе содержит в себе много интересного, по умолчанию доступно:

  • универсальные цифровые пины ввода/вывода - 14 штук ( 0 - 13 )
  • аналоговые пины для чтения через АЦП - 6 штук ( 0 - 5 )
  • два пина, которые могут быть источником прерываний ( 2 и 3 )
  • таймер, который отсчитывает число миллисекунд, прошедших с момента старта.
Если подключить некоторое количество библиотек, можно также получить доступ к таким ресурсам:
  • энергонезависимая память (EEPROM) и память программ (FLASH);
  • таймеры;
  • последовательный порт (UART);
  • двупроводная шина, совместимая с I2C.
Что дальше? Конечно же, программировать!

(продолжение следует: Урок 2. Запуск ArduinoIDE)

Комментариев нет:

Отправить комментарий