Სარჩევი:

არდუინო ყაჩაღი მორზში: 9 ნაბიჯი
არდუინო ყაჩაღი მორზში: 9 ნაბიჯი

ვიდეო: არდუინო ყაჩაღი მორზში: 9 ნაბიჯი

ვიდეო: არდუინო ყაჩაღი მორზში: 9 ნაბიჯი
ვიდეო: 1. რა არის Arduino? როგორ მუშაობს კომპიუტერი? 2024, ნოემბერი
Anonim
არდუინო ყაჩაღი მორზში
არდუინო ყაჩაღი მორზში

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

ყველაფერი რაც თქვენ უნდა დაიცვას არის: Arduino დაფა. 10 LED- განათება მავთულები ამ ყველაფრის დასაკავშირებლად. დამატებითი: პიეზო ელემენტი (ხმის დასამატებლად).

ნაბიჯი 1: LED ნათურების დაყენება

LED ნათურების დაყენება
LED ნათურების დაყენება

მორსის ეს თამაში გამოიყენებს 4 შუქს, რათა მიუთითოს სიტყვის 4 ასო, რომლის გამოცნობაც საჭიროა და 5 შუქი მიუთითებს იმ სიცოცხლეზე, რომელთანაც მოთამაშემ გამოიცნო, ასე რომ, უპირველეს ყოვლისა, თქვენ უნდა დაუკავშიროთ 9 LED -განათება ჩვეულებრივი გზით, როგორც სურათზე ჩანს.

ნაბიჯი 2: დაამატეთ თვითნაკეთი სინათლის სენსორი

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

ყველაფერი რაც თქვენ გჭირდებათ არის LED შუქის პლუს მხარე დაუკავშიროთ თქვენს ერთ ანალოგიურ პორტს (ჩემს შემთხვევაში A0) და მინუს მხარე თქვენს მიწას.

ნაბიჯი 3: დაამატეთ თქვენი ლექსიკონი

დაამატეთ თქვენი ლექსიკონი
დაამატეთ თქვენი ლექსიკონი

უპირველეს ყოვლისა, მოდით, დავიწყოთ ერთგვარი ლექსიკონის დამატებით, რათა თარგმნოთ ასოები მათ შესაბამის მორზეს კოდებში. ამისათვის ჩვენ უბრალოდ ვქმნით მასივს 26 -დან 5 -ით, თითოეული მეორადი მასივის პირველ სლოტს აქვს ასო და 4 მომდევნო სლოტს აქვს შესაბამისი მორზეს კოდი ან სივრცე, თუ კოდი არ დარჩა. მაგალითად, ასოებით s, პირველ სლოტს აქვს 's', მეორე, მესამე და მეოთხე სლოტს აქვს '.' და ბოლო სლოტს აქვს ''.

ნაბიჯი 4: განათება განათება ნაგულისხმევად

ნაგულისხმევად განათება განათება
ნაგულისხმევად განათება განათება
ნაგულისხმევად განათება განათება
ნაგულისხმევად განათება განათება

ამ ნაბიჯში ჩვენ დავრწმუნდებით, რომ განათება ჩართულია პროგრამის დაწყებისთანავე და მორზეს ასო, რომელსაც ისინი წარმოადგენენ მას შემდეგ, რაც მომხმარებელმა სწორად გამოიცნო ისინი (ამის კოდი დაიწერება მე –6 ნაბიჯში). ჩვენ ასევე დავრწმუნდებით, რომ მხოლოდ იმდენი შუქია ჩართული სიცოცხლისთვის, რამდენსაც მოთამაშეს სიცოცხლე დარჩა.

მანამდე, დარწმუნდით, რომ გაქვთ მასივი პორტ-ნომრებით და მთელი რიცხვებით 0, რათა წარმოადგინონ დრო, როდესაც შუქი უნდა აინთოს, გამორთოს და მორსის რომელ ნაწილს აჩვენებს LED ნათურა ამჟამად.

ნაბიჯი 5: შეყვანის დამატება

შეყვანის დამატება
შეყვანის დამატება

ახლა ჩვენ დავწერთ კოდს იმის შესამოწმებლად, ანათებს თუ არა მოთამაშე ჩვენს ანალოგურ პორტთან A0- სთან დაკავშირებულ LED- შუქს და უნდა გადათარგმნოს ის სწორი ასოებით.

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

msBtnPushed წარმოადგენს იმ დროის რაოდენობას, რომლისთვისაც შუქი იყო ჩართული. lastPressed არის ლოგიკური, რომელიც თვალყურს ადევნებს თუ არა წინა მარყუჟში შუქი.

ნაბიჯი 6: შეყვანის დამუშავება

შეყვანის დამუშავება
შეყვანის დამუშავება
შეყვანის დამუშავება
შეყვანის დამუშავება

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

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

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

PS: ყველა Serial.println ფუნქცია მხოლოდ ტესტირების მიზნებისთვისაა. ისინი შეიძლება წაიშალოს დასრულებისთანავე.

GoodTimer და badTimer უბრალოდ ფასეულობებია, თუ თქვენ აპირებთ Piezo ელემენტის გამოყენებას ხმის დასამატებლად. თუ გსურთ ამის გაკეთება, თქვენ ასევე უნდა დაამატოთ კოდი მეორე სურათზე, რომელიც უკრავს ბგერებს.

ნაბიჯი 7: სწორად გამოცნობილი წერილების მორწყვა

სწორად გამოცნობილი წერილების მორსი
სწორად გამოცნობილი წერილების მორსი

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

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

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

ნაბიჯი 8: გადახედეთ ჩვენს პარამეტრებს და გადატვირთეთ

გადახედეთ ჩვენს დაყენებასა და გადატვირთვას
გადახედეთ ჩვენს დაყენებასა და გადატვირთვას

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

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

ნაბიჯი 9: ყველა ცვლადი ერთ სურათში

ყველა ცვლადი ერთ სურათში
ყველა ცვლადი ერთ სურათში

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

ახლა ისიამოვნეთ მორჯში Hangman– ის თამაშით!

გირჩევთ: