Სარჩევი:

Arduino HMI სახელმწიფო მანქანების გამოყენებით: 9 ნაბიჯი
Arduino HMI სახელმწიფო მანქანების გამოყენებით: 9 ნაბიჯი

ვიდეო: Arduino HMI სახელმწიფო მანქანების გამოყენებით: 9 ნაბიჯი

ვიდეო: Arduino HMI სახელმწიფო მანქანების გამოყენებით: 9 ნაბიჯი
ვიდეო: მიხეილ თუთბერიძე, დაპროგრამება, 1(1) 2024, ივლისი
Anonim
Arduino HMI სახელმწიფო მანქანების გამოყენებით
Arduino HMI სახელმწიფო მანქანების გამოყენებით

ამ ინსტრუქციაში, მე გაჩვენებთ თუ როგორ გამოიყენოთ YAKINDU Statechart Tools, რათა გააცნობიეროთ მარტივი და გაფართოებადი HMI გამოყენებით 16x2 LCD კლავიატურის ფარი Arduino– სთვის.

სასრული მდგომარეობის მანქანები (FSM) არის მძლავრი დიზაინის ნიმუში ადამიანის მანქანების რთული ინტერფეისების (HMI) შესაქმნელად. როგორც შეიძლება გაიზარდოს HMI- ის ფუნქციონირება, სასარგებლოა ისეთი დიზაინის ნიმუშის გამოყენება, როგორიცაა სახელმწიფო მანქანები.

სრული მაგალითია ჩასმული YAKINDU Statechart Tools- ში. დამატებით, Eclipse C ++ IDE არდუინოს მოდულისთვის გამოყენებულია IDE– ში შესადგენად და მოციმციმედ.

YAKINDU Statechart Tools– ის მოკლე შინაარსი

ამ ხელსაწყოს საშუალებით შესაძლებელია გრაფიკული მდგომარეობის აპარატების შექმნა. ეს საშუალებას აძლევს მომხმარებელს შექმნას C, C ++ ან Java კოდი სახელმწიფო აპარატიდან. ამ მიდგომით, მოდელი შეიძლება შეიცვალოს ან გაფართოვდეს და მომხმარებელს შეუძლია უბრალოდ ხელახლა გენერირება კოდი და არ სჭირდება უბრალო კოდის დაწერა.

მარაგები

ნაწილები:

  • არდუინო (უნო, მეგა)
  • USB კაბელი
  • 16x2 LCD კლავიატურის ფარი

ინსტრუმენტები:

  • YAKINDU Statechart ინსტრუმენტები
  • Eclipse C ++ IDE არდუინოსთვის

ნაბიჯი 1: აპარატურა

Image
Image

LCD კლავიატურის ფარი შეიძლება უბრალოდ ჩართული იყოს Arduino– ში. მას აქვს 16x2 LCD დისპლეი და დამატებით აქვს ექვსი ღილაკი:

  • მარცხენა
  • მარჯვენა
  • ზემოთ
  • ქვევით
  • აირჩიეთ
  • (გადატვირთვა)

ცხადია, ხუთი მათგანის გამოყენება შეიძლება. გასაღებები მიერთებულია ძაბვის გამყოფზე და ვლინდება ძაბვის მიხედვით Pin A0- ის გამოყენებით. მე გამოვიყენე პროგრამული უზრუნველყოფის დემონსტრირება მათი სწორად გამოვლენის მიზნით.

ნაბიჯი 2: განსაზღვრეთ როგორ უნდა იმუშაოს

HMI კონტროლი
HMI კონტროლი

განაცხადს უნდა შეეძლოს სამი რამის გაკეთება.

  1. აქ მინდა გამოვიყენო ღილაკები ხუთ მდგომარეობას შორის ნავიგაციისთვის: ზედა, შუა, ქვედა, მარცხენა და მარჯვენა
  2. წამზომი მარტივი წამზომი, რომლის დაწყება, გაჩერება და გადატვირთვა შესაძლებელია. ის უნდა გაიზარდოს ყოველ 100 მილიწამში
  3. მესამე ნაწილი შეიცავს მარტივ ზემოთ/ქვემოთ მრიცხველს. მას უნდა შეეძლოს დადებითი რიცხვების დათვლა და მისი გადატვირთვა უნდა მოხდეს

აქტიური მენიუ (ან მდგომარეობა) ნაჩვენები იქნება 16x2 LCD ზედა ხაზზე. პროგრამა (მდგომარეობა, ტაიმერი ან მრიცხველი) ნაჩვენები იქნება ქვედა ხაზში. ნავიგაციისთვის უნდა გამოიყენოთ მარცხენა და მარჯვენა ღილაკი.

ნაბიჯი 3: სახელმწიფო აპარატთან დაკავშირება

ღილაკები ამოღებულია და შეუერთდება სახელმწიფო აპარატს. ისინი შეიძლება გამოყენებულ იქნას როგორც სახელმწიფო მანქანაში მიმდინარე მოვლენებში. გარდა ამისა, ოპერაციები განისაზღვრება მიმდინარე მენიუს საჩვენებლად. და განისაზღვრება მინიმუმ ორი ცვლადი, ერთი ტაიმერისთვის და ერთი მრიცხველისთვის.

ინტერფეისი:

// ღილაკები, როგორც შეყვანის მოვლენები ღონისძიებაში, იმ შემთხვევაში, თუ მოვლენა დარჩა მოვლენის ქვემოთ, შეარჩიეთ // აჩვენეთ HMI სპეციფიკური ღირებულებები: მთელი) ოპერაცია clearLCDRow (პოზიცია: მთელი რიცხვი) შიდა: // ცვლადები შენახვის var cnt: მთელი რიცხვი var დრო Cnt: მთელი რიცხვი = 0

C ++ კოდის შექმნის შემდეგ, მოვლენები უნდა გამოცხადდეს და შეყვანილ იქნას ინტერფეისში. ამ კოდის ნაწყვეტი გვიჩვენებს, თუ როგორ უნდა გავაკეთოთ ეს.

თავდაპირველად განისაზღვრება ღილაკები:

#განსაზღვრეთ NONE 0 #განსაზღვრეთ აირჩიეთ 1 #განსაზღვრეთ მარცხნივ 2 #განსაზღვრეთ ქვემოთ 3 #განსაზღვრეთ UP 4 #განსაზღვრეთ მარჯვენა 5

შემდეგ არის ფუნქცია განსაზღვრული ღილაკის წასაკითხად. ღირებულებები შეიძლება განსხვავდებოდეს, ეს დამოკიდებულია LCD ფარის მწარმოებელზე.

სტატიკური int readButton () {int შედეგი = 0; შედეგი = analogRead (0); თუ (შედეგი <50) {დაბრუნება მარჯვნივ; } if (შედეგი <150) {დაბრუნება ზემოთ; } if (შედეგი <300) {დაბრუნება ქვემოთ; } if (შედეგი <550) {დაბრუნება მარცხნივ; } if (შედეგი <850) {return SELECT; } დაბრუნება არავის; }

დასასრულს, ღილაკების დემონსტრირება მოხდება. მე კარგი შედეგი გავაკეთე 80 ms. მას შემდეგ რაც გამოვა ღილაკი, ის ამატებს შესაბამის შემთხვევაში.

int oldState = არა; სტატიკური სიცარიელე raiseEvents () {int buttonPressed = readButton (); დაგვიანება (80); oldState = buttonPressed; if (oldState! = NONE && readButton () == NONE) {switch (oldState) {case SELECT: {stateMachine-> raise_select (); შესვენება; } საქმე მარცხნივ: {stateMachine-> raise_left (); შესვენება; } case ქვემოთ: {stateMachine-> raise_down (); შესვენება; } საქმე UP: {stateMachine-> raise_up (); შესვენება; } case RIGHT: {stateMachine-> raise_right (); შესვენება; } ნაგულისხმევი: {შესვენება; }}}}

ნაბიჯი 4: HMI კონტროლი

თითოეული მდგომარეობა გამოიყენება მენიუს ერთი ნაწილისთვის. არსებობს ქვესახელმწიფოები, სადაც პროგრამა - მაგალითად წამზომი - შესრულდება.

ამ დიზაინით, ინტერფეისი შეიძლება ადვილად გაფართოვდეს. დამატებითი მენიუ შეიძლება უბრალოდ დაემატოს იმავე დიზაინის ნიმუშის გამოყენებით. სენსორის მნიშვნელობის წაკითხვა და მენიუს მეოთხე პუნქტში ჩვენება დიდი საქმე არ არის.

ჯერჯერობით, მხოლოდ მარცხენა და მარჯვენა გამოიყენება როგორც კონტროლი. მაგრამ ზემოთ და ქვემოთ ასევე შეიძლება გამოყენებულ იქნას როგორც ნავიგაციის გაფართოება მთავარ მენიუში. მხოლოდ შერჩევის ღილაკი იქნება გამოყენებული მენიუს კონკრეტული ერთეულის შესასვლელად.

ნაბიჯი 5: მართეთ სახელმწიფოები

სახელების მართვა
სახელების მართვა

სახელურის მდგომარეობის მენიუ გამოიყენება მხოლოდ როგორც ნავიგაციის შემდგომი მაგალითი. ზემოთ, ქვემოთ, მარჯვნივ ან მარცხნივ გამოყენება საშუალებას გაძლევთ გადახვიდეთ სახელმწიფოებს შორის. მიმდინარე მდგომარეობა ყოველთვის იბეჭდება მეორე ხაზზე LCD ეკრანზე.

ნაბიჯი 6: წამზომი

წამზომი
წამზომი

წამზომი საკმაოდ მარტივია. თავდაპირველად, ტაიმერის მნიშვნელობა აღდგება. ტაიმერის დაწყება შესაძლებელია მარცხენა ღილაკის გამოყენებით და გადართვა მარცხნივ და მარჯვნივ. მაღლა ან ქვევით გამოყენება აღადგენს ტაიმერს. ტაიმერი ასევე შეიძლება დააბრუნოს ნულზე, შერჩევის ღილაკის ორჯერ გამოყენებით - მენიუდან გასვლისას და კიდევ ერთხელ შეყვანისას, რადგან ტაიმერი ნულამდე დადგება წამზომით შესვლისას.

ნაბიჯი 7: მრიცხველი

მრიცხველი
მრიცხველი

ყოველ შემთხვევაში, არსებობს მრიცხველი განხორციელებული. მრიცხველის მდგომარეობაში შესვლა აღადგენს მრიცხველს. მისი დაწყება შესაძლებელია ნებისმიერი ღილაკის გამოყენებით, გარდა არჩევის ღილაკისა. იგი ხორციელდება როგორც მარტივი ზემოთ/ქვემოთ მრიცხველი, რომლის მნიშვნელობა არ შეიძლება იყოს 0 -ზე ნაკლები.

ნაბიჯი 8: სიმულაცია

ნაბიჯი 9: მიიღეთ მაგალითი

თქვენ შეგიძლიათ ჩამოტვირთოთ IDE აქ: YAKINDU Statechart Tools

მას შემდეგ რაც ჩამოტვირთეთ IDE, თქვენ ნახავთ მაგალითს ფაილის -> N ew -> მაგალითის საშუალებით

მისი გამოყენება უფასოა მოყვარულთათვის, მაგრამ ასევე შეგიძლიათ გამოიყენოთ 30 დღიანი საცდელი პერიოდი.

გირჩევთ: