Базовый курс на Ардуино

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

Ардуино Уно
Самая популярная версия платы — Arduino Uno R3

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

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

Описание

Тема 1. Знакомство с платформой Arduino — Знакомимся со средой программирования Arduino IDE и с беспаечной макетной платой.

Тема 2. Работа с цифровыми сигналами — Подключаем светодиод, зуммер и кнопку.

Тема 3. Индикация — Знакомимся с сегментным индикатором и жидкокристаллическим дисплеем.

Тема 4. Работа с аналоговыми сигналами — Подключаем потенциометр, датчик температуры и фоторезистор.

Тема 5. Управление двигателями — Управляем двигателем с помощью ШИМ, и двигаем серводвигателем.

Тема 6. Связь

Спецификация

Продолжительность курса — 16 академических часов. По два часа на каждое занятие.

Получаемые знания:

  • основы программирования на языке с++;
  • основы построения электрических цепей;
  • принципы обработки цифровых и аналоговых сигналов;
  • принципы работы ШИМ.

Получаемые умения:

  • работа с Arduino Uno через ПК; автономная работа Arduino Uno;
  • составление программ для Arduino Uno; загрузка программ в контроллер;
  • работа с беспаечной макетной платой;
  • подключение электронных компонентов: светодиод, зуммер, резистор, кнопка, потенциометр;
  • подключение индикаторов: ЖК дисплей, 7-сегментный индикатор;
  • работа с АЦП, подключение потенциометра, датчика температуры, датчика освещенности;
  • управление двигателем при помощи ШИМ;
  • использование датчика Холла; одометрия.


Изменено:

