Стрела. Моторы (мотор М2) Копосов Д.Г. / 27.06.2014 Продолжу эксперименты со Стрелой, но уже в теплой обстановке Крыма.Strela — это Arduino-совместимая платформа, предназначенная для уменьшения времени на постройку роботов и упрощения работы с ними. Она выполнена на основе микроконтроллера ATMega32u4 и обладает большим количеством цифровых и аналоговых входов/выходов, выведенных на трехштырьковые контакты. Плата содержит DC-DC преобразователь, позволяет управлять двумя коллекторными моторами постоянного тока до 2А на один канал с напряжением до 24В, подключать модули беспроводной связи и LCD-экран.В одном из предыдущих постов был рассмотрен вопрос управления моторами, подключенными к робоконтроллеру Strela.Точнее мотором M1. А ведь есть еще мотор M2.Попытка сделать все по аналогии не привела к цели. Стал разбираться, чем может быть вызван такой сюрприз..Как только я получил ответ из Амперки - реально обрадовался!И вот почему:0. Для простоты можно использовать удобную библиотеку с простыми командами - можно будет начинать с 7 класса.1. Поиск соответствия контактов на Стреле - это интересная лабораторная работа для школьников, которая еще и страх снимает перед перетыканием светодиодов и датчиков, когда плата под питанием. 2. Один из моторов отлично работает по digitalWrite (analogWrite). Это - доступность простых проектов с одним мотором.3. Второй мотор... Это самая крутая особенность - милости просим в регистры. Это шикарная методическая идея! Даже я никогда бы не полез туда (что уж говорить о школьниках), а тут повод, аккуратно подстроенный педагогом. Итак, как управлять вторым мотором.Колеса решил в отпуск не брать, что нашлось, то и использовал. Комментарии к коду.Всего на чипе ATmega32u4 (именно он на Стреле) 6 портов: A..F. Каждый порт (в нашем случае Е) управляется 3 регистрами. Регистр DDR определяет чем будет являться нога (pin) входом или выходом. При помощи регистра PORT можно установить pin в состояние HIGH или LOW. При помощи регистра PIN можно считать состояние ножек Arduino, когда они работает на вход.В C++ есть два оператора побитового сдвига: оператор сдвига влево << и оператор сдвига вправо >>. Эти операторы заставляют биты левого операнда сдвинуться влево или вправо на то количество позиций, которое указано во втором операнде.x = 1; // 00000001x = 1 << 1; // 00000010x = 1 << 2; // 00000100| - побитовое ИЛИ, ~ - побитовое НЕ. Подробнее...Благодаря такой возможности на Стреле мы можем постепенно "заманивать" (втягивать) школьников в сложные темы.И не забывать по ЕГЭ (в В1 могут встретиться задания, в которых присутствует термин сдвиг). STRELA arduino