Სარჩევი:

2-ღილაკი კვადრატული განტოლების ამომხსნელი: 5 ნაბიჯი
2-ღილაკი კვადრატული განტოლების ამომხსნელი: 5 ნაბიჯი

ვიდეო: 2-ღილაკი კვადრატული განტოლების ამომხსნელი: 5 ნაბიჯი

ვიდეო: 2-ღილაკი კვადრატული განტოლების ამომხსნელი: 5 ნაბიჯი
ვიდეო: The difference between Casio FX-991EX and Casio FX-991CW 2024, ნოემბერი
Anonim
Image
Image

შესავალი

კეთილი იყოს თქვენი მობრძანება ჩემს პირველ სასწავლებელში!

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

ბაზინგა! ეს არის გამოყენების შემთხვევა!

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

მარაგები

მასალების სია:

ყუთი

2 ღილაკი არკადული სტილი

არდუინო ნანო, ან მსგავსი

LCD დისპლეი 1602 I2C ადაპტერით

ჩართვა / გამორთვა

მავთულები

2x 10k Ohm რეზისტორი

ბატარეა 9 ვ ბლოკი

კონექტორი 9 ვ ბატარეისთვის

პურის დაფა

სხვადასხვა (ხის ნაჭერი, ლითონის კუთხე, საკაბელო კავშირები, ხრახნი, საყელურები)

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

დაინახა

soldering რკინის

საბურღი მანქანა

კომპიუტერი პროგრამირებისთვის

ნაბიჯი 1: მათემატიკური ფონი

პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა

მათემატიკური უკანა პლანზე

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

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

კვადრატულ განტოლებას აქვს ფორმა:

ax²+bx+c = 0

გადაკვეთის წერტილების გამოსათვლელად გაყავით ფორმა x²+px+q = 0 – ით p = b/a; q = c/a

PQ ფორმულა:

x1 = -p/2 + sqrt ((p/2) -q)

x2 = -p/2 -sqrt ((p/2) -q)

შედეგს x შეუძლია მიიღოს 0, 1 ან 2 მნიშვნელობა. ეს დამოკიდებულია კვადრატული ფესვის ღირებულებაზე.

არის მნიშვნელობა> 0, მაშინ PQ- ფორმულას აქვს ორი გამოსავალი.

არის მნიშვნელობა = 0, მაშინ PQ- ფორმულას აქვს ერთი გამოსავალი

არის მნიშვნელობა <0, მაშინ PQ ფორმულას არ აქვს გამოსავალი. ფუნქცია არ კვეთს X ღერძს.

ნაბიჯი 2: პროგრამული უზრუნველყოფა

პროგრამული უზრუნველყოფა

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

PQ- ფორმულის გადასაჭრელად, მე ვქმნი სტრუქტურას ზემოთ:

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

- დენონსირება

- ჩვენება

შემდეგი პუნქტები იყო ყველაზე დიდი გამოწვევები:

- როგორ შემიძლია ავირჩიო ნიშანი? მე გადავწყვიტე ეს გამოწვევა ფუნქციით modulo (ბმული). კოდი ყოფს შეყვანას 2. არის თუ არა შეყვანა კენტი რიცხვი, მნიშვნელობა ნეგატიური ხდება, წინააღმდეგ შემთხვევაში რიცხვი დადებითია.

- ყველა დონის გავლის შემდეგ, მე უნდა გამოვაცხადო ყველა მნიშვნელობა 0 -ზე.

- ნაჩვენები ტექსტი უბრალოდ წაშლის გაგზავნის სიმბოლოებს. თუ კოდები აგზავნის სიტყვას 4 სიმბოლოთი, მხოლოდ ეს 4 სიმბოლო გადაიტვირთება. თუ წინა სიტყვას მეტი სიმბოლო ჰქონდა, სიმბოლოები დარჩებიან. ამის გამოსასწორებლად, ნაჩვენები ტექსტი ივსება ბლანკებით. ზედიზედ 16 სიმბოლო იქნება გადატვირთული.

საბოლოო კოდი თან ერთვის.

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

ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა

ტექნიკა

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

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

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

მიკროპროცესორი არის არდუინო ნანოს კლონი. ამ გამოყენების შემთხვევაში, შესრულება საკმარისია. Attiny 85, მაგალითად Digispark მიკროპროცესორი, უარყოფილ იქნა. Arduino არის "პური დაფაზე" ეკრანის გვერდით.

ეკრანი არის 1602 LCD დისპლეი. თქვენ შეგიძლიათ გამოიყენოთ 16 სიმბოლო ორ რიგში. თქვენ შეგიძლიათ ნახოთ ეს ჩვენება სხვადასხვა მოწყობილობებში და ინსტრუმენტებში. ამ ჩვენების გამოყენების ორი განსხვავებული გზა არსებობს. თქვენ შეგიძლიათ დაუკავშიროთ ეკრანი უშუალოდ კონტროლერს ან გამოიყენოთ დანამატი ეკრანზე კომუნიკაციისთვის I2C საშუალებით. I2C არის სტანდარტული პროტოკოლი. მე გამოვიყენე, რადგან უფრო ადვილია ეკრანის დაკავშირება კონტროლერთან. თქვენ გჭირდებათ 4 კაბელი 16 – ის ნაცვლად, VCC– დან 5V– მდე, GND– დან GND– მდე, SDA– დან A4– მდე, SCL– დან A5– მდე. ჩვენება ფიქსირდება ხრახნებით ყუთის საფარზე.

ღილაკები უზარმაზარია! მათ აქვთ არკადული თამაშის ტიპიური სტილი. Მომწონს! ღილაკები დაკავშირებულია ციფრულ პინ 4 -თან და 7. გთხოვთ არ დაივიწყოთ 10K რეზისტორები!

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

ნაბიჯი 4: გაყვანილობა

გაყვანილობა
გაყვანილობა

ნაბიჯი 5: მომავალი გაუმჯობესება

მომავალი გაუმჯობესება

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

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

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

გირჩევთ: