Оглавление:

Подключение обработки и Arduino и создание 7-сегментного и сервопривода GUI-контроллера: 4 шага
Подключение обработки и Arduino и создание 7-сегментного и сервопривода GUI-контроллера: 4 шага

Видео: Подключение обработки и Arduino и создание 7-сегментного и сервопривода GUI-контроллера: 4 шага

Видео: Подключение обработки и Arduino и создание 7-сегментного и сервопривода GUI-контроллера: 4 шага
Видео: Уроки Arduino #5 - работа с цифровыми портами и подключение кнопки 2024, Ноябрь
Anonim
Соединение обработки и Arduino и создание 7-сегментного и сервопривода GUI-контроллера
Соединение обработки и Arduino и создание 7-сегментного и сервопривода GUI-контроллера

Для некоторых проектов вам необходимо использовать Arduino, поскольку он обеспечивает простую платформу для прототипирования, но отображение графики на последовательном мониторе Arduino может занять довольно много времени и даже сложно. Вы можете отображать графики на последовательном мониторе Arduino, но графики - это не единственное, что вам может понадобиться отображать. Все интерактивные объекты, такие как слайдеры, кнопки, программы с выводом 2D, 3D, PDF или SVG, а также вы можете легко создавать анимацию. Режим программирования по умолчанию для обработки - Java, но вы можете переключить его на Android, p5.js, REPL, CoffeeScript и JavaScript. Однако в этом руководстве мы будем использовать режим программирования Java.

Весь контент и код также доступны на моем github здесь.

Шаг 1. Использование Processing.serial

Код обработки

Первые две строки кода будут

import processing.serial. *; Последовательный myPort;

Здесь в первой строке мы импортируем библиотеку - обработку, а во второй строке мы создаем объект класса Serial с именем myPort, вы можете назвать его как хотите, следуя правилам именования идентификаторов.

При обработке у нас есть void setup () и void draw (), где void - это тип возвращаемого значения функции, вы также можете изменить его на int setup () и int draw () или другой тип данных, который вам нравится, но вам нужно будет вернуть значение, которое имеет тот же тип данных, что и тип данных, который вы используете перед функциями.

в setup () мы пишем операторы, которые нам нужно выполнить один раз, тогда как в draw () мы пишем операторы, которые нам нужно выполнить несколько раз. Две упомянутые выше строки кода должны быть написаны выше void setup (), потому что им нужен глобальный доступ.

В void setup () мы инициализируем объект myPort.

void setup () {

размер (800, 800);

myPort = новый серийный номер (это, «COM18», 9600);

}

Размер строки (800, 800); определяет размер экрана 800 на 800 пикселей.

Ключевое слово new во второй строке используется для резервирования места для объекта в памяти, аргумент this - это ссылочная переменная, которая ссылается на текущий объект. Аргумент COM18 - это порт подключенного Arduino, он нам нужен, так как мы будем передавать данные через последовательный интерфейс. Число 18 может быть другим в вашем случае, вы можете найти его в разделе «Инструменты»> «Порт» в Arduino IDE, а 9600 - это скорость передачи данных, которую вы можете изменить как в Arduino, так и в обработке.

Шаг 2. Разберитесь в серийном классе

Конструктор для Serial

Последовательный (родительский, portName, baudRate, четность, dataBits, stopBits)

Аргументы:

родитель: обычно используют "это"

baudRate (int): 9600 по умолчанию

portName (String): имя порта (по умолчанию COM1)

четность (символ): «N» - нет, «E» - четное, «O» - нечетное, «M» - метка, «S» - пробел (по умолчанию используется «N»)

dataBits (int): 8 по умолчанию

stopBits (float): 1.0, 1.5 или 2.0 (по умолчанию 1.0)

Важные методы:

  1. myPort.available () - возвращает количество доступных байтов.
  2. myPort.clear () - очищает буфер и удаляет все хранящиеся в нем данные.
  3. myPort.read () - возвращает число от 0 до 255 для следующего байта, ожидающего в буфере.
  4. myPort.readString () - возвращает все данные из буфера в виде String или null, если нет ничего доступного.
  5. myPort.write ("test") - записывает байты, символы, целые числа, байты , строки в последовательный порт.
  6. myPort.stop () - останавливает передачу данных на порт.

Шаг 3: Последовательный класс Arduino

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

В Arduino есть 2 функции, называемые setup () и loop (), установка выполняется только один раз, но цикл выполняется несколько раз. В setup () нам нужно написать, используя метод begin () для запуска последовательной связи. В Arduino, в отличие от обработки, нам не нужно указывать порт в качестве аргументов метода begin (), поскольку мы уже указываем порт при загрузке скетча в Arduino.

Итак, setup () будет выглядеть так:

void setup () {

Serial.begin (9600); // запускаем последовательную связь

}

9600 здесь указывает скорость передачи, о которой мы также упоминали в файле обработки. Для правильной связи обе скорости передачи должны быть равны, иначе вы можете увидеть последовательный вывод как что-то тарабарщину.

Теперь давайте посмотрим на часть loop (). Эта часть кода выполняется несколько раз. Если мы хотим прочитать какие-то данные через порт, мы будем использовать метод Serial.read (). Эта функция возвращает null, если данные недоступны, поэтому мы будем вызывать этот метод только тогда, когда у нас есть некоторые данные в доступном в последовательном потоке.

Чтобы проверить, есть ли какие-то данные, мы воспользуемся методом Serial.available (). Если он возвращает значение больше 0 - некоторые данные доступны.

Итак, часть loop () будет выглядеть так:

void loop () {

if (Serial.available ()> 0) {// если какие-то данные доступны или в последовательном порту

состояние символа = Serial.read (); // читаем значение

// операторы if или переключение регистра

}

}

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

Шаг 4. Создайте 7-сегментный контроллер графического интерфейса

Создание 7-сегментного контроллера графического интерфейса пользователя
Создание 7-сегментного контроллера графического интерфейса пользователя
Создание 7-сегментного контроллера графического интерфейса пользователя
Создание 7-сегментного контроллера графического интерфейса пользователя
Создание 7-сегментного контроллера графического интерфейса пользователя
Создание 7-сегментного контроллера графического интерфейса пользователя

Файлы прикреплены сюда. Примечание. Для обработки вам также потребуется установить библиотеку control p5, которую я использовал для создания интерактивных кнопок графического интерфейса пользователя.

Номера контактов

7 сегментов (в алфавитном порядке) относятся к изображению

а - цифровой вывод 2

б - цифровой вывод 3

c - цифровой вывод 4

d - цифровой вывод 5

e - цифровой вывод 6

f - цифровой вывод 7

g - цифровой вывод 8

dp - цифровой вывод 9

Весь контент и код также доступны на моем github здесь

Рекомендуемые: