Найти тему
VoltStrimLab

Как переменная в Arduino управляет графикой на экране монитора

Оглавление

Привет, друзья!

В статье: Panda Paint - программа антистресс. Создаём за 5 минут мы с вами создали программу в mBlock, с помощью которой можно рисовать на экране примитивные рисунки, которые, благодаря случайным изменениям кисти, превращаются в замысловатые узоры.

Программа Panda Paint созданная в mBlock
Программа Panda Paint созданная в mBlock

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

Приятного вам прочтения.

Меняем кисть

Открываем сайт mBlock, создаем новую программу.

Алгоритм Paint для программы mBlock
Алгоритм Paint для программы mBlock

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

https://yadi.sk/d/Stoc1dSC9gRXaQ

Скачайте файл на компьютер и запустите в программе mBlock.

Открываем файл сохраненный на компьютере
Открываем файл сохраненный на компьютере

В разделе Персонажи нажимаем кнопку Костюмы.

Меняем кисть в персонаж в программе mBlock
Меняем кисть в персонаж в программе mBlock

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

Добавить костюм в программе mBlock
Добавить костюм в программе mBlock

В библиотеке костюмов в разделе Продукты выбираем костюм Apple1 и нажимаем кнопку Ок.

Библиотека костюмов в программе mBlock
Библиотека костюмов в программе mBlock

Оба костюма Панды за ненадобностью удаляем.

Удаляем костюмы в программе mBlock
Удаляем костюмы в программе mBlock

Теперь остался только костюм "яблоко", он и будет новой кистью. Закрываем редактор костюмов.

Закрываем редактор костюмов в программе mBlock
Закрываем редактор костюмов в программе mBlock

Сохраните, запустите программу и посмотрите, как стало интересно.

Запуск программы в программе mBlock
Запуск программы в программе mBlock

На этом изменения можно было бы и закончить, но мы же решили менять размер кисти интерактивно.

Подключаем Arduino

Для этого вам понадобиться плата Arduino Uno или Arduino Nano, я покажу на примере Arduino Uno.

Придется собрать такую схему, а для этого вам ещё нужен переменный резистор (потенциометр) на 10 кОм, я взял на 50 кОм, можно и так.

Схема управления размером кисти в программе mBlock
Схема управления размером кисти в программе mBlock

Можно использовать схему из статьи: Управляем светодиодами с помощью потенциометра, наличие светодиодов никак не помешает, мы их задействовать не будем.

Схема из статьи: Управляем светодиодами с помощью потенциометра
Схема из статьи: Управляем светодиодами с помощью потенциометра

Если вы собрали схему, то переходим к изменению алгоритма программы.

Интерактивное управление размером кисти

В программе Paint, созданной в mBlock, переходим на вкладку Устройства и добавляем новое устройство.

Добавляем новое устройство в программе mBlock
Добавляем новое устройство в программе mBlock

В Библиотеке устройств выбираем плату Arduino Uno и нажимаем кнопку Ок.

Библиотека устройств в программе mBlock
Библиотека устройств в программе mBlock

Если кнопка Жить не активна, нажимаем на неё, чтобы активировать. Кнопку Подключение пока не включаем.

Кнопка Жить в программе mBlock
Кнопка Жить в программе mBlock

Нажимаем кнопку Создать переменную, назовём её Кисть. Подробнее как создать переменную в программе mBlock читайте здесь.

Создаем переменную в программе mBlock
Создаем переменную в программе mBlock

В меню команд Переменные появились новые блоки, а на сцене появилось окошко Кисть, в нём будет отображаться изменение переменной от 0 до 1023.

Переменная Кисть в программе mBlock
Переменная Кисть в программе mBlock

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

Во вкладке меню блоков События перетаскиваем в область составления программы блок-команду при нажатии зелёного флажка.

Меню блоков События в программе mBlock
Меню блоков События в программе mBlock

В меню блоков Управление перетаскиваем блок всегда.

Меню блоков Управление в программе mBlock
Меню блоков Управление в программе mBlock

В блок всегда вставляем блок задать для Кисть значение 0 из меню блоков Переменные.

Меню блоков Переменные в программе mBlock
Меню блоков Переменные в программе mBlock

Последний блок в разделе Устройства как вишенка на торт. Добавляем блок считывать аналоговый порт (А) 0 из меню команд Контакты в окошко блока задать для Кисть значение 0.

Меню блоков Контакты в программе mBlock
Меню блоков Контакты в программе mBlock

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

Корректируем команды кисти

Во вкладке Персонажи заходим в меню команд Операторы и устанавливаем оператор деление в блок изменить размер на 50%.

Делить будем на пять, поэтому добавляем 5 в окошко блока деление.

Меню блоков Контакты в программе mBlock
Меню блоков Контакты в программе mBlock

Переходим в меню Переменные и переменную Кисть вставляем в первое окошко блока деление перед знаком деления.

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

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

На этом сегодня всё, надеюсь было интересно.

Продолжение следует ...

Ответьте пожалуйста на вопрос, для нас это важно.

Вы можете помочь каналу в создании интересного контента!

Хотите больше статей о программировании, рекомендую перейти по ссылке в меню нашего навигатора канала:

Страница навигации XOD IDE или Raspberry Pi & Scratch
или Как выгодно покупать на AliExpress
Экспериментируйте!!!
Спасибо, что дочитали статью до конца. Надеюсь статья была вам полезна и интересна. Понравилась статья, ставьте палец вверх.
И не забывайте  подписывайтесь на наш канал :)