суббота, 9 сентября 2017 г.

Leave a Comment

Arduino начало работы


Программировать оборудование? Легко!


Где взять плату Arduino? Рекомендуем PCB Europe (http://pcb-europe.net) – у них есть в продаже Diecimila за 22 евро (на момент написания статьи), и они с радостью ответят на вопросы, если вы не знаете точно, что вы хотите. [А в России вы можете заказать Arduino например здесь: http://www.linuxcenter.ru/shop/embedded/arduino/]


Теперь перейдем к вопросам посложнее: что втыкать в ваш Arduino? Сама плата имеет 14 цифровых разъемов и 6 аналоговых, а также встроенный светодиод и кнопку сброса, и нужно докупить дополнительные детали, чтобы что-то создать. Если вы из США, то, возможно, недалеко от вас есть магазин Radio Shack, где имеются наготове залежи прикольных штучек – просто подойдите к одному из продавцов, объясните ему, что вы пытаетесь сделать свой первый электронный проект, и уйдете с полной корзиной товаров долларов этак на 30. Если вы из Великобритании, то лучшее место разместить заказ на нужные детали – www.maplin.co.uk; также рекомендую прихватить у них один из чудесных наборов Lucky Bags. Поразительно, сколько идей может подсказать случайная смесь деталей! Вне США и Великобритании, либо поищите хороший магазин электроники в вашей стране (говоря «электроника», мы не имеем в виду «продажа iPod»!), либо обрати- тесь в PCB Europe и купите один из комплектов деталей к Arduino.



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

  • Несколько проводков-перемычек. Можно накупить их разной длины, или нарезать самим – без разницы.

  • USB-кабель Type A — Type B. Говоря по-человечески, это обычный соединительный кабель USB: на одном конце плоский, на другом почти квадратный.

  • Несколько светодиодов. Лучше – разных цветов!

  • Резисторы разных номиналов. Сопротивления более 10 кОм не понадобятся, но стоят они копейки, поэтому можете набрать всяких.

  • Потенциометр.

  • Фоторезистор.


Вы уложитесь при покупке вышеперечисленного в сумму менее 500 рублей, и даже еще останется, так что не бойтесь набрать лишнего – потом пригодится!


В Arduino встроено несколько светодиодов – есть, например, TX- и RX-светодиоды, мигающие при передаче и приеме данных. Мы воспользуемся специальными тестовыми светодиодами: они покажут, что плата нормально работает. Заставить Arduino работать под Linux придется хитростью, потому что она требует Java – причем официальной Java от Sun, клонов она не признает. Если у вас Ubuntu, подключитесь к репозиторию Multiverse, затем установите пакеты un-java5-jre, gcc-avr и avr-libc. Многие пользователи имеют проблемы из-за конфликта Arduino с поддержкой на клавиатуре системы Брайля; если она вам не нужна, сперва удалите пакет brltty – а если вы вставили плату Arduino при установленном brltty, выньте ее и воткните уже после удаления пакета. Установив программное обеспечение, запустите sudo update-alternatives --config java и выберите номер официальной Java от Sun. Этого должно быть достаточно, чтобы все заработало.


Мы включили IDE Arduino на DVD этого месяца – распакуйте ее на ваш рабочий стол и запустите команду arduino. При наличии проблем попробуйте запустить ее из терминала и посмотреть сообщения об ошибках. Запуская IDE впервые, вы должны будете ответить на вопрос о месте сохранения ваших программ – поддиректория в вашем домашнем каталоге вполне подойдет.


Итак, ПО для Arduino установлено; теперь подключим Arduino к компьютеру через USB-кабель. Если плата работает нормально, светодиод PWR (power, питание) будет гореть, а тестовый диод – мигать, показывая, что на плате все в порядке.


В редакторе Arduino зайдите в File > New для ввода нового кода. Файлы кода в Ардуинии называются “sketches” («наброски»), и с ними очень легко начать работать. Начнем мы с простого проекта: будем переключать светодиод из ВКЛ в ВЫКЛ, и я хочу показать вам код и убедиться, что он работает, а потом разобраться, как он работает.


ОК, настройка закончена – пора выгружать ваш «набросок» на плату! В панели меню IDE, вы можете увидеть иконку со стрелкой вправо – это кнопка Upload [Выгрузка]. Для Diecimila вам достаточно нажать на кнопку прямо сейчас, и программа будет выгружена. В противном случае сперва нужно нажать на маленькую кнопку сброса на плате Arduino, подготовив ее к принятию нового «наброска», а затем нажать кнопку выгрузки. Светодиоды TX и RX секунду поморгают, затем секунд пять ничего не будет происходить (Arduino ждет, не поступят ли дальнейшие инструкции), и наконец ваш тестовый диод должен начать мигать. Заработало!


С этим маленьким проектом вы можете шагнуть дальше. Возьмите из набора светодиод и подключите его к цифровому контакту 13. Если вы раньше со светодиодами не работали, хорошенько рассмотрите его перед установкой: у него две ножки, причем разной длины, и одна сторона цветного пластикового ободка плоская. Таким образом указывается полярность: ножка покороче и плоский обод – это «минус». Подключая ваш светодиод к плате Arduino, убедитесь, что плюсовая ножка подключена к контакту 13, а минусовая – к Gnd (ground, земля), и если все будет нормально, вы увидите, как он мигает в такт тестовому светодиоду. Ошиблись – ничего страшного, просто побыстрее выдерните светодиод!


Как работает код



  • int ledPin = 13' описывает переменнуюledPin типа integer (целое число – ну, то есть, не вида 3,1) и присваивает ей начальное значение 13.

  • setup() – функция по умолчанию в Arduino. Она вызывается при запуске вашей программы, чтобы вы могли задать начальную конфигурацию.

  • pinMode(ledPin, OUTPUT) сообщает Arduino, что вы хотите посылать данные на контакт 13, а не считывать их.

  • loop() – еще одна функция по умолчанию Arduino: она вызвается всякий раз, когда процессор ищет, что бы ему еще сделать.

  • digitalWrite(ledPin, HIGH) означает «послать значение HIGH на контакт 13»; HIGH – эквивалент двоичной единицы против двоичного 0, оно же – «ВКЛ», в отличие от «ВЫКЛ». Это включает светодиод.

  • delay(300) заставляет процессор сделать паузу в 300 миллисекунд, т..е. примерно на треть секунды.

  • digitalWrite(ledPin, LOW) выключает светодиод.

  • delay(100) заставляет процессор ждать одну десятую секунды.


Вот и все! Функция loop() вызывается с частотой, равной частоте работы процессора, а вызовы delay() вставлены, чтоб разрешить процессору периодически перевести дух – иначе светодиод будет мигать так часто, что глазу не уследить, и покажется, что он всегда включен! Помните, что на большинство светодиодов насажена маленькая линза, фокусирующая их свет – ярче всего такой светодиод выглядит, если взглянуть на него сверху.


Использование макетной платы


Итак, для перенесения проекта «мигалки» на макетную плату, соедините проводом Gnd с J33, а другим проводом – Digital 13 c J32. Это подводит ток к контактам I33 и I32, H33 и H32, G33 и G32, F33 и F32. Моя плата имеет просвет между рядами F и E, поэтому E32 и E33 не входят в схему. Теперь вам осталось только поместить ваш светодиод на правильное место, чтобы замкнуть цепь; по-вашему, это куда?


Если вы не страдаете схемобоязнью, можете просто тыкать в контакты, пока светодиод не загорится – «методом тыка» вы много чего изучите, и это очень забавно, поверьте! В данном примере, светодиод загорится в позиции F33 (минус, короткая ножка) и F32 (плюс, длинная ножка); то же произойдет при помещении его в колонки G, H или I.


Попробуем сделать что-нибудь еще: с другой стороны платы Arduino находятся аналоговые входные контакты Analog In, а также несколько помеченных как Power. Ток в них будет побольше – заметили на одном из них отметку 5V, а на втором 9V? Это, между прочим, вольты; при таком напряжении нужна осторожность – подав на светодиод слишком много, вы его спалите. Если вы приволокли мешок светодиодов, беда невелика; но вдруг у вас их только три-четыре, и они последние! К слову, вполне безопасно подсоединить их на пару секунд, просто чтобы убедиться, что они работают. Пожалуйста, сделайте это сейчас: отключите Arduino от питания, затем соедините 5V с J33, а Gnd рядом с 5V – с J32. Потом на секунду включите плату: ваш светодиод ярко засветится (а заодно и нагреется!). Убедившись, что он работает, отключите USB-кабель, чтобы светодиод погас.


Перейдем к более сложной задаче: я хочу познакомить вас с резистором. Сия маленькая деталь задает падение напряжения, в зависимости от своего номинала сопротивления. Номинал изображен маленькими цветными полосками на корпусе резистора, но простым смертным тут ловить нечего – лучше держать под рукой шпаргалку, разъясняющую, что какие полоски означают. Теперь соедините 5V с J38 – так, чтобы светодиод не был подключен к питанию. Для замыкания цепи соедините резистором I38 и J33, и вы снова увидите свечение светодиода – но чуть тусклее. Если цветные коды резисторов для вас китайская грамота, попробуйте поочередно вставлять разные резисторы и рассортируйте их по яркости свечения светодиода!


Чтение ввода


его в F34 и F37. Поместите мощный резистор в G34 и соедините его с I29, затем соедините проводом J29 и 5V – это подаст питание на фотоэлемент. Необходимо также соединить проводом G37 и контакт Gnd рядом с 5V, для замыкания электрической цепи. Чтобы считать данные с фотоэлемента, соедините другим проводом H34 с Analog 0, и ваша система готова для программирования!


«Набросок» для чтения данных с аналогового входа в Arduino очень прост: вам необходимо указать, с какого контакта вы будете брать данные фотоэлемента, а также сохранить эти данные. Тут пригодится функция analogRead(), возвращающая значение, которое вы можете использовать для работы. В виде «наброска» это выглядит так:


Как вы думаете, что этот «набросок» должен делать? Если вы не уверены, попробуйте разобраться, загрузив его в вашу плату и прикрывая/открывая фотоэлемент!


Дерзать дальше.


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

0 коммент. :

© 2012-2017 Cash's from programs