Оглавление:
- Шаг 1. Использование Processing.serial
- Шаг 2. Разберитесь в серийном классе
- Шаг 3: Последовательный класс Arduino
- Шаг 4. Создайте 7-сегментный контроллер графического интерфейса
Видео: Подключение обработки и Arduino и создание 7-сегментного и сервопривода GUI-контроллера: 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
Для некоторых проектов вам необходимо использовать 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)
Важные методы:
- myPort.available () - возвращает количество доступных байтов.
- myPort.clear () - очищает буфер и удаляет все хранящиеся в нем данные.
- myPort.read () - возвращает число от 0 до 255 для следующего байта, ожидающего в буфере.
- myPort.readString () - возвращает все данные из буфера в виде String или null, если нет ничего доступного.
- myPort.write ("test") - записывает байты, символы, целые числа, байты , строки в последовательный порт.
- 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-сегментный контроллер графического интерфейса
Файлы прикреплены сюда. Примечание. Для обработки вам также потребуется установить библиотеку control p5, которую я использовал для создания интерактивных кнопок графического интерфейса пользователя.
Номера контактов
7 сегментов (в алфавитном порядке) относятся к изображению
а - цифровой вывод 2
б - цифровой вывод 3
c - цифровой вывод 4
d - цифровой вывод 5
e - цифровой вывод 6
f - цифровой вывод 7
g - цифровой вывод 8
dp - цифровой вывод 9
Весь контент и код также доступны на моем github здесь
Рекомендуемые:
Модуль питания сервопривода Arduino Adafruit Shield: 3 шага
Модуль питания Arduino Adafruit Servo Shield: этот модуль питания разработан для Arduino Uno в сочетании с 16-канальным Servo Shield от Adafruit. Adafruit Servo Shield - отличное дополнение к Arduino. Но для этого требуется второй блок питания на 5 В. С этим устройством вам все еще нужно 5V
Система обратной связи сервопривода с Arduino: 4 шага
Система обратной связи сервопривода с Arduino: Привет, это моя первая инструкция. МОЙ проект позволяет вам получить положение сервопривода на последовательном мониторе или последовательном плоттере вашей Arduino IDE. Это упрощает программирование роботов Arduino, которые используют серводвигатели, такие как роботы-гуманоиды, bip
Правильное подключение светодиодов: последовательное и параллельное подключение: 6 шагов
Правильная разводка светодиодов: последовательное и параллельное соединение: в этой инструкции мы говорим о светодиодах - светоизлучающих диодах и о том, как мы можем их подключить, если у нас есть несколько устройств. Это один урок, который я хотел бы знать с самого начала, потому что, когда я начал возиться с электронными схемами, я построил несколько
Плата сервопривода с Python-GUI и Arduino: 5 шагов
Плата сервоприводов с Python-GUI и Arduino: при создании прототипов или построении моделей самолетов вы часто сталкиваетесь с проблемой, заключающейся в том, что вам нужно проверить ход сервоприводов или установить сервоприводы в среднее положение. всю вашу RC-систему или тест, насколько далеко вы можете продвинуть
Создание собственной мембранно-матричной клавиатуры (и подключение ее к Arduino): 7 шагов (с изображениями)
Создайте собственную мембранно-матричную клавиатуру (и подключите ее к Arduino): Итак, вы хотите создать свою собственную мембранную клавиатуру? Почему? Что ж, создание собственной клавиатуры может быть полезно по многим причинам. Это дешево и легко сделать, его можно использовать в ситуациях, когда его могут вандализировать или украсть без особого разочарования. Это может быть полностью