Мазмуну:
- 1 -кадам: Тетиктер талап кылынат
- 2 -кадам: Interface түзүү
- 3 -кадам: Долбоордун ресурстары
- 4 -кадам: Сүрөттөрдү импорттоо
- 5 -кадам: GUI жасоо
- 6-кадам: 0-бет
- 7 -кадам: 1 -бет - Stepper Motor Controller
- 8 -кадам: 2 -бет - Stepper Motor Piano
- 9 -кадам: Мүчүлүштүктөрдү оңдоо
- 10 -кадам: ARDUINO SETUP
- 11 -кадам: жыйынтыктоо+Схемалар
Video: Step Step мотору менен ырларды ойнотуу !!: 11 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Бул долбоор эки түрдүү жолдор менен тепкич мотору менен өз ара аракеттенүүгө мүмкүндүк бере турган жөнөкөй динамикалык интерфейсти долбоорлоо жөнүндө.
Биринчи интерфейс баскыч моторунун багытын жана ылдамдыгын жөнөкөйлөтүлгөн GUI аркылуу көзөмөлдөйт, алар багыт үчүн сол жана оң жебелери жана ылдамдык үчүн өйдө жана төмөн жебелери бар.
Экинчи интерфейс музыкалык мүнөзгө ээ болот, бул кадам моторунун айлануучу үндөрүн колдонуу менен жөнөкөй ырларды ойнотууга мүмкүндүк берет.
1 -кадам: Тетиктер талап кылынат
- Arduino UNO (же шайкеш келген такта)
- ITion студиясынан Nextion Enhanced NX4827K043.
- Nextion Enhanced дисплейи үчүн Nextion кеңейтүү тактасы
- Micro SDHC картасы
- SD Card Reader/Writer - файлдарды компьютерден SDHC картасына өткөрүп берүү
- Breadboard
- Stepper мотору (42BYGHM809)
- 100 uF CapacitorDuinotech Stepper Motor Driver (L298) - [JayCar бөлүгү# XC4492].
- Тышкы электр менен камсыздоо - мис. Жөнгө салынган Лабораториялык энергия менен камсыздоо
2 -кадам: Interface түзүү
Биринчи кадам - интерфейстерди компьютериңиздеги Nextion Editorдо түзүү.
Nextion редакторун бул жерден жүктөп алсаңыз болот.
Nextion редакторун жүктөп, жаңы долбоор түзүңүз. Жаңы долбоорду баштаганда, сиз колдо болгон тандоолордун арасынан Nextion түзмөгүн туура тандап алганыңызга ынанууңуз керек. Бул жерде "Nextion Enhanced NX4827K043" түзмөгү колдонулат.
- Файл → Жаңы Долбоордун атын тандап, аны катуу дискте ылайыктуу жерге сактаңыз.
-
Жеткиликтүү варианттардан тиешелүү Nextion түзмөгүн тандаңыз
Менин түзмөгүмдүн экраны 480 x 272 пиксел
3 -кадам: Долбоордун ресурстары
Сиз бардык ресурстарды (мис. Сүрөттөр жана шрифттерди) долбооруңузга импорттошуңуз керек, андан кийин интерфейсти конкреттүү керектөөлөрүңүзгө ылайыктап иштеп чыгыңыз.
Шрифттер
Колдонулган конкреттүү шрифттер жок, бирок дисплейге каалаган текстти жазгыңыз келсе, Nextion Editorдо арип түзүү керек болот.
А) Куралдар → Шрифт генератору
- Шрифттин бийиктигин тандаңыз (мис. 16).
- Шрифт кодунун түрүн тандаңыз (мис. Iso-8859-2)
- Калын болушун каалайсызбы же жокпу, тандаңыз
- Колдонууну каалаган шрифтти тандаңыз (мис. Arial)
- Аралыкты тандаңыз (мис. 0)
- Акырында бул шрифтке уникалдуу ат коюңуз (мис. Arial_16)
- Терезенин ылдыйкы оң жагындагы "Арип түзүү" баскычын басыңыз.
Шрифт түзүү баскычын баскандан кийин, ал *.zi кеңейтүүсүн колдонуп, шрифтти сактап калууга мүмкүнчүлүк берет жана сизден "Түзүлгөн шрифтти кошкуңуз келеби?" Деп автоматтык түрдө сурайт. долбоорго. Эгерде сиз шрифтке ыраазы болсоңуз жана бул арипти долбооруңузда колдонууну кааласаңыз, анда "Ооба" дегенди тандаңыз, болбосо "Жок" дегенди тандап, кайра баштаңыз.
Сиз импорттоп же шрифт кошмойунча долбооруңузга эч кандай текст кошо албайсыз. Сиздин долбоордун бардык шрифттери шрифттер терезесинде көрсөтүлөт.
** Эскертүү: Ар бир шрифт автоматтык түрдө индекстелет, андыктан керек болсо грамматикалык шрифтке шилтеме бере аласыз. Чындыгында, сиздин долбоорго кошкон бардык ресурстарга номер ыйгарылат жана кошулган ар бир ресурс үчүн бирден көбөйөт. Кээ бир ресурстар үчүн, бул санды нерсенин сол жагында көрө аласыз. Мисалы Жогорудагы сүрөттө Courier шрифтинин 0 индекси бар, ал эми Arial шрифтинин 1 индекси бар. Эгерде сиз ресурсту жок кылсаңыз, индекстин номери ал пункт үчүн өзгөрүшү мүмкүн.
4 -кадам: Сүрөттөрдү импорттоо
Nextion Enhanced NX4827K043 түзмөгүндө ар бир сүрөт 480 x 272 пиксел өлчөмүндө болушу керек.
Эми биз долбоордо колдонуш үчүн кийинки сүрөттөрдү Nextion редакторуна импорттойбуз. Nextion редакторунун төмөнкү сол бурчунда "Шрифттер жана Сүрөт" ресурстук терезеси жайгашкан:
- Сүрөт өтмөгүн тандаңыз
- Андан кийин "+" белгисин тандаңыз
- Бул долбоорго кошула турган сүрөттөрдү тандоо үчүн диалог кутучасын ачат. Сиз импорттоо үчүн бир нече сүрөттү тандай аласыз.
Splash Screen үчүн сиз каалаган сүрөтүңүздү жасай аласыз.
Ал эми Stepper мотору менен пианинонун интерфейси үчүн жогорудагы сүрөттү жүктөп алсаңыз болот.
5 -кадам: GUI жасоо
Ар бир ресурс кошулган тартиптин негизинде ID алат жана ар бир ресурс автоматтык түрдө ат алат.
Сиз ресурстун же объекттин атын өзгөртө аласыз, бирок идентификаторду түзөтө албайсыз.
Үч барак жогоруда сүрөттөлгөн критерийлерге жооп берүү үчүн иштелип чыгат.
Баракты кошуу үчүн, "баракчанын терезесинен" "Кошуу" сүрөтчөсүн тандаңыз. Жана жалпы 3 бетке ээ болгонго чейин барактарды кошо бериңиз (page0, page1 жана page2).
6-кадам: 0-бет
Nextion иштетилгенде, тепкич экраны Stepper Motor Controller экранын көрсөткөнгө чейин 3 секундада көрсөтүлөт. Экранды түзүү үчүн мен төмөнкү кадамдарды колдондум.
0 экранына экрандын сүрөтүн кошуңуз
- Барак терезесинен "0 -бетти" тандаңыз
- Куралдар кутусунун терезесинен "Сүрөт" тандаңыз
- Атрибут терезесинен "pic" атрибутун эки жолу чыкылдатыңыз
- Тизмеден экрандын сүрөтүн тандаңыз
- OK баскычын басыңыз
2. 0 -бетке Таймерди кошуңуз
- Toolbox терезесинен Таймерди тандаңыз
- Атрибут терезесинен "tim" атрибутун 400дөн 3000ге алмаштырыңыз
- Таймер Окуясынын Колдонуучу коду бөлүмүнө "page1" киргизиңиз (0) Бул таймер окуясы Nextionду 3 секунддан кийин page1ге секирет.
Бул таймер окуясы Nextionду 3 секунддан кийин 1 -бетке секирет.
7 -кадам: 1 -бет - Stepper Motor Controller
Бул барак тепкич моторунун багытын жана ылдамдыгын көзөмөлдөө үчүн иштелип чыккан. Багыт үчүн эки баскыч болот (Сол жана Оң), жана ылдамдык үчүн эки баскыч (Тезирээк жана жайыраак) болот. Кийинки бетке өтүү үчүн дагы бир баскыч (б.а. Stepper Motor Piano бети). Бул баскычтар Nextion кеңейтүү тактасына да түшүрүлөт. Кеңейтүү тактасынын тийүү баскычтары моторду башкаруунун башка ыкмасын камсыз кылат.
Step1 Motor Controller сүрөтүн page1ге кошуңуз
- Барак терезесинен "page1" тандаңыз
- Куралдар кутусунун терезесинен "Сүрөт" тандаңыз
- Атрибут терезесинен "pic" атрибутун эки жолу чыкылдатыңыз
- Тизмеден "Stepper Motor Controller" сүрөтүн тандаңыз
- OK баскычын басыңыз
2. Stepper Motor Controller сүрөтүндөгү ар бир баскычтын үстүнө Hotspots кошуңуз
а) Toolbox терезесинен "Hotspot" тандаңыз
б) Хотспотту "Солго" баскычын жапкандай кылып сүйрөп, өлчөмүн өзгөртүңүз
- Бул "Сол баскычты" басууга жооп бере турган аймак.
- Бул Nextion тактасына жүктөлгөндө ачык болот
в) Окуя терезесиндеги "Touch Press Event" өтмөгүн тандаңыз
г) "Компоненттин идентификаторун жөнөтүү" белгилөө кутучасын белгилебеңиз
д) Окуя терезесинин "Колдонуучу коду" бөлүмүнө төмөнкү кодду териңиз:
"L" басуу
f) Төмөнкү процессти колдонуп, чекиттин объектисинин атын "Солго" өзгөртүңүз:
- Атрибут терезесинен objname тандап, текстти "m0" ден "Солго" өзгөртүңүз
- Хотспот объектисинин атын өзгөртүү милдеттүү эмес; бирок кийинчерээк жардам берет.
ж) 2a-2f кадамдарын башка баскычтардын ар бири үчүн төмөнкү тартипте жана төмөнкү таблицада кайталаңыз
- Туура
- Тезирээк
- Жайыраак
- Кийинки
"L" тамгасынын ондук ASCII коду 76, демек, Nextion Enhanced дисплейи "L" баскычын колдонуу менен L тамгасын Arduinoго жөнөткөндө, Arduino 76 санын алат. Оң баскыч басылганда, ал 82 санын алат жана башкалар. "Кийинки" баскычы Arduinoго эч нерсе өткөрбөйт, Nextion Enhanced дисплейиндеги кийинки интерфейске өтүү үчүн ошол жерде болот, демек, бул баскыч үчүн колдонуучу коду башкача.
3. Баскычтарды Кеңейтүү тактасына картага түшүрүү
а) Барак терезесинен "page0", анан "page1" тандаңыз
б) Окуя терезесинен "Окуяны алдын ала баштоо" өтмөгүн тандаңыз
в) "Колдонуучунун коду" талаасына төмөнкү кодду киргизиңиз: Алдын ала баштоо окуясы:
- cfgpio 5, 1, Сол
- cfgpio 2, 1, Оң
- cfgpio 4, 1, Тезирээк
- cfgpio 3, 1, жайыраак
- cfgpio 1, 1, Кийинки
*** Эскертүү: cfgpio менен анын жанындагы сан ортосунда бир боштук бар, бирок ар бир сапта башка боштуктар жок. Эгер кошумча боштуктарды киргизсеңиз, ал компиляцияланбайт. Бул код кеңейтүү тактасындагы баскычтарды 1 -беттеги хотспот объекттерине салыштырат. Мисалы, кеңейтүү тактасындагы Сол баскычы (IO5) басылганда, m0/Left чекитине байланышкан аракеттерди же окуяларды окшоштурат. Бул учурда ал "L" (76) маанисин Arduinoго жөнөтөт.
IO номери кеңейтүү тактасында кашаанын ичинде белгиленген.
8 -кадам: 2 -бет - Stepper Motor Piano
анын интерфейси фортепианого окшош болуп иштелип чыгат жана мага Stepion моторун башкарууга мүмкүндүк берет, ал Nextion дисплейинде баскандай эле баскычтагы жазууну чыгарат. Stepper мотору белгини белгилүү бир жыштыкта айлантуу менен чыгарат.
1. Step2 Motor Piano сүрөтүн 2 -бетке кошуңуз.
- Барак терезесинен "page2" тандаңыз
- Куралдар кутусунун терезесинен "Сүрөт" тандаңыз
- Атрибут терезесинен "pic" атрибутун эки жолу чыкылдатыңыз
- Тизмеден "Stepper Motor Piano" сүрөтүн тандаңыз
- OK баскычын басыңыз
2. Stepper Motor Piano сүрөтүнүн ар бир баскычына Hotspots кошуу
а) Toolbox терезесинен "Hotspot" тандаңыз
б) "А" баскычын камтый тургандай, Hotspotту сүйрөп, өлчөмүн өзгөртүңүз. Бул "А-баскычын" басууга жооп бере турган аймак. Nextion тактасына жүктөлгөндө ачык болот.
в) Окуя терезесиндеги "Touch Press Event" өтмөгүн тандаңыз.
г) "Колдонуучу коду" бөлүмүнө төмөнкүлөрдү жазыңыз
басып чыгаруу 1
e) Төмөндөгү таблицага ылайык башка баскычтардын ар бири үчүн 2a-2d кадамдарын кайталаңыз.
** Белгилүү баскыч басылганда, Nextion Enhanced тактасы басып чыгарылган номерди, андан кийин үч 0x00 маанисин өткөрүп берет. Токтотуучу баалуулуктарды этибарга албай койсо болот.
3. "Артка" баскычы Nextion Enhanced тактасындагы мурунку интерфейске кайра секирүүгө мүмкүндүк берет.
а) Артка баскычы үчүн төмөнкү процессти колдонуп, чекитти түзүңүз:
- Toolbox терезесинен Hotspotту тандаңыз
- Хотспотту "Артка" баскычынын үстүнө жылдыруу/өлчөмүн өзгөртүү
б) Окуя терезесин тандаңыз.
в) "Touch press event" өтмөгү тандалганын текшериңиз
г) Түрү: page1 баракчасын Колдонуучу коду бөлүмүнө
9 -кадам: Мүчүлүштүктөрдү оңдоо
Nextion редакторунун жакшы жери, интерфейстин иштөө мүмкүнчүлүгүн тактага жүктөө алдында текшере аласыз.
- Тапшырмалар тилкесиндеги сактоо баскычын басуу менен долбоорду сактаңыз
- Андан кийин компиляция баскычын басыңыз
- Андан кийин мүчүлүштүктөрдү оңдоо баскычын басыңыз.
Nextion эмуляторунун терезеси пайда болот. Бул терезе Nextion файлы тактага жүктөлгөндөн кийин, Nextion модулу сыяктуу жооп бериши керек. Бул эмулятор интерфейсти сынап көрүүнүн жана анын көрүнгөнүнө жана күтүлгөндөй иштээрине ынануунун эң сонун жолу. Интерфейс (тер) менен бактылуу болгондон кийин, мен Nextion файлын SD картка өткөрүп бердим:
- Компиляция баскычын басыңыз
- Файл → Куруу Папкасын ачыңыз
- Долбоордун аты менен *.tft файлын тандаңыз.
- Аны micro SDHC картына көчүрүңүз
- SDHC картасын Nextion дисплейиндеги SD картанын уясына салыңыз
- Nextion тактасын күйгүзүңүз
Файлдын Nextion тактасын жаркырашын күтө туруңуз, жана сиз мындай окшош билдирүүнү көрүшүңүз керек:
Кийинки кадам - Nextion тактасын өчүрүү жана SDHC картасын алып салуу.
10 -кадам: ARDUINO SETUP
Nextion Enhanced дисплейи даяр, эми кезек Arduinoго келди. Arduino Nextion Enhanced дисплейинен сериялык билдирүүлөрдү алуу жана алынган тамгаларга же сандарга негизделген тепкич моторун башкаруу үчүн программаланган. Nextion тактасынан берилүүчү уникалдуу тамгалар же сандар Arduinoго кайсы баскычтын басылып жатканын түшүнүүгө мүмкүндүк берет жана белгилүү бир кадам кыймылдаткыч аракеттерин аткаруу үчүн коддун агымын көзөмөлдөө үчүн ошол сандарды же тамгаларды колдонот.
SoftwareSerial китепканасы Arduino менен Nextion Enhanced дисплейинин ортосундагы сериялык байланышты иштетүү үчүн колдонулат. AccelStepper китепканасы тепкич моторун башкаруу процессин жөнөкөйлөтүү үчүн колдонулат.
Моторлор үчүн максималдуу жана минималдуу ылдамдыкты жана кээ бир алдын ала аныкталган ачкычтарды орнотуңуз. Nextion дисплейинин биринчи интерфейсин колдонуу менен моторду "жөнгө салуу" мүмкүн. Муну каалаган ачкычка жеткенге чейин моторду ылдамыраак же жайыраак буруп коюу менен жасай аласыз. Бул жерде iTunes колдонмолор дүкөнүнөн "Tuner T1 Free" тиркемеси мотор ачкычта нота чыгарганын аныктоо үчүн колдонулат. Мотор белгилүү бир нотаны чыгарганда, мен сериялык монитор терезесине басылган тепкич моторунун ылдамдыгын жазмакмын. Мотор ылдамдыгы жогорулаган же азайган сайын, Arduino коду ылдамдыкты сериялык монитор терезесине басып чыгарат. Мен бул ылдамдыктарды Arduino кодундагы ноталарды массивин жаңыртуу үчүн колдоном. Ноталар массивинде пианинодогу жеке ноталарга туура келген кадамдык мотор ылдамдыгы сакталат. Nextion дисплейи негизинен Ардуинодогу ноталардын массивинен ойнотуу үчүн нотанын индекс номерин жөнөтөт, ошону менен моторду 16 түрдүү ылдамдыкта айлантуу үчүн керектүү кодду жөнөкөйлөтөт.
11 -кадам: жыйынтыктоо+Схемалар
Бардык такталар өчүрүлгөндөн кийин, кийинки кадам - Arduino менен бардык керектүү аппараттык байланыштарды түзүү. Кароо үчүн эки негизги бөлүм бар:
- Stepper моторунун айдоочусу жана мотору
- Nextion Enhanced тактасы.
Сиз тепкич моторун жана Nextion Enhanced тактасын иштетүү үчүн тышкы энергия булагын колдонгонуңузга ишенишиңиз керек. Степпер моторунун айдоочу тактасы Arduino тарабынан эч кандай көйгөйсүз иштейт, бирок иш жүзүндөгү тепкич мотору тышкы электр булагына муктаж болот. Nextion Enhanced тактасы ошондой эле тышкы электр менен камсыздоого муктаж, анткени ал Arduino коопсуз камсыз кыла алгандан көбүрөөк токту талап кылат.
Колдонулган тышкы электр булагына көңүл буруңуз. Мен долбоордун кубаттуулук талаптарын канааттандыруу үчүн жетишерлик чоң электр булагына ээ экениме ынандым жана бул талаптарды аныктоого жардам берүү үчүн тиешелүү маалымат баракчаларын колдондум. Эгерде сиз бул долбоорду кайталоону пландап жатсаңыз, анда моторуңуздун, моторуңуздун айдоочусунун жана Nextion дисплейиңиздин конкреттүү кубаттуулук талаптарын эске алууңуз керек. Arduino 5V пинден 400мА токту гана бере алат. Баары туташтырылганда, Nextion дисплейин, анан Arduino'ду иштеттим. Кадам мотору автоматтык түрдө айлана баштайт. Мен мотордун багытын жана/же ылдамдыгын өзгөртүү үчүн биринчи интерфейсти колдондум. Сураныч, Arduino кодунда орнотулган максималдуу жана минималдуу ылдамдыктарга көңүл буруңуз. Кийинки баскычын Nextion Enhanced дисплейиндеги экинчи интерфейске өтүү үчүн колдондум. Экинчи интерфейс фортепианого окшош. Пианинонун дисплейиндеги баскычты басканымда, мотор мен баскан нотага дал келүү үчүн ылдамдыгын өзгөртөт.
Эми бүттүңүз.
Бул сизге жагат деп ишенем
Сунушталууда:
Электр Мотору + Фиджет Мотору: 12 кадам
Электр Мотору + Фиджет Мотору: Инструкциялоочу сөздөрдү колдонуңуз, бул 2 электромотор менен иштөө. Электр кыймылдаткычы эң чоң болуп саналат. Твид - бул кыймылсыз мотор, ал эми магнит кеңири таралган
Talking Arduino - Ардуино менен MP3 ойнотуу модулу жок - PCMди колдонуу менен Arduinoдон Mp3 файлын ойнотуу: 6 кадам
Talking Arduino | Ардуино менен MP3 ойнотуу модулу жок | PC файлын колдонуу менен Arduinoдон Mp3 файлын ойнотуу: Бул көрсөтмөлөрдө биз ардуино менен mp3 файлды эч кандай аудио модулду колдонбостон ойнотууну үйрөнөбүз, бул жерде биз 8 кГц жыштыктагы 16 бит PCM ойногон Arduino үчүн PCM китепканасын колдонобуз
Single Coil индукциялык мотору / Электр мотору: 6 кадам
Single Coil индукциялык мотору / Электр мотору: Бул долбоордо биз бир катушкалуу асинхроникалык моторду жасайбыз Коммерциялык, жана алда канча иштелип чыккан, бул электр кыймылдаткычынын версиялары көпчүлүк альтернативдүү приборлордо колдонулат. Биздин мотордун жогорку моменти жок, бул көбүрөөк иштөө жөнүндө
Flyback трансформаторунда же динамикте PWM үчүн ADC колдонуп Arduino менен ырларды ойнотуу: 4 кадам
Flyback трансформаторунда же динамикте PWM үчүн ADC колдонуп Arduino менен ырларды ойнотуңуз: Саламатсыздарбы балдар, бул менин башка көрсөтмөмдүн экинчи бөлүгү (бул абдан кыйын болчу), негизи, бул долбоордо мен Arduinoдогу ADC жана TIMERSти колдондум. Аудио сигналды PWM сигналына айландыруу. Бул менин мурунку көрсөтмөмө караганда алда канча оңой
Ырларды (MP3) Arduino менен PWMди динамикте же Flyback трансформаторунда колдонуу: 6 кадам (сүрөттөр менен)
Ырларды (MP3) Ардуино менен PWMди Динамикте же Flyback Трансформаторунда ойнотуу: Саламатсыздарбы балдар, бул менин биринчи көрсөтмөм, сизге жагат деп ишенем !! Негизи, бул долбоордо мен Arduino менен ноутбугумдун ортосундагы сериялык байланышты колдондум, ноутбуктан музыкалык маалыматтарды Arduinoго өткөрүп берүү. Жана Arduino TIMERS т колдонуп