Съдържание:

Свързване на Processing и Arduino и направете 7 сегментен и серво GUI контролер: 4 стъпки
Свързване на Processing и Arduino и направете 7 сегментен и серво GUI контролер: 4 стъпки

Видео: Свързване на Processing и Arduino и направете 7 сегментен и серво GUI контролер: 4 стъпки

Видео: Свързване на Processing и Arduino и направете 7 сегментен и серво GUI контролер: 4 стъпки
Видео: DIY Radar With Ultrasonic Sensor And Chat-GPT Generated Arduino Code | Coders Cafe 2024, Декември
Anonim
Свързване на Processing и Arduino и Направете 7 Segment и Servo GUI контролер
Свързване на Processing и Arduino и Направете 7 Segment и Servo GUI контролер

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

Цялото съдържание и код също са достъпни на моя github тук.

Стъпка 1: Използване на Processing.serial

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

Първите два реда код ще бъдат

обработка на внос.serial.*; Сериен myPort;

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

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

в setup () пишем операторите, които трябва да изпълним веднъж, докато в draw () пишем изразите, които трябва да изпълним няколко пъти. Двата реда код, споменати по -горе, трябва да бъдат написани над void setup (), защото те трябва да имат глобален достъп.

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

void setup () {

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

myPort = нов сериен (това, "COM18", 9600);

}

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

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

Стъпка 2: Разберете серийния клас

Конструкторът за Serial

Сериен (родителски, portName, baudRate, паритет, dataBits, stopBits)

Аргументи:

родител: обикновено използвайте "това"

baudRate (int): 9600 е по подразбиране

portName (String): име на порта (COM1 е по подразбиране)

parity (char): '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 ("тест") - Записва байтове, символи, ints, байтове , низове към серийния порт.
  6. myPort.stop () - Прекъсва комуникацията на данните на порта.

Стъпка 3: Сериен клас Arduino

Не е необходимо да импортирате серийния клас в Arduino, преди да го използвате.

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

Така че setup () ще изглежда така:

void setup () {

Serial.begin (9600); // стартира серийната комуникация

}

9600 тук определя скоростта на предаване, която също споменахме за това във файла за обработка. За правилна комуникация и скоростта на предаване трябва да бъде равна или може да видите серийния изход като нещо глупост.

Сега нека видим частта loop (). Тази част от кода се изпълнява няколко пъти. Ако искаме да прочетем някои данни от порта, ще използваме метода Serial.read (). Тази функция връща null, ако няма налични данни, така че ще извикаме този метод само когато имаме някои данни в наличния в Serial stream.

За да проверим дали има налични данни, ще използваме метода Serial.available (). Ако връща стойност по -голяма от 0 - налични са някои данни.

Така че частта loop () ще изглежда така:

void loop () {

if (Serial.available ()> 0) {// ако има налични данни за в серийния порт

char state = Serial.read (); // прочетете стойността

// ако изявления или случай на превключване

}

}

Сега можем да използваме ако стълба или ако има много възможни резултати, можем да използваме и случай на превключване за променливо състояние.

Стъпка 4: Изградете GUI 7 сегментен контролер

Изградете GUI 7 сегментен контролер
Изградете GUI 7 сегментен контролер
Изградете GUI 7 сегментен контролер
Изградете GUI 7 сегментен контролер
Изградете GUI 7 сегментен контролер
Изградете GUI 7 сегментен контролер

Файловете са прикачени тук. Забележка: За обработка ще трябва да инсталирате и контролната p5 библиотека, която използвах за създаване на интерактивни бутони с графичен интерфейс.

ПИН номера

7 сегмент (по азбучен ред) се отнасят до изображението

a - цифров щифт 2

b - цифров извод 3

c - цифров извод 4

d - цифров щифт 5

e - цифров пин 6

f - цифров щифт 7

g - цифров щифт 8

dp - цифров щифт 9

Цялото съдържание и код също са достъпни на моя github тук

Препоръчано: