Подготовка к работе slide

Подготовка к работе

Описание Подготовка к работе

Платформа Arduino.

Arduino состоит из двух основных частей – непосредственно платы Arduino , которая является частью аппаратного обеспечения, над которым вы работаете при создании собственных объектов.

Arduino Uno

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

sketct

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





Arduino duemilanove

Поясним назначение контактов платы.

Контакты 0-13 - контактов цифрового ввода-вывода.

Они могут быть как входами, так и выходами, что определяется вашей программой (скетчем).


Контакты  3, 5, 6, 9, 10 и 11 могут использоваться, как ШИМ – широтно-импульсная модуляция).
Контакты 0–5 - контакты аналогового входа.
Эти контакты для аналогового входа получают аналоговые значения (например, величину напряжение в датчике) и преобразовывают их в цифровые значения от 0 до 1023.

Электрическое питание может быть подано на плату через USB-порт от компьютера,  или от AC-адаптера 9 вольт через разъём питания. Плата может сама выбирать источник питания. Т.е., если плата подключена к компьютеру через USB кабель и к разъему питания подключен адаптер, то плата выберет адаптер.

 

1.3. Интегрированная среда разработки (IDE).

IDE (интегрированная среда разработки) - это специальная программа, работающая на вашем компьютере, которая позволяет вам писать скетчи для платы Arduino на простом языке. После нажатия кнопки «загрузить»   код, который вы написали, будет транслирован в команды,понятные микроконтроллеру и загружен в память.
Процесс программирования Arduino упрощённо выглядит следующим образом:
- подключаем плату Ардуино к USB-порту компьютера.
- пишем скетч, для работы платы.
- выгружаем этот скетч на плату через USB-соединение и ждём несколько секунд для перезапуска платы.
Плата приступит к выполнению написанного вами скетча.


1.4. Установка Arduino на ваш компьютер.
 

Чтобы начать работать с платой Arduino, сначала необходимо установить среду разработки (IDE).
Установить IDE можно с диска, который идет в комплекте. Или скачать с сайта разработчика:
www.arduino.cc/en/Main/Software.
 
Для установки среды разработки с диска пожалуйста  откройте папку arduino-1.0.5,
Найдите файл arduino.exe и два раза кликните левой кнопкой мыши. Начнется установка программы.
При запуске программы с сайта
www.arduino.cc вы можете выбрать подходящую для вашей операционной системы версию ПО.
 
После установки  ПО запустите IDE. На экране монитора у вас появится окно системы проектирования IDE. Далее последовательно нажмите кнопки СЕРВИС, ПЛАТА, ARDUINO DUEMILANOVE/Atmega328.




Теперь плата готова к работе.

 

Подключите плату Arduino через USB кабель к компьютеру. Система сама найдет драйвер для платы Arduino. И предложит выбрать COM порт.

 

1.5. Датчики и исполнительные устройства.

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

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


2.Примеры.

2.1. Пример 1. Мигание светодиодом.

Задачи эксперимента. Подключение платы Arduino, запуск программы, проверка работы программы.

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





Установленный на плате светодиод при подключении к USB разьему платы Arduino, будет сразу мигать. Это потому, что в платы Arduino  изначально загружена программа мигания светодиода. В этом уроке мы перепрограммируем Arduino с нашим собственным скетчем, изменив скорость, с которой светодиод мигает. 
Arduino IDE включает в себя большую коллекцию примеров скетчей, которые вы можете загрузить и использовать. Пример мигания светодиода так же есть в IDE. Этот скетч называется «Blink». Для загрузки скетча «Blink», нажмите в IDE последовательно кнопки Файл – примеры – 01.Basic – Blink.

 


После загрузки в окне IDE появится текст программы для мигания светодиода.



Но прежде, чем начать работы по изменению скорости мигания светодиода необходимо сохранить копию этого скетча. Для этого в меню Файл в IDE выберите опцию  «Сохранить как…». А затем сохраните скетч, присвоив ему имя MyBlink.



Вы сохранили копию 'Blink' в своей папке. Это означает, что если вы хотите найти его снова, вы можете просто открыть его с помощью опции  Файл – Папка со скетчами.
 

Подключите плату Arduino к компьютеру с помощью USB-кабеля и убедитесь, что тип платы и тип последовательного порта установлены правильно. Дождитесь сообщения, что драйвера найдены и установлены.
Arduino IDE покажет вам текущие настройки платы в нижней части окна.


Нажмите на кнопку «Загрузить». Это вторая кнопка слева на панели инструментов.

В нижней части IDE выводит ряд сообщений. Сначала выводится сообщение о компиляции скетча. Т.е. о преобразовании программы в формат, понятный для процессора.


Далее статус процесса изменится на «Загружаем». На данный момент, светодиоды на Arduino должны начать мерцать, указывая, что скетч загружается в плату.


Наконец в строке состояния появится текст «Загрузка выполнена».




Текст в информационном окне говорит нам, что скетч занимает 1084 байта из 30720 байт максимум. 
Но, если вы забыли подключить плату, или драйверы установлены неправильно, или порт выбран неправильно, то в окне может появиться следующая надпись:


Проверьте подключение платы к компьютеру и еще раз загрузите скетч.

Код программы.
/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
This example code is in the public domain.
 */
 
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
 
// the setup routine runs once when you press reset:
void setup() {               
// initialize the digital pin as an output.
pinMode(led, OUTPUT);    
}
 
// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}

Обратите внимание, что текст программы состоит из непосредственно инструкций и комментариев этих инструкций. Комментарии не влияют на выполнение программы процессором. С помощью комментариев можно более подробно описывать работу программы.
Многострочные комментарии выделяются символами /* и */.
Однострочные комментарии выделяются символами // только в начале строки.
Так же обратите внимание, что инструкции пишутся на английском языке. Комментарии в примерах, которые входят в IDE, так же написаны на английском языке.
Но при самостоятельном написании скетча комментарии можно писать на русском языке.

 
Рассмотрим код программы построчно:

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
 
Инструкция объявляет переменную с именем led.  И то, что светодиод подключается к выводу 13 платы Arduino.
Светодиод на плате Ардуино и на самом деле подсоединен к выводу 13.
Далее, следует функция Setup. Функция Setup исполняется один раз после старта скетча или при включении питания Arduino. И эта функция должна присутствовать в каждом скетче.


void setup() {               
// initialize the digital pin as an output.
pinMode(led, OUTPUT);    
}
 
Оператором данной функции могут быть действия, которые должны выполниться один раз при запуске программы. Например, - установка скорости последовательного порта, выбор режима работы универсальных выводов (пинов) на «ввод» или на «вывод».
Все эти действия обязательно вписываются между открывающей и закрывающей фигурными скобками { }.
В нашем случае, мы вписываем только одну команду, которая сообщает Arduino то, что мы собираемся использовать вывод(пин) led, как выход контроллера. Это означает то, что на выводе 13 платы будет появляться сигнал, который создает сам контроллер.
Для любого скетча необходима функция Loop.  Эта функция вызывается сразу после завершения Setup, и повторяется снова и снова. Т.е. Loop после того, как закончит работу своей команды, сразу же начнет выполнять её снова.


void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}


Внутри цикла функции, размещена команда, которая переключает состояние пина в одно из двух возможных. HIGH или LOW.  HIGH соответствует логической единице (она же в свою очередь соответствует напряжению питания микроконтроллера +5 Вольт.
Состояние вывода LOW соответствует логическому нулю, это примерно 0 Вольт.

Светодиод L (пин 13) подключен в Arduino следующим образом:



 

Если пин 13 на плате Ардуино установить в состояние HIGH (5 Вольт), то светодиод начнет светиться так, как через него потечет электрический ток. Если пин 13 установить в состояние LOW (0 Вольт), то светодиод светиться не будет.

Следовательно, оператор digitalWrite(ledPin, HIGH) формирует +5В на выходе 13 и зажигает таким образом светодиод L.

 

delay(1000);             
 

Эта команда заставляет микроконтроллер остановиться и ничего не делать целую 1000 миллисекунд.   1000 мс = 1 с ;). Т.е. на выходе 13 в течении 1000 мс будет высокий уровень и светодиод будет светиться.
 

digitalWrite(led, LOW);   
 

Эта команда устанавливает пин 13 в состояние LOW. Напряжение на выходе становится близким к нулю. И светодиод «гаснет».
Затем снова выполняется команда паузы на 1000 миллисекунд.

На этом выполнение цикла заканчивается, но функция loop снова автоматически вызывается и запускает команду digitalWrite(ledPin, HIGH). И так далее пока подается питание на контроллер.

Теперь мы попробуем изменить скорость мигания светодиода. Для этого надо изменить параметры команды delay.


 

Для того, что бы заставить мигать светодиод быстрее изменим значение паузы с 1000 миллисекунд на 500. Загрузим скетч и увидим, что светодиод действительно мигает в два раза быстрее.

2.2. Пример 2.  Светодиод на макетной плате.

Задача эксперимента. Управление светодиодом на макетной плате.

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

Для этого необходимо сначала собрать макетный стенд.

 

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

На макетном стенде значительно удобнее проводить различные эксперименты с программированием.

 


 

Сборку стенда необходимо начинать с  установки и закрепления металлических стоек.

 

Такая последовательность сборки поможет избежать ошибок при установке элементов с клеящим слоем.
Затем винтами закрепляем на стойки плату Arduino.


 

Не снимая защитную пленку с макетной платы примеряем размещение обеих плат на
пластиковой подставке.
 

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


Снимаем защитную пленку с клеящего слоя макетной платы.



 

И устанавливаем «макетку» на несущую пластину и плотно прижимаем, что бы клеящим слоем «макетка» полностью легла на несущую пластину.
 
Переворачиваем собранный стенд и наклеиваем  по углам пластиковой подставки резиновые ножки, предварительно сняв с них защитную пленку. Макетный стенд готов к работе.
 
Но прежде, чем устанавливать электронные компоненты на макетную плату, необходимо познакомиться с её устройством.
На макетной плате размещены отверстия для установки компонентов.
Все отверстия соединены определенным образом.
Отверстия в двух крайних рядах соединены горизонтально друг с другом и предназначены
для подключения к макетной плате питающего напряжения. + и –.
Отверстия во внутренней части макетной платы соединены вертикально. И разделены по середине.


 


 

Электрическая схема нашего нового примера выглядит так же, как и в предыдущем эксперименте. Только резистор R1 мы подключим не к выходу 13 платы Arduino, а к выводу 7 Arduino.



Электронные компоненты, которые мы будем использовать в схеме:
1. Резистор. Номинал резистора 360 Ом.


 

2. Светодиод.

 

 

Установите резистор и светодиод на макетную плату. Длинный вывод светодиода называется АНОД. Анод так же может обозначаться знаком +(Плюс). Короткий вывод светодиода называется КАТОД и может обозначаться знаком – (Минус) или GND.

Подключите соединительным проводком резистор к выводу 7 платы Arduino, а второй вывод светодиода к выводу GND так же на плате Arduino.

Соединение компонентов в схеме осуществляется проволочными перемычками. Что бы сделать перемычку, необходимо отрезать от мотка провода, необходимой длины кусок. И зачистить оба края от изоляции.

соединение компонентов на макетке
Затем подключите  плату Arduino на нашем макетном стенде к компьютеру USB кабелем.
Запустите программу Arduino  и откройте ранее сохраненный файл MyBlink.
В строке int led = 13; замените цифру 13 на цифру 7.
  
Загрузите измененную вами программу в плату Arduino, нажав кнопку  “Загрузить”.


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


 


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

 

Теперь можно переходить к более сложным и интересным экспериментам с программированием контроллера Arduino.












 

Другие проекты