Мазмұны:

Өңдеу мен Arduino мен 7 сегменті мен сервистік GUI контроллерін қосу: 4 қадам
Өңдеу мен Arduino мен 7 сегменті мен сервистік GUI контроллерін қосу: 4 қадам

Бейне: Өңдеу мен Arduino мен 7 сегменті мен сервистік GUI контроллерін қосу: 4 қадам

Бейне: Өңдеу мен Arduino мен 7 сегменті мен сервистік GUI контроллерін қосу: 4 қадам
Бейне: Кубаева Ж А Күштік кабельдер 2024, Қараша
Anonim
Өңдеу мен Arduino -ны қосу және 7 сегменті мен сервистік GUI контроллері
Өңдеу мен Arduino -ны қосу және 7 сегменті мен сервистік GUI контроллері

Кейбір жобалар үшін сізге Arduino -ны қолдану қажет, себебі ол прототиптеудің қарапайым платформасын ұсынады, бірақ Arduino -ның сериялық мониторында графиканы көрсету ұзақ уақытқа созылуы мүмкін және тіпті қиын. Сіз Arduino сериялық мониторында графиктерді көрсете аласыз, бірақ графиктерді көрсету қажет болуы мүмкін емес. Сырғытпалар, түймелер, 2D, 3D, PDF немесе SVG шығысы бар бағдарламалар сияқты барлық интерактивті объектілер, сонымен қатар сіз анимацияларды оңай жасай аласыз. Өңдеуге арналған әдепкі бағдарламалау режимі Java болып табылады, бірақ сіз оны Android, p5.js, REPL, CoffeeScript және JavaScript -ке ауыстыра аласыз. Бұл нұсқаулықта біз Java бағдарламалау режимін қолданамыз.

Барлық мазмұн мен код осы жерде менің гитубымда қол жетімді.

1 -қадам: Processing.serial пайдалану

Кодты өңдеу

Кодтың алғашқы екі жолы болады

импортты өңдеу.сериал.*; Сериялық myPort;

Мұнда біз бірінші жолда кітапхананы импорттаймыз - өңдейміз, ал екінші жолда біз MyPort деп аталатын Serial класының объектісін құрамыз, сіз оны идентификаторды атау ережелерін сақтай отырып, қалағаныңызша атауға болады.

Өңдеу кезінде бізде void setup () және void draw () бар, онда void - бұл функцияның қайтару түрі, оны int setup () және int draw () немесе сізге ұнайтын басқа деректер түріне өзгертуге болады, бірақ сізге функция алдында қолданатын деректер түрімен бірдей деректер түрі бар мән.

setup () ішінде біз бір рет орындауымыз керек мәлімдемелерді жазамыз, ал draw () кезінде бірнеше рет орындау үшін қажет мәлімдемелерді жазамыз. Жоғарыда аталған кодтың екі жолы void setup () үстінде жазылуы керек, себебі олар жаһандық қатынасқа ие болуы керек.

Void setup () ішінде біз myPort нысанын инициализациялаймыз.

жарамсыз орнату () {

өлшемі (800, 800);

myPort = жаңа сериялық (бұл «COM18», 9600);

}

Жол өлшемі (800, 800); экранның өлшемін 800 пиксельден 800 пиксельге дейін анықтайды.

Екінші жолдағы жаңа кілт сөз жадтағы объект үшін бос орын сақтау үшін қолданылады, бұл аргумент ағымдағы объектіге сілтеме жасайтын сілтеме айнымалысы. COM18 аргументі - Arduino порты қосылған, бізге бұл қажет, өйткені біз деректерді сериялық интерфейс арқылы тасымалдаймыз. Сіздің жағдайыңызда 18 саны басқаша болуы мүмкін, оны Arduino IDE құралдарындағы Құралдар> Портта таба аласыз, ал 9600 - бұл Arduino -да да, Өңдеуде де өзгертуге болатын жіберу жылдамдығы.

2 -қадам: Сериялық сыныпты түсініңіз

Сериялық конструктор

Сериялық (ата -ана, портАтау, 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 немесе нөл ретінде қайтарады.
  5. myPort.write («тест») - сериялық портқа байттарды, таңбаларды, инттерді, байттарды , жолдарды жазады.
  6. myPort.stop () - порттағы деректерді жіберуді тоқтатады.

3 -қадам: Arduino сериялық класы

Қолданар алдында Arduino -да сериялық сыныпты импорттаудың қажеті жоқ.

Arduino -де setup () және loop () деп аталатын 2 функция бар, тек бір рет орындалады, бірақ цикл бірнеше рет жұмыс істейді. Arduino -да өңдеуден айырмашылығы, портты begin () әдісінің аргументтері ретінде көрсетудің қажеті жоқ, өйткені біз портты Arduino -да жүктеу кезінде көрсеткенбіз.

Осылайша, setup () келесідей болады:

жарамсыз орнату () {

Serial.begin (9600); // сериялық байланысты бастау

}

9600 мұнда өңдеу файлында біз айтып өткен жіберу жылдамдығын көрсетеді. Тиісті байланыс үшін жіберу жылдамдығының екеуі де тең болуы керек немесе сіз сериялық шығуды түсініксіз нәрсе ретінде көре аласыз.

Енді цикл () бөлігін көрейік. Кодтың бұл бөлігі бірнеше рет жұмыс істейді. Егер біз кейбір деректерді порт арқылы оқығымыз келсе, Serial.read () әдісін қолданамыз. Егер бұл деректер жоқ болса, бұл функция нөлді қайтарады, сондықтан біз бұл әдісті сериялық ағында қол жетімді деректер болған кезде ғана шақырамыз.

Кейбір деректер бар -жоғын тексеру үшін біз Serial.available () әдісін қолданамыз. Егер ол 0 мәнінен үлкен мәнді қайтарса - кейбір деректер қол жетімді.

Сондықтан цикл () бөлігі келесідей болады:

void loop () {

if (Serial.available ()> 0) {// егер кейбір деректер сериялық портта болса

char күйі = Serial.read (); // мәнді оқыңыз

// if операторлары немесе регистрді ауыстыру

}

}

Енді біз егер баспалдақ немесе мүмкін болатын нәтижелер болса, біз ауыспалы күй үшін коммутаторды қолдана аламыз.

4 -қадам: GUI 7 сегментінің контроллерін құрыңыз

GUI 7 сегментінің контроллерін жасаңыз
GUI 7 сегментінің контроллерін жасаңыз
GUI 7 сегментінің контроллерін жасаңыз
GUI 7 сегментінің контроллерін жасаңыз
GUI 7 сегментінің контроллерін жасаңыз
GUI 7 сегментінің контроллерін жасаңыз

Файлдар осында бекітілген. Ескертпе: өңдеу үшін сізге GUI интерактивті түймелерін жасау үшін пайдаланған p5 басқару кітапханасын орнату қажет болады.

Нөмірлерді бекітіңіз

7 сегмент (алфавиттік тәртіпте) суретке сілтеме жасайды

а - цифрлық түйреуіш 2

b - цифрлық түйреуіш 3

c - цифрлық түйреуіш 4

d - цифрлық түйреуіш 5

e - цифрлық түйреуіш 6

f - сандық түйреуіш 7

g - цифрлық түйреуіш 8

dp - цифрлық түйреуіш 9

Барлық мазмұн мен код осы жерде менің гитубымда қол жетімді

Ұсынылған: