Სარჩევი:

ინტერაქტიული გარე განათება: 8 ნაბიჯი
ინტერაქტიული გარე განათება: 8 ნაბიჯი

ვიდეო: ინტერაქტიული გარე განათება: 8 ნაბიჯი

ვიდეო: ინტერაქტიული გარე განათება: 8 ნაბიჯი
ვიდეო: 10 გასაოცარი სასარგებლო გამოგონება ბუჩქების გადარჩენისთვის კემპინგისთვის! შეიძლება დაგჭირდეთ! 2024, ნოემბერი
Anonim
ინტერაქტიული გარე განათება
ინტერაქტიული გარე განათება
ინტერაქტიული გარე განათება
ინტერაქტიული გარე განათება
ინტერაქტიული გარე განათება
ინტერაქტიული გარე განათება

ეს არის ჩემი პირველი ინსტრუქცია! გთხოვთ დამეთანხმოთ სანამ მე მიჭირს სათანადო ინგლისურის დაწერა. თავისუფლად შემისწორე! მე დავიწყე ეს პროექტი მხოლოდ მას შემდეგ, რაც დაიწყო კონკურსი "მოდით ეს ბრწყინავდეს". ვისურვებდი, რომ ბევრად მეტი გამეკეთებინა და დამემთავრებინა ის, რისი გაკეთებაც მინდოდა. მაგრამ სკოლასა და სამუშაოს შორის, მე არ დამრჩა იმდენი დრო, რამდენიც მინდოდა. მიუხედავად ამისა, მე აქ ვტოვებ ანგარიშს ჩემი ექსპერიმენტების შესახებ, როგორც სასწავლო, ასე რომ ნებისმიერს შეუძლია სცადოს და გააკეთოს ის, რაც მე გავაკეთე. ეს ინსტრუქცია არ ნიშნავს იმას, რომ იყოს სახელმძღვანელო და ასწავლოს როგორ გააკეთოს ეს კონტრაცეფცია. ეს არ არის სახელმძღვანელო დამწყებთათვის ელექტრონიკაში. ეს უფრო ჰგავს ერთი იდეისა და მიზნის გაზიარებას, რომლის განხორციელებაც მსურს. თუ თქვენ ხართ დამწყები/სრული უმეცარი ელექტრონიკაში და გსურთ მსგავსი რამის გაკეთება, ბოდიში! მაგრამ ჩვენ შეგვიძლია ვცადოთ ყოველთვის დაგეხმაროთ. იხილეთ ბოლო ნაბიჯი. ჩვენ უკვე ვნახეთ მრავალი გარემოს განათების პროექტი. მათი უმრავლესობა იყენებს RGB LED- ებს: - ოთახის ერთი ფერის გასანათებლად, ატმოსფეროს შესაქმნელად თქვენს განწყობაზე - ტელევიზორის/მონიტორის ფერიდან ან აუდიოდან სინათლის ეფექტების შესაქმნელად. ინსტრუქციებშიც კი არის რამოდენიმე დაკავშირებული: წვრილმანი გარემოს განათების სისტემები სინათლის ბარი გარემოს განათება საკუთარი გარემოს განათების შუქების აგება ამ კონკურსის საბაბად, დავიწყე პროექტი, რომელიც დიდი ხანია ჩემს გონებაში იყო. მე ყოველთვის მინდოდა მსგავსი გარე განათების მსგავსი რამ გამეკეთებინა და ჩემი ოთახის კედლები შევსებულიყო RGB LED- ებით. მაგრამ, ერთი ნაბიჯის გადადგმა, ყველა და თითოეული მათგანი გასაკონტროლებელი. ვიმედოვნებთ, რომ ეს პროექტი გამოიწვევს ღია კოდის ელექტრონული ნაკრები მოყვარულთათვის და ელექტრონული დამჭერებისთვის, რაც აპარატურის/პროგრამული უზრუნველყოფის გარჩევისა და სენსორული ინტეგრაციის საშუალებას მისცემს. აქ არის მცირე გადახედვა იმისა, რაც მე გავაკეთე:

ნაბიჯი 1: იდეის შესწავლა

მე მინდა შევძლო ჩემი ოთახის კედლების შევსება RGB LED- ებით, თითოეული ლიდერის ფერისა და სიკაშკაშის კონტროლით. მე ვაპირებ გამოვიყენო მიკროკონტროლერი გამოყენების სიმარტივისა და მოქნილობისათვის. სამწუხაროდ, მე ვერ ვაკონტროლებ ასობით LED- ებს მიკროკონტროლერებზე არსებული რამდენიმე ქინძისთავით. ძნელი იქნებოდა ამდენი LED- ების კონტროლის კოდირება. ასე რომ, მე გადავწყვიტე, რომ ყველა LED- ი უნდა გავყო რამდენიმე პატარა ზოლად და თითოეული ბარისთვის შემეძლო მიკროკონტროლერის გამოყენება. შემდეგ გამოვიყენებ მიკროკონტროლერების საკომუნიკაციო შესაძლებლობებს მათ შორის ინფორმაციის გასაზიარებლად. ეს ინფორმაცია შეიძლება იყოს LED- ების ფერი და სიკაშკაშე, ფერის ნიმუშები/თანმიმდევრობა და სენსორული ინფორმაცია. თითოეული ბარისთვის მე გადავწყვიტე გამომეყენებინა 16 RGB ები. ეს იწვევს არც ძალიან დიდ და არც პატარა ბარს. ამ გზით ვიყენებ რესურსების მისაღებ რაოდენობას თითოეული led- ისთვის, ხარჯების შემცირებას თითოეული ბარისთვის. მიუხედავად ამისა, 16 RGB LED არის 48 LED (3*16 = 48) მიკროკონტროლის გასაკონტროლებლად. ხარჯების გათვალისწინებით, მე გადავწყვიტე გამოვიყენო ყველაზე იაფი მიკროკონტროლერი, რომლის გამოყენებაც შემეძლო. ეს ნიშნავს, რომ მიკროკონტროლერს ექნება მხოლოდ 20 I/O ქინძისთავები, არ არის საკმარისი 48 LED- ისთვის. მე არ მსურს გამოვიყენო charlieplexing ან რაიმე სახის დროის გამყოფი დისკი, რადგან პროექტის მიზანი არის ოთახის განათება. ერთადერთი ალტერნატივა, რომლის მოფიქრებაც შემიძლია, არის გარკვეული სახის ჩაკეტილი ცვლის რეგისტრაცია! განახლება:- შექმენით და ინტერაქტიული გარე განათება- შექმენით კონტროლირებადი LED- ების სტანდარტული ზოლი- ოთახის შესავსებად რამდენიმე ბარის დაკავშირების შესაძლებლობა- დაუშვით მომხმარებლის ადაპტაცია/კონფიგურაცია და სენსორული ინტეგრაცია

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

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

როგორც წინა ნაბიჯზეა ნათქვამი, მინდა რამდენიმე ბარი გავაკეთო ერთი ოთახის გასანათებლად. ეს გვახსოვს ხარჯების საკითხი. მე შევეცდები და თითოეული ბარი გახადოს ყველაზე ეკონომიური გზა. მიკროკონტროლი, რომელსაც ვიყენებდი, იყო AVR ATtiny2313. ეს არის საკმაოდ იაფი და მე მქონდა რამდენიმე ტყუილი გარშემო. ATtiny2313– ს აქვს ერთი უნივერსალური სერიული ინტერფეისი და ერთი USART ინტერფეისი, რომელიც კარგად გამოდგება შემდეგ ნაბიჯებში. მე ასევე მქონდა სამი MCP23016 - I2C 16 ბიტიანი I/O პორტის გაფართოება, მხოლოდ სწორი რაოდენობა! მე გამოვიყენე თითოეული პორტის გაფართოება 16 LED- ის ერთი ფერის გასაკონტროლებლად. LED- ები… სამწუხაროდ, ყველაზე იაფი იყო, რაც მე ვიპოვე. ისინი 48 წითელი, მწვანე და ლურჯია ~ 10000 მკდ 5 მმ 20 გრადუსიანი კუთხით. ამას არ უნდა ჰქონდეს მნიშვნელობა, რადგან ეს მხოლოდ ერთი პროტოტიპია. ამ ფაქტის მიუხედავად, შედეგი საკმაოდ სასიამოვნოა! მიკროკონტროლერს ვუშვებ 8 მეგაჰერცზე. I2C ავტობუსი არის 400 კჰჰც სიხშირით. LED გადართვის სიხშირე დაახლოებით 400 ჰც. ამ გზით, თუ მე შემიძლია 48 LED- ების მართვა ლიმიტამდე მისვლის გარეშე, მე უფრო მოგვიანებით დავტოვებ ადგილს!

ნაბიჯი 3: შეკრება

შეკრება
შეკრება
შეკრება
შეკრება
შეკრება
შეკრება
შეკრება
შეკრება

სქემის შემუშავების შემდეგ, მე ავაშენე ის რამდენიმე დაფაზე, პროტოტიპის მიზნით. რამოდენიმე საათის განმავლობაში მავთულის მოჭრისა და მიკროსქემის შეკრების შემდეგ მივიღე ეს შედეგი: ერთი გიგანტური პურის დაფა 48 LED- ით და ტონა მავთულით!

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

კონტროლი?
კონტროლი?

ეს არის პროექტის ყველაზე რთული ნაწილი. მე მინდოდა გამეკეთებინა ერთი საკონტროლო ალგორითმი, რომელიც საკმარისი იქნებოდა ნიმუშების/თანმიმდევრობების დამუშავებისათვის და ასევე თითოეული LED- ის სიკაშკაშის და ფერის გასაკონტროლებლად. LED- ების გასაკონტროლებლად მე უნდა გამოეგზავნა MCP23016– ისთვის 4 კბ ჩარჩო (1 ბაიტი = 8 ბიტი). ერთი ბაიტი ფერის შესაბამისი IC მისამართის მისამართით, 1 ბაიტი ბრძანებით "ჩაწერა" და 2 ბაიტი 16 ბიტიანი (LED) მნიშვნელობით. IC უკავშირდება LED- ებს, როგორც "ჩაძირვას", რაც იმას ნიშნავს, რომ ერთი ლოგიკური მნიშვნელობა 0 pin- ზე აანთებს LED- ს. ახლა კი რთული ნაწილი, თუ როგორ უნდა მოხდეს PWM კონტროლი 48 LED- ისთვის? შევისწავლოთ PWM ერთი LED- ისთვის! PWM განმარტავს @ ვიკიპედიას. თუ მე მინდა LED სიკაშკაშე 50%-ზე, ჩემი PWM მნიშვნელობა არის 50%. ეს ნიშნავს, რომ LED, დროის ერთ მონაკვეთში, უნდა იყოს იმავე ოდენობით, როგორც გამორთული. ავიღოთ 1 წამიანი პერიოდი. PWM 50% ნიშნავს, რომ ამ 1 წამში, დრო არის 0.5 წამი და გამორთვის დრო არის 0.5 წამი. PWM 80%? 0.2 წამი გამორთულია, 0.8 წამი ჩართულია! ადვილია, არა? ციფრულ სამყაროში: 10 საათის ციკლის პერიოდის განმავლობაში 50% ნიშნავს, რომ 5 ციკლისთვის LED არის ჩართული, ხოლო სხვა 5 ციკლისთვის LED გამორთულია. 20%? 2 ციკლი ჩართულია, 8 ციკლი გამორთულია. 45%? ჩვენ ნამდვილად ვერ მივიღებთ 45%-ს … ვინაიდან ეს პერიოდი ციკლებშია და ჩვენ გვაქვს მხოლოდ 10 ციკლი, ჩვენ შეგვიძლია მხოლოდ PWM- ის გაყოფა 10%-იანი ნაბიჯებით. ეს ნიშნავს, რომ pin- ის ევოლუცია უნდა იყოს, 50%-ისთვის: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; ან თუნდაც 1, 0, 1, 0, 1, 0, 1, 0, 1, 0; პროგრამირებისას ჩვენ შეგვიძლია გავაკეთოთ მასივის ჩართვისა და გამორთვის ეს თანმიმდევრობა. თითოეული ციკლისთვის ჩვენ გამოვყავით პინზე ინდექსის ღირებულება იყო ციკლი. ვიგრძენი აქამდე აზრი? თუ ჩვენ გვინდა, რომ LED0 იყოს 50%, და LED1 20%, ჩვენ შეგვიძლია დავამატოთ ორივე მასივი.: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; LED1 პინის მართვისთვის: 2, 2, 0, 0, 0, 0, 0, 0, 0, 0; შედეგად LED0 +LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0; რიცხვების ამ თანმიმდევრობის გამოტანა პორტის გაფართოების IC- ში, ჩვენ მივიღებთ LED0 50% სიკაშკაშეს და LED1 20% !! მარტივია 2 LED- ისთვის, არა? ახლა ჩვენ უნდა გავაკეთოთ ეს 16 LED- ებისთვის, თითოეული ფერისთვის! თითოეული ამ მასივისთვის ჩვენ გვაქვს სიკაშკაშის კომბინაცია თითოეული ფერისთვის (16 LED) ყოველ ჯერზე, როდესაც გვსურს ფერების სხვა კომბინაცია, ჩვენ უნდა შევცვალოთ ეს მასივი.

ნაბიჯი 5: გაადვილეთ

რაც ადვილია!
რაც ადვილია!
რაც ადვილია!
რაც ადვილია!

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

ნაბიჯი 6: პირველი ექსპერიმენტები

პირველი ექსპერიმენტები
პირველი ექსპერიმენტები

მიკროკონტროლერში რამდენიმე საფეხურის ჩატვირთვა და ჩვენ ვიღებთ მსგავს რამეს: ბოდიში ვიდეოების ცუდი ხარისხისთვის! მე განვსაზღვრე თანმიმდევრობის ნაბიჯების მაქსიმალური რაოდენობა 8 -მდე და შევზღუდე PWM 20% ნახტომით. ეს გადაწყვეტილება ეფუძნება იმ სახის კონტროლს, რომელსაც მე ვიყენებ და რამდენად EEPROM აქვს ATtiny2313. ამ ექსპერიმენტებში შევეცადე დამენახა რა სახის ეფექტები შემეძლო. უნდა ვთქვა, რომ შედეგით კმაყოფილი ვარ!

ნაბიჯი 7: რეალურ დროში კონტროლი

რეალურ დროში კონტროლი
რეალურ დროში კონტროლი
რეალურ დროში კონტროლი
რეალურ დროში კონტროლი
რეალურ დროში კონტროლი
რეალურ დროში კონტროლი

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

ნაბიჯი 8: დასკვნები

დასკვნები
დასკვნები
დასკვნები
დასკვნები
დასკვნები
დასკვნები
დასკვნები
დასკვნები

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

Მომავალი სამუშაო:

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

ჩემი მომდევნო ვერსიისთვის: აკონტროლეთ LED- ები -განავითარეთ კომუნიკაცია რამდენიმე მიკროკონტროლერს შორის.

გაქვთ რაიმე შემოთავაზება ან შეკითხვა? ან დატოვეთ კომენტარი!

ფინალისტი Let It Glow!

გირჩევთ: