S4A

S4A 8 часть

Опубликовано: 05.07.2018

Сервопривод

Подключим к контроллеру потенциометр к контакту A0 и сервопривод к 8 контакту.

 

S4A часть 7

Опубликовано: 04.07.2018

Элемент ввода джойстик

Это более сложный элемент, который в своем составе имеет несколько мелких элементов: кнопку и два потенциометра. Один потенциометр определяет положение рычажка по оси x, а второй – по оси y. Изначальное положение рычажка дают средние значения = 512.

Джойстик имеет пять контактов подключения, один для кнопки, два для координат x и y, 5V и контакт GND.

Лабиринт.

Создадим игру лабиринт, для этого нарисуем трассу для нашего лабиринта изменив «Сцену». Внешний вид контроллера Arduino изменим на треугольник.

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

ЗАДАНИЕ

Объединитесь в команды, подключите несколько контроллеров с джойстиками и добавьте на поле треугольники с другими цветами. Определите, кто из вас более умелый в управлении…

Игра «ТАНКИ»

Подключим джойстик, как сделано на Рисунке выше. Проект будет объемным и содержать три объекта (контроллер ардуино, танк и снаряд). Начнем со скрипта контроллера ардуино. Его задачей будет получение данных с джойстика.

A1 — Движение вперед (назад) — Уменьшим диапазон значений в сто раз (получим значения от 0 до 10). Сдвинем диапазон на 5 (от -5 до 5).
Это равно
Создадим переменную вперед для передачи движения

A2 — Поворот вправо (влево) — Уменьшим диапазон значений в сто раз (получим значения от 0 до 10). Сдвинем диапазон на 5 (от -5 до 5).
Это равно
Создадим переменную повернуть для передачи поворота

A3 — Огонь — Будем ловить момент низкого значения.

Чтобы пуля стреляла один раз, создадим переменную состояния, когда она выстрелила и летит (значение =1) и когда она готова к новому полету (значение = 0). Тогда условие огня будет зависеть от двух выражений

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

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

Список объектов проекта

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

Скрипт управления танком

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

Скрипт обработки движения снаряда

Так как мой танк по картинке смотрит налево, то движение снаряда будет на шаг = (-1). Как только снаряд достигнет края, скрипт остановится и снаряд будет готов к новому выстрелу.
Теперь наш танк и передвигается и стреляет. Давайте добавим на поле препятствия. Для этого выделим сцену (Это и есть наше поле) перейдем к редактированию фона и нарисуем себе препятствия (В моем случае это выглядит как показано на Рисунке).

Внешний вид поля

Для того, чтобы танк не мог преодолевать препятствия и снаряд прекращал движение при соприкосновением с препятствием, мы добавим в наши скрипты для танка и для снаряда обработку соприкосновения с препятствием по цвету.

Скрипт танка с обработкой препятствия

Скрипт снаряда

Теперь мы можем объединить усилия – подключив к компьютеру несколько джойстиков и добавить другие танки… Также потребуется доработать скрипты, чтобы при попадании снаряда врага танк считался подбитым (Рисунок 6.10).

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

Скрипт танка с двумя противниками

S4A часть 6

Опубликовано: 03.07.2018

Элемент вывода, семисегментник

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

Элемент ввода, фоторезистор

Фоторезистор – элемент, определяющий яркость падающего света на него и выражающего это значение числом диапазона от 0 до 1023. Подключение элемента осуществляется к контактам A0-A5. Пример подключения показан на Рисунке. В зависимости от модели фоторезистора следует использовать тот или иной номинал сопротивления. В моем случае я применял 220 Ом или 1КОм.

Счет на семисегментнике

Для семисегментника задействуем  5, 6, 9, 10, 11, 12, 13 контакты. Рассмотрим высвечивание той или иной цифры при данном подключении.

0 1 2 3 4 5 6 7 8 9
А(9) 255 0 255 255 0 255 255 255 255 255
B(10) Вкл Вкл Вкл Вкл Вкл Откл Откл Вкл Вкл Вкл
C(11) Вкл Вкл Откл Вкл Вкл Вкл Вкл Вкл Вкл Вкл
D(12) Вкл Откл Вкл Вкл Откл Вкл Вкл Откл Вкл Вкл
E(13) Вкл Откл Вкл Откл Откл Откл Вкл Откл Вкл Откл
F(6) 255 0 0 0 255 255 255 0 255 255
G(5) 0 0 255 255 255 255 255 0 255 255

Нам понадобится 10 процедур отображения чисел, а основной скрипт будет выглядеть, как на Рисунке

Попробуйте самостоятельно дописать процедуры для счета семисегментника.
Для счета есть множество решений и хочу предложить еще одно, записав в процедуру самые популярные значения сегментов. Заметим, что для всех сегментов чаще всего используется включенное положение, за исключением сегмента E(13). Составим процедуру предустановка и прежде, чем записывать цифру будем вызывать ее. Такое состояние соответствует числу 9.

Пример работы с фоторезистором

Как мы уже знаем термистор передает значение в зависимости от уровня освещения попадаемого на него.

Добавьте второй объект в виде шара, соберите приложение.

Вывод уровня яркости на семисегментник

Совместив два предыдущих примера можно выводить яркость фоторезистора на семисегментник.

S4A часть 5

Опубликовано: 02.07.2018

Аналоговые контакты (A0-A6)

Аналоговые контакты А0-А6 предназначены для подключения элементов ввода. Они могут принимать значения в диапазоне от 0 до 1023, при использовании блока аналоговое значение.

Элемент ввода, потенциометр

Потенциометр – это элемент, рассчитывающий положение поворота, через сопротивление. Этот параметр он передает в качестве элемента ввода. Потенциометр возможно назвать «краном», который регулирует проходящее через него напряжение.

 

Game-Ball через потенциометр

Добавим объекты в наше приложение. Для этого щелкнем на кнопку рисовать новый объект или открыть новый объект из файла. Нам потребуется небольшой круг. Сдвинем плату, чтобы ее не было заметно и скроем панель сенсоров.

Напишем небольшой скрипт для нашего объекта в виде шара.

Скрипт имеет небольшое количество действий. Оператор идти в … перемещает объект в указанное место, при этом точка с координатами x=0,y=0 по умолчанию является центром экрана анимации. Оператор повернуть в направление разворачивает объект в случайное направление, а оператор идти шагов перемешает объект в этом направлении. Но наш шарик уходит из области экрана и его становится не видно. Давайте заставим его при касании стенок отталкиваться.

Добавим еще два объекта в виде прямых линий. Одна во всю ширину окна, вторая на небольшую его часть, как на Рисунке.


Добавим в скрипт обработку касания шара с нашими полосами.


В зависимости от ширины доски и рабочего поля следующий кусок кода может быть скорректирован. Попробуйте подобрать наиболее подходящие значения в уравнение «Положение/2.5 – 300».


ЗАДАНИЕ

Создать игру. В качестве элементов ввода подключить к контроллеру потенциометр, также будем использовать кнопки на клавиатуре. Добавить объекты на поле в виде черных и красных кружочков, а также перерисовать контроллер в виде мяча. Расположить черные и красные кружочки друг под другом в разных местах.

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

Ниже приведены кусочки реализации программного кода.

S4A Часть 4

Опубликовано: 01.07.2018

Радуга цветов, через трехцветный диод

Трехцветный светодиод в своем составе имеет три диода красного, зеленого и синего цветов. При сочетании этих цветов получаются различные оттенки. Подключим светодиод следующим принципом: первый контакт (красный цвет) – 5 контакт контроллера второй контакт (Ground) – GND контакт на макетной плате третий контакт (зеленый цвет) – 6 контакт контроллера, четвертый контакт (синий цвет) – 9 контакт контроллера

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

Значение красного диода (5) Значение зеленого диода (6) Значение синего диода (9)
Красный 255 0 0
Оранжевый 255 127 0
Желтый 255 255 0
Зеленый 0 255 0
Голубой 0 255 255
Синий 0 0 255
Фиолетовый 255 0 255

Возможно написать программный код, где цвета будут перебираться последовательно. Для этого:

  • задаем начальное значении 0,0,0;
  • поднимаем значение красного до 255;
  • поднимаем значение зеленого до 255;
  • опускаем значение красного до 0;
  • поднимаем значение синего до 255;
  • опускаем значение зеленого до 0;
  • поднимаем значение красного до 255;
  • опускаем значение синего до 0;

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

Моргание шестью диодами

Данный проект будет смотреться довольно эффектно при аккуратном расположении всех элементов. Задача и реализация не сложная. Требуется расположить шесть светодиодов в небольшой круг и прописать по очереди для каждого включение и выключение. Результатом выполнения будет мигание диодов по кругу. Отмечу важным не запутаться в подключении диодов и выписать последовательность подключения по кругу. В моем случае 6,9,10,13,11,12

Программный код не затейливый – последовательное включение и выключение диодов. Возможны варианты исполнения, когда будут гореть два (один, три, четыре или пять), а остальные нет.

ЗАДАНИЕ

Добавить к семи светодиодам кнопку. По нажатию на кнопку менять направление моргания светодиодами.

S4A часть 3

Опубликовано: 01.07.2018

Цифровые контакты (2,3)

Цифровые контакты 2 и 3 предназначены для подключения элементов ввода. При этом значение этих элементов должны принимать два параметра – наличие или отсутствие сигнала при использовании блока «сенсор нажат». Наилучшим примером такого элемента будет кнопка. И значение в диапазоне от 0 до 255, при использовании блока «значение сенсора».

Элемент ввода, кнопка

Элемент достаточно простой, в котором имеются два положения зажато и отпущено. Вот эти два положения кнопка передает компьютеру. Пример подключения кнопки показан на Рисунке.

Кнопочное переключение цвета

Подключите к имеющей схеме две кнопки ко второму и третьему контактам, как показано на картинке.
а) Составьте скрипт который при нажатии на одну кнопку будет увеличивать яркость, а при нажатии на вторую – уменьшать.
б) Составьте скрипт который при зажатии кнопки будет увеличивать яркость, а когда кнопка отпущена уменьшать.

 


Кнопочный маячок

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

ЗАДАНИЕ

Подключить две кнопки. Составить программный код, подсчитывающий количество нажатий за минуту. На экране отображать шкалы количества нажатий игроками.

 

S4A часть 2

Опубликовано: 01.07.2018

Элемент вывода, светодиод

Светодиод (англ. Light Emitting Diode или просто LED) – устройство вывода в виде миниатюрной «лампочки». Элемент светится, когда через него проходит ток от анода (+) к катоду (−).
S4A, Arduino, робототехника, подключение светодиода

Цифровые контакты (10,11,12,13)

Для диода отлично подходят цифровые контакты 10, 11, 12, 13. Для их управления в группе «Движения» используются команды: «Цифровой 13 Вкл» (для включения) и «Цифровой 13 Выкл»(для отключения).

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

S4A, Arduino, робототехника, моргание светодиодом

Чтобы сделать моргание светодиода постоянным, возможно воспользоваться блоками повторения «Всегда»или «Повторить».

Светофор.

Для данного проекта нам понадобится три светодиода красного, желтого и зеленого цветов. Подключим светодиоды, как показано на Рисунке. Светодиоды подключим к 13, 12 и 11 контактам.

S4A, Arduino, робототехника, подключение светодиодов к контроллеру

Прежде, чем писать скрипт распишем свой алгоритм светофора:

  • горит красный 5 секунд;
  • загорается желтый на 5 секунд, в это-же время красный моргает 3-и раза за 3-и секунды;
  • тухнет желтый и загорается зеленый;
  • загорается желтый на 5 секунд, в это-же время зеленый моргает 3-и раза за 3-и секунды.

Попробуйте самостоятельно составить свой скрипт для собственного светофора.

Также на мониторе сделаем отображение светофора, для этого понадобится создать костюмы (изображения, которые будем менять по состояниям).

S4A, Arduino, робототехника, костюмы для светофора

Пример программного скрипта для светофора:

S4A, Arduino, робототехника, светофор на трех светодиодах

Аналоговый контакты (5, 6, 9)

Также мы можем использовать для светодиодов контакты с ШИМ, которые визуально изменяют яркость свечения диода в пределах от 0 до 255.

Плавное изменение яркости диода

Если диод подключить к аналоговому входу 5 (6 или 9), то возможно задавать ему значение от 0 до 255, в свою очередь это значение будет влиять на яркость этого диода. Подключим диод к 5-му контакту и напишем скрипт плавного изменения яркости.

ЗАДАНИЕ

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

S4A часть 1

Опубликовано: 01.07.2018

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