Базовый курс на Ардуино: 23 комментария

  1. Здравствуйте. Меня очень заинтересовала тема робототехники. Очень захотел собрать робота на основе Arduino. Как мне можно приобрести комплект для сборки робота arduino в Беларуси Минск и сколько это будет стоить, Заранее Вам благодарен.

    • Проще всего будет поискать подходящие компоненты в каком-нибудь популярном магазине типа e-bay или aliexpress. Также доступны чертежи наших наборов, по которым вы можете изготовить кузов робота у себя в городе (сейчас много компаний, которые предлагают резку оргстекла/пластика лазером). А в скором времени эти наборы появятся в нашем интернет магазине shop.makeitlab.ru!

          • Здравствуйте, а есть ли ссылка на тему 6? Я просто начинаю работать с ардуино и немного не понимаю, но до конца лета я хочу всё выучить и проблема нет ссылки на тему6. Связь.

          • Темы 6 в таком же виде не будет. Однако, будем делать серию уроков по связи. Если есть конкретный вопрос, то быть может с него и начнем!:)

  2. Из приобретенного опыта роботостроения я сделал вывод, что покупать механику у китайцев — долго и дорого. Проще использовать уже имеющиеся в продаже игрушечные автомобили и т.п. (с чего обычно начинают). Нужно иметь ввиду, что понадобится помудрить с шестеренками, кои купить не просто, но выручают китайцы (dx.com, к примеру). Можно и на базе металлического детского конструктора собрать простую платформу. Но вот электронная начинка — это уже к китайцам. У них в 2-3 раза дешевле, за это стОит потерпеть и поволноваться около месяца. Если не в терпеж, то есть наши перепродавцы Амперка, Робоворкс и т.п. У Робоворксов есть неплохие аналоги типа CraftDuino. Двигатели тоже лучше брать у китайцев, поскольку обычные, что без редукторов, слабы и много потребляют. Первый робот-машина была сделана на базе инерционного полицейского джипа. В результате доработок, помимо движения по комнате и объезда препятствий, эта игрушка была с мигалкой на крыше и издавала грозные звуки, когда встречала препятствие на пути 🙂 Ну а дальше — больше. Танки, гонки, лабиринты.Самое захватывающее для детей — это квадрокоптеры, но тут уже более старший и продвинутый уровень, поскольку требуется более сложная математика поведения модели. В общем, есть из чего делать, было бы желание 🙂

  3. Спасибо за ОТЛИЧНЫЕ уроки, описание и толкование. Не останавливайтесь, сделайте ещё уроки пожалуйста для средне понимающих и продвинутых в программировании! 🙂
    А то везде в инете только всё самое базовое….

  4. Зачем в задании 2,3,1, пример 1. объявленной переменной k присваивается значение «0», ведь в функции опять идёт присвоение?
    int buzz=2;
    int k=0;
    ………

    for(k=0; k<3; k=k+1)
    ……..
    Это обяхательно делать или нет?

    И второй вопрос.
    Зачем в примере с кнопкой, при объявлении используется "const".

    const int btn=3;
    const int buzz=4;
    byte val=0
    Почему этого нет в предидущих примерах?
    Ведь принцип работы кнопки и её привязка работают аналогично.

    • 1) Если k используется только в for, то присваивать значение по-умолчанию не обязательно. Более того, переменную-итератор можно объявить прямо в for:
      for( int k=0; k<3; k++ )
      2) const служит для объявления переменных в режиме чтения. То есть их нельзя менять во время выполнения программы. Это делать не обязательно, но принято.

      • Спасибо.
        А есть ли курс только по языку, используемому в Ардуино?
        Типа справочника.
        Я понимаю, что ноги растут из С++, но для Ардуины используется не полноценный С++, а какая-то кастрированная версия.

  5. Добрый день Олег,

    Купил продвинутый набор, в нем нету макетного стенда с первого урока. Т.е. ни болтов, ни гаек,ни плексигласовых поверхностей. Однако в уроке он есть. Это так и задумано? )

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

  6. Sharp GP2Y1010AU0F

    Пожалуста! у меня не получается , датчик работает только когда компьютере USB, идёт замер плотности пыли, и пылесос на Arduino не работает измерения плотности пыли в программе, установленной, и эта проблема В чем причина?
    http://arduinodev.woofex.net/2012/12/01/standalone-sharp-dust-sensor/

  7. Здравствуйте!
    Скажите, планируется ли продвинутый курс для новичков. Было бы интересно, например, узнать подробно о построении многоуровневого меню на дисплее NOKIA 5110 (или на любом другом), управление моторами (или другой полезной нагрузкой) из меню, задание режимов и т.д.?
    Спасибо.
    С уважением, Роман.

    • Роман, думаю специальный курс не имеет смысл делать, но вот отдельную статью про меню обязательно напишем. Только скорее всего для символьного дисплея 2004 и для OLED. Дисплеи 5110 слишком устарели, китайцы продают б/у матрицы.

  8. После запуска программы, зуммер начинает выдавать по три быстрых звуковых импульса, каждые 2
    секунды. Период каждого импульса ­ 0.6 сек.

    int buzz = 2;
    int k = 0;
    void setup() {
    pinMode(buzz, OUTPUT); // установка 2­го контакта в режим вывода
    }
    void loop() {
    for( k=0; k<3; k=k+1) { // цикл из трех итераций
    digitalWrite(buzz, HIGH); // перевод вывода №2 в активное состояние
    delay(300); // пауза 1­секунда *******
    digitalWrite(buzz, LOW); // перевод вывода №2 в неактивное состояние
    delay(300); // пауза 1­секунда *******
    }
    delay(2000);
    }

    ***********************в данном месте пауза 1 сек при delay(300), когда в другом скече указанном выше, delay(1000); // пауза 1­секунда. как это так выходит при delay(300) и delay(1000) длительность в секундах закоментированна одна и таже? и тут же delay(2000) дает паузу 2с, если по описанию

    • Спасибо за замечание! Сейчас ведем работу над переработкой курса, поправим обязательно.
      В качестве аргумента функция delay принимает миллисекунды. Так что delay(300) даёт паузу 300 мс.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.