Სარჩევი:
- მარაგები
- ნაბიჯი 1: აპარატურა
- ნაბიჯი 2: განსაზღვრეთ როგორ უნდა იმუშაოს
- ნაბიჯი 3: სახელმწიფო აპარატთან დაკავშირება
- ნაბიჯი 4: HMI კონტროლი
- ნაბიჯი 5: მართეთ სახელმწიფოები
- ნაბიჯი 6: წამზომი
- ნაბიჯი 7: მრიცხველი
- ნაბიჯი 8: სიმულაცია
- ნაბიჯი 9: მიიღეთ მაგალითი
ვიდეო: Arduino HMI სახელმწიფო მანქანების გამოყენებით: 9 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
ამ ინსტრუქციაში, მე გაჩვენებთ თუ როგორ გამოიყენოთ 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: აპარატურა
LCD კლავიატურის ფარი შეიძლება უბრალოდ ჩართული იყოს Arduino– ში. მას აქვს 16x2 LCD დისპლეი და დამატებით აქვს ექვსი ღილაკი:
- მარცხენა
- მარჯვენა
- ზემოთ
- ქვევით
- აირჩიეთ
- (გადატვირთვა)
ცხადია, ხუთი მათგანის გამოყენება შეიძლება. გასაღებები მიერთებულია ძაბვის გამყოფზე და ვლინდება ძაბვის მიხედვით Pin A0- ის გამოყენებით. მე გამოვიყენე პროგრამული უზრუნველყოფის დემონსტრირება მათი სწორად გამოვლენის მიზნით.
ნაბიჯი 2: განსაზღვრეთ როგორ უნდა იმუშაოს
განაცხადს უნდა შეეძლოს სამი რამის გაკეთება.
- აქ მინდა გამოვიყენო ღილაკები ხუთ მდგომარეობას შორის ნავიგაციისთვის: ზედა, შუა, ქვედა, მარცხენა და მარჯვენა
- წამზომი მარტივი წამზომი, რომლის დაწყება, გაჩერება და გადატვირთვა შესაძლებელია. ის უნდა გაიზარდოს ყოველ 100 მილიწამში
- მესამე ნაწილი შეიცავს მარტივ ზემოთ/ქვემოთ მრიცხველს. მას უნდა შეეძლოს დადებითი რიცხვების დათვლა და მისი გადატვირთვა უნდა მოხდეს
აქტიური მენიუ (ან მდგომარეობა) ნაჩვენები იქნება 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 დღიანი საცდელი პერიოდი.
გირჩევთ:
LLDPi - Raspberry Pi Network Tool (კოლორადოს სახელმწიფო უნივერსიტეტი): 7 ნაბიჯი
LLDPi - Raspberry Pi Network Tool (კოლორადოს სახელმწიფო უნივერსიტეტი): LLDPi პროექტი არის Raspberry Pi და LCD– დან დამზადებული ჩამონტაჟებული სისტემა, რომელსაც შეუძლია მოიპოვოს LLDP (Link Layer Discovery Protocol) ინფორმაცია მეზობელი მოწყობილობებიდან ქსელში, როგორიცაა სისტემის სახელი და აღწერა , პორტის სახელი და აღწერა, VLA
სადეზინფექციო მანქანების სიმულაცია TINKERCAD– ის გამოყენებით: 6 ნაბიჯი
სადეზინფექციო მანქანების სიმულაცია TINKERCAD– ის გამოყენებით: ამ გადაუმოწმებელ ნაწილში ჩვენ ვნახავთ, როგორ გავაკეთოთ სადეზინფექციო აპარატის სიმულაცია, დაუკავშირდით ნაკლებად ავტომატური სანიტარიზატორი არის სადეზინფექციო მანქანა, რადგან ჩვენ არ ვიყენებთ ხელებს, რომ ვიმუშაოთ დანადგარის ნაცვლად სიახლოვის ინფრაწითელი სენსორის გაგებით
Arduino Otto Robot სახელმწიფო მანქანით: 4 ნაბიჯი
Arduino Otto Robot სახელმწიფო მანქანით: პროექტის მიმოხილვა ამ პროექტში მინდა გაჩვენოთ Otto Robot– ის პროგრამირების გზა, რომელიც არის Arduino– ზე დაფუძნებული წვრილმანი რობოტი. YAKINDU Statechart Tools– ის გამოყენებით (უფასოა არაკომერციული) ჩვენ შეგვიძლია მარტივად გამოვიყენოთ სახელმწიფო მანქანები ქცევის გრაფიკულად მოდელირებისთვის
ვიბრაციისა და სათქმელის გამოყენებით მბრუნავი მანქანების წინასწარი მოვლა: 8 ნაბიჯი
ვიბრაციისა და სათქმელის გამოყენებით მბრუნავი მანქანების წინასწარი მოვლა: მბრუნავი მანქანები, როგორიცაა ქარის ტურბინები, ჰიდროტურბინები, ინდუქციური ძრავები და ა. ამ ხარვეზებისა და ცვეთის უმეტესობა გამოწვეულია მოწყობილობის არანორმალური ვიბრაციით. ეს მანქანები ხშირად მუშაობენ მძიმედ
Arduino PLC 32 I/O+სახელმწიფო მანქანა+SCADA ან HMI: 8 ნაბიჯი
Arduino PLC 32 I/O+სახელმწიფო მანქანა+SCADA ან HMI: ინდუსტრიული სისტემის პროგრამირების, კონტროლისა და ზედამხედველობის მრავალი გზა arduino– ით