Агуулгын хүснэгт:

Төрийн машиныг ашиглах Arduino HMI: 9 алхам
Төрийн машиныг ашиглах Arduino HMI: 9 алхам

Видео: Төрийн машиныг ашиглах Arduino HMI: 9 алхам

Видео: Төрийн машиныг ашиглах Arduino HMI: 9 алхам
Видео: Тооны машин 2024, Долдугаар сарын
Anonim
Төрийн машин ашиглан Arduino HMI
Төрийн машин ашиглан Arduino HMI

Энэхүү зааварчилгаанд би Arduino -д зориулсан 16х2 хэмжээтэй LCD товчлуурын бамбай ашиглан энгийн, өргөтгөх боломжтой HMI -ийг хэрэгжүүлэхийн тулд YAKINDU Statechart хэрэгслүүдийг хэрхэн ашиглахыг танд үзүүлэх болно.

Хязгаарлагдмал төлөвт машинууд (FSM) нь хүний машины нарийн төвөгтэй интерфэйсийг (HMI) хөгжүүлэх хүчирхэг загвар юм. HMI -ийн үйл ажиллагаа нэмэгдэхийн хэрээр төрийн машин шиг дизайны загварыг ашиглах нь ашигтай байдаг.

Бүрэн жишээг YAKINDU Statechart Tools -д оруулсан болно. Нэмж дурдахад, Arduino Plugin -д зориулсан Eclipse C ++ IDE нь IDE -ийг эмхэтгэх, анивчихад ашиглагддаг.

YAKINDU Statechart хэрэгслүүдийн товч тойм

Энэхүү хэрэгслийн тусламжтайгаар график төлөв байдлын машиныг бий болгох боломжтой. Энэ нь хэрэглэгчийг улсын машинаас C, C ++ эсвэл Java код үүсгэх боломжийг олгодог. Энэхүү хандлагын тусламжтайгаар загварыг өөрчилж эсвэл өргөтгөх боломжтой бөгөөд хэрэглэгч кодыг дахин үүсгэх боломжтой бөгөөд энгийн эх код бичих шаардлагагүй болно.

Хангамж

Эд анги:

  • Ардуино (Uno, Mega)
  • USB кабель
  • 16x2 хэмжээтэй LCD товчлуурын бамбай

Хэрэгсэл:

  • YAKINDU Statechart хэрэгсэл
  • Arduino -д зориулсан Eclipse C ++ IDE

Алхам 1: Тоног төхөөрөмж

Image
Image

LCD товчлуурын бамбайг Arduino -д залгаж болно. Энэ нь 16x2 хэмжээтэй LCD дэлгэцтэй бөгөөд зургаан товчлууртай.

  • Зүүн
  • Зөв
  • Дээш
  • Доошоо
  • Сонгоно уу
  • (Дахин тохируулах)

Мэдээжийн хэрэг, тэдгээрийн тавыг нь ашиглах боломжтой. Түлхүүрүүдийг хүчдэл хуваагч руу холбосон бөгөөд хүчдэлээс хамаарч Pin A0 ашиглан илрүүлдэг. Тэдгээрийг зөв илрүүлэхийн тулд би програм хангамжаа тайлах програмыг ашигласан.

Алхам 2: Энэ нь хэрхэн ажиллах ёстойг тодорхойл

HMI хяналт
HMI хяналт

Аппликешн нь гурван зүйлийг хийх чадвартай байх ёстой.

  1. Энд товчлууруудыг ашиглан дээд, дунд, доод, зүүн, баруун гэсэн таван муж хооронд шилжихийг хүсч байна.
  2. Секундомер Эхлэх, зогсоох, дахин тохируулах боломжтой энгийн секундомер. Үүнийг 100 миллисекунд тутамд нэмэгдүүлэх шаардлагатай
  3. Гурав дахь хэсэг нь энгийн дээш/доош тоолууртай. Энэ нь эерэг тоог тоолох чадвартай байх ёстой бөгөөд үүнийг дахин тохируулах ёстой

Идэвхтэй цэс (эсвэл төлөв) нь 16x2 LCD дэлгэц дээр дээд мөрөнд харагдана. Програмыг (муж, таймер эсвэл тоолуур) доод мөрөнд харуулах болно. Жолоодлогын хувьд зүүн ба баруун товчлуурыг ашиглах ёстой.

Алхам 3: Төрийн машинтай харилцах

Товчлууруудыг задалж, төрийн машинд холбох болно. Тэднийг төрийн машин дахь үйл явдлын нэгэн адил ашиглаж болно. Нэмж дурдахад одоогийн цэсийг харуулах үйлдлүүдийг тодорхойлдог. Мөн дор хаяж хоёр хувьсагчийг тодорхойлдог бөгөөд нэг нь таймер, нөгөө нь тоолуур юм.

интерфэйс:

