Arduino знакомство с командами управления

Тема 1. Знакомство с Arduino - PDF

arduino знакомство с командами управления

, среда разработки Arduino IDE напоминает простой текстовый процессор. Окно IDE делится на три основные области: область управления, . 1 Знакомство с Arduino Esplora а затем использовать их для управления компонентами вывода данных или даже для управления. Знакомство с Arduino, выбор платы и компонентов для дальнейшей работы. Продукт, который создала команда, состоял из дешевых и . помощи которого возможно управление какими-либо механизмами, или.

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

У вас запросят имя папки со скетчами: Затем введите следующий текст пример в редакторе скетчей в главном окне IDE Arduino. Вы также можете загрузить его со страницы makezine. Он должен выглядеть как на рис. Нажмите кнопку "Verify" рис. Это сообщение говорит о том, что IDE Arduino оттранслировала ваш скетч в выполняемую программу, которая может быть запущена на плате, почти.

Теперь вы можете выгрузить скетч на плату: Произойдт перезапуск платы, который заставляет плату остановить выполнение кода и слушать инструкции по порту USB.

IDE Arduino отправляет текущий скетч на плату, которая сохраняет его в своей памяти и в конце концов выполняет.

arduino знакомство с командами управления

Вы увидите несколько сообщений в чёрной области внизу экрана IDE, и прямо над этой областью вы увидите сообщение "Done uploading". Это означает, что процесс выгрузки успешно завершён.

Знакомство с Arduino / Habr

На плате установлено два светодиода, обозначенные " RX" и "TX"; они мигают всякий раз при отправке или получении байта платой. Во время выгрузки они мерцают. Если вы не видите что светодиоды мерцают, или получаете сообщение об ошибке вместо "Done uploading", значит существует проблема связи между вашим компьютером и Arduino.

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

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

Во-первых, Arduino выполняет код сверху вниз, так-что первая строка сверху будет прочтена первой; затем движется. ПАналогия - ползунок текущей позиции в программе-видеоплейере QuickTime Player или Windows Media Playerон движется слева направо, показывая ваше положение в фильме.

Они, в частности, полезны когда вы хотите дать имя группе инструкций. Если в обед вы просите кого-нибудь "Передай мне пармезан, пожалуйста", ваша фраза описывает серию действий. Поскольку мы люди, всё это происходит естественно, но все отдельные крошечные требуемые действия должны быть сообщены плате Arduino по причине того что плата не така мощная как наш разум. Вы можете увидеть два блока кода, выделенного как мы только-что описывали.

Перед каждым из них стоит странная команда void setup Эта строка даёт имя блоку кода. Если вы пишете иструкцию плате для подачи пармезана, вам стоит написать void passTheParmesan в начале блока и этот блок станет инструкцией, которую вы сможете вызывать из любого места в коде Arduino. Такие блоки называются функциями. После этого, если вы напишете passTheParmesan в любом месте кода, Arduino выполнит эти инструкции и продолжит работу с того места, где прервалась.

В функции setup вам следует располагать код, который вы хотите выполнить один раз при запуске своей программы, а loop содержит ядро программы, которое выполняется снова и. Это сделано из-за того, что Arduino - не обычный компьютер - она не может выполнять много программ одновременно и программы не могут быть завершены.

Когда вы подаёте питание на плату - программа запускается, когда вы хотите её остановить - просто выключите плату. Эти строки являются комментариями, то есть заметками, которые вы оставляете в программе сами для пояснения что вы делаете, написав этот код для себя или кого-то ещё.

Очень часто я знаю потому что и сам так делаю всё время мы пишем код, загружаем его в плату и думаем: Теперь откройте программу, и если вы не оставили никаких комментариев, ваша мысль будет: По мере нашего продвижения вперёд вы увидите некоторые трюки для того чтобы сделать свои программы более читабельными и лёгкими в обслуживании. Для каждой строфы в поэме было написано тысячи строк комменнтариев!

Однако, пояснения будут более полезными когда вы начнёте писать свои собственные программы. Предыдущий комментарий просто напоминает что это за программа - Примермигающая светодиодом. Мы используем эту команду для того, чтобы показать, что светодиод, которым мы будем мигать, подключён к 13 выводу платы Arduino.

Знакомство с Arduino

В данном случае нам требуется вывод для управления светодиодом, так-что мы указываем в скобках номер вывода 13 и его режим OUTPUT. Она будет повторяться снова и снова до выключения платы.

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

У европейцев там вольт, у американцев - вольт, а Arduino работает с 5 В. В этот момент и происходит волшебство - когда программное обеспечение превращается в аппаратное. Итак, в этом месте вашего кода инструкция программы влияет на физический мир посредством управления потоком электричества на выводе.

Включение и выключение вывода по желанию даёт нам возможность перевести это в что-то видимое для человека; светодиод - наш актюатор. Поэтому, если вы хотите чтобы всё происходило с определённой регулярностью, вы говорите: Миллисекунды - это тысячные доли секунды; поэтому миллисекунд равно одной секунде.

Итак, светодиод будет включён на одну секунду. Это старое соглашение в электронике. Светодиод будет выключен одну секунду. Подводя итоги, наша программа делает вот что: Включает вывод 13 на вывод только один раз в начале программы Входит в цикл loop Переключает светодиод, подключённый к выводу 13 Ожидает одну секунду Выключает светодиод на выводе 13 Ожидает одну секунду Возвращается к началу цикла Надеюсь, это было несложно.

Вы узначете больше о программировании в следующих примерах. Перед тем как мы перейдём к следующему разделу, я хочу чтобы вы поиграли с кодом. Например, уменьшите величину задержки используя различные цифры для команд включения и выключения, и вы увидите различные виды мигания. В частности, вы должны увидеть что происходит если вы сделаете задержку очень маленькой, но используете разные величины для задержек при включенном светодиоде и при выключенном Мне посчастливилось работать над интересными проектами, которые включают управление светом и его взаимодействие с людьми.

Arduino действительно хороша в.

arduino знакомство с командами управления

В этой книге мы будем работать над вопросом разработки "интерактивного света ", используя Arduino как способ понять основы построения интерактивных устройств. В следующем разделе я постараюсь пояснить основы электричества способом, скучным инженеру, но не отпугивающим начинающих программистов Arduino. Если вы делали что-нибудь по дому, электроника вам не покажется сложной для понимания. Чтобы понять как работают электричество и электрические схемы, лучше всего представлять вещи как "водяная аналогия".

Давайте создадим простое устройство, такое как портативный вентилятор с питанием от батарей рис. Портативный вентилятор Если разобрать вентилятор на части, мы увидим что он состоит из маленькой батарейки, нескольких проводов и электромоторчика. Один из проводов, идущих от батареи к моторчику, разорван выключателем. Если у вас новая батарейка и вы включите выключатель, моторчик начнёт крутиться, охлаждая. Представьте себе что батарейка - это водяной резерувар с насосом, выключатель - кран, а электромотор - колесо, подобное тем что вы видели у водяных мельниц.

Когда вы откроете кран, вода потечёт из насоса и будет приводить водяное колесо в движение. Гидравлическая система Вы быстро поймёте что если вам надо вращать колесо быстрее, требуется увеличить размер труб но это работает только до определённого предела и увеличить давление насоса. Увеличение диаметра труб позволит пройти через них большему потоку воды; увеличивая трубу мы уменьшаем её сопротивление потоку.

Это работает до определённого предела, при котором колесо не будет крутиться ещё быстрее, так как давленые воды недостаточно велико. Когда мы достигнет этой точки, нам надо насос помощнее. Такой метод ускорения водяной мельницы работает также до некоторой точки, в которой водяное колесо сломается из-за слишком сильного напора воды. Другая вещь, которую вы можете заметить, это что ось колеса немного нагревается, поскольку незавимо от того насколько точно мы установили колесо, трение между осью и колесом будет создавать тепло.

Важно понять что в подобной системе не вся энергия насоса будет превращена в движение колеса, некоторая часть будет потеряна из-за неэффективности системы и превратится в основном в тепло в некоторых её частях. Итак, какие часты системы важны? Давление, поизводимое насосом; сопротивление труб и колеса потоку воды, и, собственно, сам поток воды определяемый литрами воды, которая вытекает за секунду и. Электричество работает подобно воде. У вас есть что-то подобное насосу любой источник электричества, такой как батарейка или розетка в стенекоторый толкает электрические заряды представим их как "капельки" электричества по трубам, которые мы можем представить как провода, и устройства, способные производить тепло пример - термоодеялосвет лампа в вашей комнатезвук ваша стереосистемадвижение вентилятор и многое другое.

Напряжение измеряется в вольтах - единицах названных в честь Александра Вольта, создателя первой батареи. В точности как давление воды имеет эквивалент в электричестве, скорость потока воды также его имеет. Он называется током, который измеряется в амперах по имени Андре Мари Ампера, первооткрывателя электромагнетизма.

Связь между напряжением и током может быть показана если мы вернёмся к водяному колесу: И, наконец, сопротивление, противостоящее течению электричества на его пути, через который ток проходит, называется - вы знали это! Герр Ом также виновен в формулировке самого важного закона в электричестве, и вам надо запомнить только одну его формулу.

Он смог показать, что напряжение, ток и сопротивление в цепи связаны друг с другом, и, в частности, что сопротивление цепи определяет количество тока, который будет течь через неё при определенном напряжении питания. Это легко понять если вы задумаетесь. Возьмите батарейку на 9 вольт и включите её в простую схему.

Измеряя ток, вы увидите что чем с большим сопротивлением резистор вы добавите в схему, тем меньший ток будет проходить через. Возвращаясь к аналогии с водой, при данном насосе, если я установлю клапан который соотносится с сопротивлением в электроникето чем больше я буду закручивать этот клапан - увеличивая сопротивление потоку воды - тем меньше воды протечёт по трубе.

Ом подвёл итог своего закона в формулу: Поэтому вам надо понять как управлять ею. В нашем предыдущем примере светодиод был актюатором и Arduino управляла.

Чего не хватает для полноты картины, так это сенсора. В данном случае мы будем использовать простейший из доступных сенсоров - кнопку. Если вы разберёте кнопку на части, вы увидите что это очень простое устройство: Когда металлические части разделены, ток через кнопку не протекает она подобна закрытому крану для воды ; когда мы нажимаем её, мы осуществляем соединение.

Чтобы узнать состояние выключателя, существует новая для нас команда Arduino, которую нам следует изучить: Другие инструкции, которые мы использовали до этого, не возвращали никакой информации - они просто выполняли то что мы просили. Но такой тип функций немного ограничен, так как они заставляют нас придерживаться предсказуемой, строго определённой последовательности команд, без ввода данных из окружения.

С функцией digitalRead мы можем "задать вопрос" Arduino и получить ответ, который можно сохранить где-нибудь в памяти и принять решение немедленно или позже. Составьте схему по рис. Для этого у вас должны быть некоторые детали и они потребуются в следующих проектах: ПриложениеA - инструкция по применению такой платы.

Набор нарезанных проводов Кнопка Рис. Давайте рассмотрим код, который используется для управления светодиода кнопкой: Когда Arduino спросит у вас имя папки для нового скетча, введите PushButtonControl. Напечатайте код Примера в Arduino или скачайте его с makezine.

Если всё сделано правильно, светодиод будет загораться когда вы нажмёте кнопку. В этом примере программы я показал две новых концепции: Выражение "if" - возможно, самая важная инструкция в языке программирования, так как она позволяет компьютеру а мы помним что Arduino - это маленький компьютер делать выбор.

После ключевого слова "if" вы должны написать "вопрос" в круглых скобках, и если "ответ", или результат, верен, будет выполнен первый блок кода; и напротив, если ответ неверен, будет выполнен блок кода после "else". Удостоверьтесь что вы пользуетесь ими правильно, так как очень легко совершить подобную ошибку и использовать простое равно.

В этом случае программа никогда не будет работать. Я знаю это по опыту 25 лет программирования и всё ещё могу ошибиться. Держать палец на кнопке пока вам надо свет - не очень практично. Хотя это заставило-бы вас задуматься о том, сколько энергии тратися впустую когда вы оставляете лампу включённой, нам надо подумать о том, как-бы сделать чтобы кнопка "залипала".

Как мы поняли раньше, непрактично держать палец на кнопке чтобы свет оставался включённым. Поэтому мы должны осуществить что-то похожее на "память" в виде механизма программы, который будет запоминать что мы нажали кнопку и продолжать светить даже елси мы отпустим её.

arduino знакомство с командами управления

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

Это делается для того чтобы компилятор часть Arduino, которая превращает ваш скетч в программу, которую может выполнить микроконтроллер знал где заканчивается одно ваше выражение и начинается другое. Не забудьте использовать точку с запятой кроме тех строк, которые начинаются с define. В следующей программе val используется для хранения результата функции digitalRead ; что-бы ни получала Arduino со входа попадает в переменную и остаётся там до тех пор, пока другая строка кода не изменит её.

Отметьте, что эти переменные хранятся в оперативной памяти, называемой RAM. Она очень быстрая, но когда вы выключите свою плату, все данные в оперативной памяти будут потеряны что означает что все переменные будут сброшены в начальные значения при включании платы. Ваша программа хранится во флеш-памяти такой-же тип памяти используется в сотовых телефонах для хранения записной книжки которая не изменяется при отключении платы от питания.

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

  • Arduino для начинающих. Урок 1. Мигающий светодиод
  • Тема 1. Знакомство с Arduino
  • Курс «Основы робототехники на Arduino для школьников». Занятие 2 Знакомство с контроллером Arduino

Поскольку state может быть равна только 1 или 0, используем небольшой трюк. Далее в программе вы видите, что мы используем state для выяснения должен-ли светодиод быть включён или выключен.

Как я говорил, это приводит к странному результату. Результат странный из-за способа считывания кнопки. Arduino очень быстрая; она выполняет свои команды со скоростью 16 миллионов в секунду - вполне может быть, что и несколько миллионов строк кода за секунду. Это означает что пока ваш палец нажимает кнопку, Arduino может снять данные с кнопки несколько сотен раз и изменить столько-же раз состояние светодиода.

Результат непредсказуем; светодиод может остаться выключённым когда вы хотите его включить и наоборот. Поскольку даже сломанные часы показывают верное время дважды в день, программа может выдавать верный результат каждый раз какое-то время, но и долгое время - неправильный.

Как ним исправить эту ситуацию? Требуется определить момент нажатися конпки - именно в этот момент следует изменять state. Способ, который мне нравится, таков - хранить старое значение val перед считыванием нового; это позволяет мне сравнить текущее положение кнопки с предыдущим и изменить state только когда кнопка стала "HIGH" после того, как была "LOW". Пример содержит следующий код: Включить светодиод при нажатии кнопки и оставить его включённым после отпускания кнопки с новой, улучшеной формулой!

Возможно вы заметили, что результат не отличный из-за другой проблемы механических переключателей. Кнопки очень простые устройства - два кусочка металла разделены пружинкой.

При нажатии кнопки эти контакты соединяются и через них может протекать электричество. Это звучит красиво и просто, но в реальной жизни соединения не так прекрасны, особенно если кнопка нажата не полностью, и генерируют ложные сигналы, называемые дребезг. Когда кнопка "дребезжит", Arduino видит быструю последовательность сигналов включения и выключения. Существует множество видов антидребезга, но для нашего, простого коде, я заметил что достаточно добавить Окончательный код показан в примере Включить светодиод при нажатии кнопки и оставить его включённым после отпускания кнопки, включая простой антидребезг.

Теперь с новой, улучшенной формулой! Продвинутый ввод-вывод Всё, что мы изучили в четвёртой главе - в большинстве простейшие операции, которые мы можем делать с Arduino: Если-бы Arduino был разговорным языком, это было-бы всего-лишь двумя буквами алфавита. Учитывая то, что в этом алфавите всего пять букв, вы можете увидеть сколько еще работы надо сделать чтобы писать поэмы на Arduino. Когда датчик расположен вертикально, шарик замыкает оба контакта, и устройство работает как если-бы вы нажати кнопку.

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

Эти маленькие устройства срабатывают когда человек или животное движется в пределах его видимости. Это простой способ определить движение.

Типичный инфракрасный датчик Теперь вы можете поэкспериментировать, найдя всевозможные устройства, имеющие два замыкающихся контакта, такие как термостат, управляющий температурой в комнате используйте старый, который не подключён к системеили просто расположив рядом два контакта и капнув на них водой. Например, используя пример из главы 4 и ИК-датчик, вы можете создать лампу, которая реагирует на присутствие человека, или вы можете применить датчик наклона чтобы она включалась при наклоне в определённую сторону.

Arduino:Знакомство с Arduino/Знакомство с Arduino Esplora

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

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

Теперь измените цифры так, чтобы светодиод был включен на четверть того времени, пока он выключен. Рассмотрим подробнее каждый из. В пункте Файл можно найти команды, отвечающие за создание новой программы, чтение старой, сохранения её изменений, а также команды для загрузки программы на микроконтроллер. Создать создать новую программу скетч ; Открыть открыть существующую программу; Папка со скетчами открыть программу из заданной папки; Примеры открыть пример программы; Закрыть закрыть текущее окно.

Сохранить сохранить изменения в ранее сохранененной программе; Сохранить как сохранить новую программу, с указанием имени; Загрузить загрузить программу в Arduino; Загрузить с помощью программатора загрузить программу посредством программатора; Настройка печати настройка принтера; Пачать вывод на печать кода программы; Настройки настройки редактора; Выход выход из Arduino IDE.

Пункт меню Правка содержит команды, связанные с редактирование текст программы, включая копирование, вставку, настройку отступов и поиск по ключевому слову. В разделе Скетч размещаются команды для управления компиляцией программы.

Пункт меню Сервис включает в себя вспомогательные функции для работы с самим микроконтроллером. Автоформатирование автоматическая расстановка отступов, переносов строк и. Наконец, меню Справка содержит подробное описание всех функций самого редактора Arduino IDE, а также всевозможные команды и приемы работы с платформой Arduino. Вкладки Каждая программа для Arduino может состоять из нескольких файлов.

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

Ниже приведны основные конструкции и условности языка, необходимые для успешного прохождения данного курса. Каждое выражение заканчивается символом ; точка с запятой. Тело функций и составных операторов if, else, for, while обособляется фигурными скобками аналогично Begin End в языке Pascal. Строки обособляются обычными двойными кавычками.

Символы обособляются одинарными кавычками: