Выполнил: Ученик 10 «А» класса Суслов Кирилл Руководитель: Гадалов А.Г. Цель: Получить базовые знания о платформе arduino. Задачи: Научиться основам электротехники; Получить знания по программированию на языке Arduino(С++); Создать устройство на основе платы Arduino. Актуальность темы: В связи с возросшим интересов к программированию появилась возможность изучения азов программирования в средней школе с помощью платформы Arduino для создания простых программируемых схем и даже полноценных роботов. Электронный конструктор и удобная платформа быстрой разработки электронных устройств для новичков и профессионалов ◦ Среда разработки ◦ Платы ◦ Электронные компоненты •Низкий порог входа в мир МК •Разнообразие плат. Две версии носимых плат: LilyPad и Seeeduino Film •Кроссплатформенность среды разработки. • Переносимость кода для разных плат Arduino. •Отсутствие необходимости в программаторе. •Почти все платы имеют USB разъем •Отсутствие необходимости в пайке схемы собираются на беспаячной макетной плате. •Язык программирования C/C++ Для начала работы с Arduino нужно подготовить: скачать Arduino IDE(Средство разработки программ для arduino) подготовить электронные компоненты. Установить драйвера для ПК . Arduino IDE(Интегрированная среда разработки Arduino) Интегрированная среда разработки Arduino — это кроссплатформенное приложение на Java, включающее в себя редактор кода, компилятор и модуль передачи прошивки в плату. Язык программирования Ардуино является стандартным C++ (используется компилятор AVR-GCC) с некоторыми особенностями, облегчающими новичкам написание первой работающей программы. Программы, написанные программистом Ардуино называются наброски (или иногда скетчи варваризм от англ. sketch) и сохраняются в файлах с расширением ino. Эти файлы перед компиляцией обрабатываются препроцессором Ардуино. Также существует возможность создавать и подключать к проекту стандартные файлы C++. Обязательную в C++ функцию main() препроцессор Ардуино создает сам, вставляя туда необходимые «черновые» действия. Программист должен написать две обязательные для Ардуино функции setup() и loop(). Первая вызывается однократно при старте, вторая выполняется в бесконечном цикле. В текст своей программы (скетча) программист не обязан вставлять заголовочные файлы используемых стандартных библиотек. Эти заголовочные файлы добавит препроцессор Ардуино в соответствии с конфигурацией проекта. Однако пользовательские библиотеки нужно указывать. Менеджер проекта Arduino IDE имеет нестандартный механизм добавления библиотек. Библиотеки в виде исходных текстов на стандартном C++ добавляются в специальную папку в рабочем каталоге IDE. При этом название библиотеки добавляется в список библиотек в меню IDE. Программист отмечает нужные библиотеки и они вносятся в список компиляции. Arduino IDE не предлагает никаких настроек компилятора и минимизирует другие настройки, что упрощает начало работы для новичков и уменьшает риск проблем. Простейшая Ардуино-программа состоит из двух функций: setup(): функция вызывается однократно при старте микроконтроллера. loop(): функция вызывается после setup() в бесконечном цикле все время работы микроконтроллера. /* Зажигаем светодиод на одну секунду, затем выключаем его на одну секунду в цикле. */ void setup() { // Инициализируем цифровой вход/выход в режиме выхода. // Выход 13 на большинстве плат Arduino подключен к светодиоду на плате. pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); // зажигаем светодиод delay(1000); digitalWrite(13, LOW); delay(1000); } // ждем секунду // выключаем светодиод // ждем секунду int ledPins[] = {2,3,4,5,6,7,8,9}; delay(delayTime); void setup() digitalWrite(ledPins[6], LOW); { delay(delayTime); digitalWrite(ledPins[index], LOW); } } int index; digitalWrite(ledPins[5], LOW); for(index = 0; index <= 7; index++) delay(delayTime); void pingPong() { digitalWrite(ledPins[4], LOW); { pinMode(ledPins[index],OUTPUT); } } delay(delayTime); int index; digitalWrite(ledPins[3], LOW); int delayTime = 100; delay(delayTime); digitalWrite(ledPins[2], LOW); for(index = 0; index <= 7; index++) delay(delayTime); { void loop() digitalWrite(ledPins[1], LOW); digitalWrite(ledPins[index], HIGH); { delay(delayTime); delay(delayTime); oneAfterAnotherNoLoop(); digitalWrite(ledPins[0], LOW); oneAfterAnotherLoop(); delay(delayTime); digitalWrite(ledPins[index], LOW); } oneOnAtATime(); } pingPong(); void oneAfterAnotherLoop() for(index = 7; index >= 0; index--) marquee(); { { int index; digitalWrite(ledPins[index], HIGH); } int delayTime = 100; delay(delayTime); void oneAfterAnotherNoLoop() for(index = 0; index <= 7; index++) { { int delayTime = 100; digitalWrite(ledPins[index], LOW); } digitalWrite(ledPins[index], HIGH); } delay(delayTime); digitalWrite(ledPins[0], HIGH); } void marquee() delay(delayTime); for(index = 7; index >= 0; index--) { digitalWrite(ledPins[1], HIGH); { int index; delay(delayTime); digitalWrite(ledPins[index], LOW); digitalWrite(ledPins[2], HIGH); delay(delayTime); delay(delayTime); digitalWrite(ledPins[3], HIGH); int delayTime = 200; } } for(index = 0; index <= 3; index++) delay(delayTime); { digitalWrite(ledPins[4], HIGH); void oneOnAtATime() digitalWrite(ledPins[index], HIGH); delay(delayTime); { digitalWrite(ledPins[index+4], HIGH); digitalWrite(ledPins[5], HIGH); int index; delay(delayTime); delay(delayTime); int delayTime = 100; digitalWrite(ledPins[index], LOW); digitalWrite(ledPins[6], HIGH); digitalWrite(ledPins[index+4], LOW); delay(delayTime); for(index = 0; index <= 7; index++) digitalWrite(ledPins[7], HIGH); { delay(delayTime); digitalWrite(ledPins[7], LOW); } } digitalWrite(ledPins[index], HIGH); delay(delayTime); Подготовка компонентов: 1 плата Arduino uno. 1 Доска для прототипирования. 8 различных светодиодов. 9 соединительных проводов. 8 резисторов.