// товчлуурууд нь үйл явдлын үйл явдлын оролт хэлбэрээр, үйл явдлын зүүн талд, үйл явдлын зүүн талд, үйл явдлын дараа доош нь сонгоно уу // HMI -ийн тодорхой утгыг харуулна LCDString (утга: мөр, урт: бүхэл тоо, байрлал: бүхэл тоо) үйл ажиллагааны дэлгэц LCDInteger (утга: бүхэл тоо, байрлал: integer) ажиллагаа clearLCDRow (байрлал: бүхэл тоо) дотоод: // хадгалах хувьсагчид var cnt: integer var timeCnt: integer = 0

C ++ кодыг үүсгэсний дараа үйл явдлуудыг дебютээ хийж, интерфэйс рүү холбох ёстой. Энэ кодын хэсэг нь үүнийг хэрхэн хийхийг харуулж байна.

Эхлээд товчлууруудыг тодорхойлно.

#тодорхойлох ҮГҮЙ 0 #тодорхойлох SELECT 1 #Зүүн 2 тодорхойлох

Дараа нь товчлуурыг уншихаар тодорхойлсон функц байдаг. LCD Shield үйлдвэрлэгчээс хамаарч үнэ цэнэ өөр байж болно.

статик int readButton () {int үр дүн = 0; үр дүн = analogRead (0); if (үр дүн <50) {ЗӨВ буцах; } if (үр дүн <150) {буцах UP; } if (үр дүн <300) {буцах DOWN; } if (үр дүн <550) {LEFT буцах; } if (үр дүн <850) {буцах SELECT; } буцах NONE; }

Төгсгөлд нь товчлууруудыг тайлах болно. Би 80 ms -тэй сайн үр дүнд хүрсэн. Нэг товчлуурыг гаргасны дараа энэ нь шаардлагатай тохиолдолд тохиргоог нэмэгдүүлэх болно.

int oldState = NONE; static void boostEvents () {int buttonPressed = readButton (); саатал (80); oldState = товчлуур дарагдсан; if (oldState! = NONE && readButton () == NONE) {switch (oldState) {case SELECT: {stateMachine-> upgrade_select (); завсарлага; } тохиолдолд Зүүн: {stateMachine-> lift_left (); завсарлага; } тохиолдол DOWN: {stateMachine-> upgrade_down (); завсарлага; } тохиолдолд UP: {stateMachine-> boost_up (); завсарлага; } тохиолдолд ЗӨВ: {stateMachine-> boost_right (); завсарлага; } анхдагч: {завсарлага; }}}}

Алхам 4: HMI хяналт

Муж бүрийг цэсийн нэг хэсэгт ашигладаг. Програмыг (жишээлбэл, секундомер) ажиллуулах дэд мужууд байдаг.

Энэхүү дизайны тусламжтайгаар интерфэйсийг хялбархан өргөжүүлж болно. Нэмэлт цэсийг ижил загварын загварыг ашиглан нэмж болно. Мэдрэгчийн утгыг уншиж, цэсийн дөрөв дэх хэсэгт харуулах нь тийм ч том асуудал биш юм.

Одоогийн байдлаар хяналт болгон зөвхөн зүүн, барууныг ашиглаж байна. Гэхдээ дээш, доошоо үндсэн цэсэнд навигацийн өргөтгөл болгон ашиглаж болно. Зөвхөн сонгох товчийг ашиглан цэсийн тодорхой зүйлийг оруулна.

Алхам 5: Улс орнуудыг зохицуулах

Улсуудыг зохицуулах
Улсуудыг зохицуулах

Бариулын төлөв байдлын цэсийг зөвхөн навигацийн дараагийн жишээ болгон ашигладаг. Дээш, доош, баруун эсвэл зүүн ашиглах нь муж хооронд шилжих боломжийг олгодог. Одоогийн байдлыг үргэлж LCD дэлгэц дээрх хоёр дахь мөрөнд хэвлэх болно.

Алхам 6: Секундомер

Секундомер
Секундомер

Секундомер нь маш энгийн. Эхний ээлжинд таймерын утгыг дахин тохируулах болно. Таймерыг зүүн товчлуурыг ашиглан эхлүүлж, зүүн ба баруун тийш шилжүүлж болно. Дээш эсвэл доош ашиглах нь таймерыг дахин тохируулдаг. Таймерыг сонгох товчлуурыг хоёр удаа дарж тэг болгож болно, цэсийг орхиж дахин оруулна уу.

Алхам 7: Тоолуур

Тоологч
Тоологч

Наад зах нь лангуу хэрэгжүүлсэн байгаа. Лангууны төлөвт орсноор тоолуурыг дахин тохируулна. Үүнийг сонгох товчийг эс тооцвол дурын товчлуурыг ашиглан эхлүүлж болно. Энэ нь 0 -ээс бага байж болохгүй энгийн дээш/доош тоолуур хэлбэрээр хэрэгждэг.

Алхам 8: Симуляци

Алхам 9: Жишээ авах

Та IDE -г эндээс татаж авах боломжтой: YAKINDU Statechart Tools

IDE -ийг татаж авсны дараа та жишээг File -> N ew -> Example дээрээс олж болно

Хобби сонирхогчдод үнэгүй ашиглах боломжтой, гэхдээ та 30 хоногийн туршилтыг ашиглах боломжтой.

Зөвлөмж болгож буй: