Სარჩევი:

DIY კონტროლი RGB LED ფერი Bluetooth– ის საშუალებით: 5 ნაბიჯი
DIY კონტროლი RGB LED ფერი Bluetooth– ის საშუალებით: 5 ნაბიჯი

ვიდეო: DIY კონტროლი RGB LED ფერი Bluetooth– ის საშუალებით: 5 ნაბიჯი

ვიდეო: DIY კონტროლი RGB LED ფერი Bluetooth– ის საშუალებით: 5 ნაბიჯი
ვიდეო: ESP32 Tutorial 6 - Using RGB LED Project 2.3 -SunFounder's ESP32 IoT Learnig kit 2024, ივლისი
Anonim
DIY კონტროლი RGB LED ფერი Bluetooth– ის საშუალებით
DIY კონტროლი RGB LED ფერი Bluetooth– ის საშუალებით

ჭკვიანი ნათურები სულ უფრო და უფრო იზრდება პოპულარობით და მუდმივად ხდება ჭკვიანი სახლის ინსტრუმენტების ნაკრები. ჭკვიანი ნათურები მომხმარებელს საშუალებას აძლევს გააკონტროლოს თავისი შუქი მომხმარებლის სმარტ ტელეფონზე სპეციალური აპლიკაციის საშუალებით; ნათურა შეიძლება ჩართოთ და გამორთოთ და ფერი შეიცვალოს პროგრამის ინტერფეისიდან. ამ პროექტში ჩვენ შევქმენით ჭკვიანი ნათურის კონტროლერი, რომლის კონტროლი შესაძლებელია ხელით ღილაკიდან ან მობილური აპლიკაციიდან Bluetooth- ის საშუალებით. იმისათვის, რომ ამ პროექტს მეტი სიამოვნება მივანიჭოთ, ჩვენ დავამატეთ რამდენიმე მახასიათებელი, რაც მომხმარებელს საშუალებას აძლევს აირჩიოს განათების ფერი პროგრამის ინტერფეისში შემავალი ფერების სიიდან. მას ასევე შეუძლია გაააქტიუროს "ავტო მიქსი" ფერის ეფექტების შესაქმნელად და შეცვალოს განათება ყოველ ნახევარ წამში. მომხმარებელს შეუძლია შექმნას საკუთარი ფერადი ნაზავი PWM ფუნქციის გამოყენებით, რომელიც ასევე შეიძლება გამოყენებულ იქნას როგორც დაბნელება სამი ძირითადი ფერისთვის (წითელი, მწვანე, ლურჯი). ჩვენ ასევე დავამატეთ მიკროსქემის გარე ღილაკები, რათა მომხმარებელს შეეძლოს გადავიდეს მექანიკურ რეჟიმში და შეცვალოს სინათლის ფერი გარე ღილაკიდან.

ეს ინსტრუქცია შედგება ორი ნაწილისგან; GreenPAK ™ დიზაინი და Android აპლიკაციის დიზაინი. GreenPAK დიზაინი ემყარება კომუნიკაციისთვის UART ინტერფეისის გამოყენებას. UART არჩეულია, რადგან მას აქვს Bluetooth მოდულების უმეტესობა, ისევე როგორც სხვა პერიფერიული მოწყობილობები, როგორიცაა WIFI მოდულები. შესაბამისად, GreenPAK დიზაინი შეიძლება გამოყენებულ იქნას კავშირის მრავალ ტიპში.

ამ პროექტის შესაქმნელად, ჩვენ ვაპირებთ გამოვიყენოთ SLG46620 CMIC, Bluetooth მოდული და RGB LED. GreenPAK IC იქნება ამ პროექტის საკონტროლო ბირთვი; ის იღებს მონაცემებს Bluetooth მოდულიდან და/ან გარე ღილაკიდან, შემდეგ იწყებს საჭირო პროცედურას სწორი განათების ჩვენების მიზნით. ის ასევე წარმოქმნის PWM სიგნალს და გამოსცემს მას LED- ზე. ქვემოთ მოყვანილი სურათი 1 აჩვენებს ბლოკ დიაგრამას.

ამ პროექტში გამოყენებული GreenPAK მოწყობილობა შეიცავს SPI კავშირის ინტერფეისს, PWM ბლოკებს, FSM და უამრავ სხვა სასარგებლო დამატებით ბლოკს ერთ IC- ში. მას ასევე ახასიათებს მისი მცირე ზომა და დაბალი ენერგიის მოხმარება. ეს საშუალებას მისცემს მწარმოებლებს ააშენონ მცირე პრაქტიკული წრე ერთი IC– ს გამოყენებით, შესაბამისად წარმოების ხარჯები მინიმუმამდე შემცირდება მსგავს სისტემებთან შედარებით.

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

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

GreenPAK დიზაინი მოიცავს UART მიმღებს, PWM ერთეულს და საკონტროლო ერთეულს, რომელიც აღწერილია ქვემოთ მოცემულ ნაბიჯებში.

ნაბიჯი 1: UART მიმღები

UART მიმღები
UART მიმღები

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

Bluetooth მოდულში მიღებული მონაცემები გადაეცემა ჩვენს GreenPAK მოწყობილობას. Pin10– ის მოჩვენებითი მდგომარეობა არის მაღალი. გაგზავნილი ყველა სიმბოლო იწყება ლოგიკური LOW დაწყების ბიტით, რასაც მოჰყვება მონაცემთა ბიტების კონფიგურაცია და ერთი ან მეტი ლოგიკური HIGH stop ბიტი.

UART გადამცემი აგზავნის 1 START ბიტს, 8 მონაცემთა ბიტს და ერთ STOP ბიტს. ჩვეულებრივ, UART Bluetooth მოდულის ნაგულისხმევი სიჩქარეა 9600. ჩვენ მონაცემების ბაიტს გავგზავნით Bluetooth IC– დან GreenPAK ™ SLG46620– ის SPI ბლოკში.

ვინაიდან GreenPAK SPI ბლოკს არ აქვს START ან STOP ბიტის კონტროლი, ჩვენ ვიყენებთ ამ ბიტებს მის ნაცვლად SPI საათის სიგნალის (SCLK) გასააქტიურებლად და გამორთვისთვის. როდესაც Pin10 მიდის დაბალ დონეზე, ჩვენ ვიცით, რომ მივიღეთ START ბიტი, ამიტომ ჩვენ ვიყენებთ PDLY დაცემის დეტექტორს კომუნიკაციის დაწყების დასადგენად. ეს დაცემის ზღვარი დეტექტორებს უყრის DFF0- ს, რაც SCLK სიგნალს საშუალებას აძლევს დაათვალიეროს SPI ბლოკი.

ჩვენი სიჩქარე არის 9600 ბიტი წამში, ამიტომ ჩვენი SCLK პერიოდი უნდა იყოს 1/9600 = 104 μs. ამიტომ, ჩვენ დავაყენეთ OSC სიხშირე 2 MHz და გამოვიყენეთ CNT0 როგორც სიხშირის გამყოფი.

2 MHz-1 = 0.5 μs

(104 μs / 0.5 μs) - 1 = 207

ამიტომ, ჩვენ გვინდა, რომ CNT0 მრიცხველის მნიშვნელობა იყოს 207. იმის უზრუნველსაყოფად, რომ ჩვენ არ გამოვტოვებთ მონაცემებს, ჩვენ უნდა გადავადოთ SPI საათი ნახევარი საათის ციკლით ისე, რომ SPI ბლოკი დაირღვეს სათანადო დროს. ჩვენ ეს შევძელით CNT6, 2-ბიტიანი LUT1 და OSC ბლოკის გარე საათის გამოყენებით. CNT6– ის გამომუშავება არ გაიზრდება 52 μs– მდე DFF0– ის დაზუსტების შემდეგ, რაც ჩვენი 104 μs SCLK პერიოდის ნახევარია. როდესაც CNT6 მაღალია 2 ბიტიანი LUT1 AND კარიბჭე საშუალებას აძლევს 2MHz OSC სიგნალს გადავიდეს EXT– ში. CLK0 შეყვანა, რომლის გამომავალი დაკავშირებულია CNT0- თან.

ნაბიჯი 2: PWM განყოფილება

PWM განყოფილება
PWM განყოფილება

PWM სიგნალი გენერირდება PWM0 და მასთან დაკავშირებული საათის პულსის გენერატორის გამოყენებით (CNT8/DLY8). ვინაიდან პულსის სიგანე მომხმარებლის მიერ არის კონტროლირებადი, ჩვენ ვიყენებთ FSM0- ს (რომლის დაკავშირება შესაძლებელია PWM0- თან) მომხმარებლის მონაცემების დასათვლელად.

SLG46620– ში 8 ბიტიანი FSM1 შეიძლება გამოყენებულ იქნას PWM1 და PWM2– ით. Bluetooth მოდული უნდა იყოს დაკავშირებული, რაც ნიშნავს რომ SPI პარალელური გამომავალი უნდა იქნას გამოყენებული. SPI პარალელური გამომავალი ბიტი 0 -დან 7 -მდე შერეულია DCMP1, DMCP2 და LF OSC CLK– ის OUT1 და OUT0– ით. PWM0 იღებს გამომავალს 16 ბიტიანი FSM0– დან. უცვლელი რომ დარჩეს ეს იწვევს პულსის სიგანის გადატვირთვას. 8 ბიტიანი მრიცხველის ღირებულების შეზღუდვისთვის დაემატება სხვა FSM; FSM1 გამოიყენება როგორც მაჩვენებელი იმის გასაგებად, თუ როდის აღწევს მრიცხველი 0 ან 255. FSM0 გამოიყენება PWM პულსის გენერირებისთვის. FSM0 და FSM1 უნდა იყოს სინქრონიზებული. ვინაიდან ორივე FSM– ს აქვს წინასწარ განსაზღვრული საათის პარამეტრები, CNT1 და CNT3 გამოიყენება როგორც შუამავლები CLK– ის გადასასვლელად ორივე FSM– სთვის. ორი მრიცხველი ერთნაირი მნიშვნელობისაა, რაც 25 არის ამ ინსტრუქციისთვის. ჩვენ შეგვიძლია შევცვალოთ PWM მნიშვნელობის ცვლილების სიჩქარე ამ მრიცხველის მნიშვნელობების შეცვლით.

FSM- ების ღირებულება იზრდება და მცირდება სიგნალებით '+' და '-', რომლებიც წარმოიქმნება SPI პარალელური გამომავალიდან.

ნაბიჯი 3: კონტროლის განყოფილება

საკონტროლო განყოფილება
საკონტროლო განყოფილება

საკონტროლო განყოფილებაში მიღებული ბაიტი გადადის Bluetooth მოდულიდან SPI პარალელურ გამომავალში და შემდეგ გადაეცემა დაკავშირებულ ფუნქციებს. თავდაპირველად, PWM CS1 და PWM CS2 შედეგები შემოწმდება თუ არა PWM ნიმუში გააქტიურებულია თუ არა. თუ ის გააქტიურებულია, ის განსაზღვრავს რომელი არხი გამოუშვებს PWM– ს LUT4, LUT6 და LUT7 საშუალებით.

LUT9, LUT11 და LUT14 პასუხისმგებელნი არიან დანარჩენი ორი LED- ის მდგომარეობის შემოწმებაზე. LUT10, LUT12 და LUT13 შეამოწმეთ გააქტიურებულია თუ არა მექანიკური ღილაკი. თუ მექანიკური რეჟიმი აქტიურია, მაშინ RGB შედეგები გამოდის D0, D1, D2 გამომავალი მდგომარეობების შესაბამისად, რომლებიც იცვლება ყოველ ჯერზე, როდესაც ფერადი ღილაკს დააჭერთ. ის იცვლება CNT9– დან მომდინარე მზარდი ზღვარით, რომელიც გამოიყენება როგორც მზარდი კიდეების გამომმუშავებელი.

Pin 20 კონფიგურირებულია როგორც შეყვანა და გამოიყენება მექანიკურ და Bluetooth კონტროლს შორის გადასართავად.

თუ ხელით რეჟიმი გამორთულია და ავტომატური მიქსერის რეჟიმი გააქტიურებულია, მაშინ ფერი იცვლება ყოველ 500 ms– ში, როდესაც CNT7– დან მოდის ზღვარი. 4 ბიტიანი LUT1 გამოიყენება D0 D1 D2- ისთვის '000' მდგომარეობის თავიდან ასაცილებლად, ვინაიდან ეს მდგომარეობა იწვევს შუქის გამორთვას ავტო მიქსერის რეჟიმში.

თუ ხელით რეჟიმი, PWM რეჟიმი და ავტო მიქსერის რეჟიმი არ არის გააქტიურებული, წითელი, მწვანე და ლურჯი SPI ბრძანებები მიედინება 12, 13 და 14 ქინძისთავებში, რომლებიც კონფიგურირებულია ამონაწერების სახით და უკავშირდება გარე RGB LED- ს.

DFF1, DFF2 და DFF3 გამოიყენება 3 ბიტიანი ორობითი მრიცხველის შესაქმნელად. მრიცხველის მნიშვნელობა იზრდება CNT7 იმპულსებით, რომლებიც გადის P14– ში ავტო მიქსერის რეჟიმში, ან სიგნალებიდან, რომლებიც მოდის ფერი ღილაკიდან (PIN3) ხელით რეჟიმში.

ნაბიჯი 4: Android პროგრამა

Android აპლიკაცია
Android აპლიკაცია
Android აპლიკაცია
Android აპლიკაცია
Android აპლიკაცია
Android აპლიკაცია
Android აპლიკაცია
Android აპლიკაცია

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

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

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

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

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

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

პირველი სამი ბიტი, B0, B1 და B2, შეინარჩუნებს RGB LED- ების მდგომარეობას უშუალო კონტროლის რეჟიმში წინასწარ განსაზღვრული ფერების ღილაკებით. ამრიგად, რომელიმე მათგანზე დაჭერისას იგზავნება ღილაკის შესაბამისი მნიშვნელობა, როგორც ეს მოცემულია ცხრილში 2.

B3 და B4 ბიტები ინახავს '+' და '-' ბრძანებებს, რომლებიც პასუხისმგებელნი არიან პულსის სიგანის გაზრდასა და შემცირებაზე. ღილაკზე დაჭერისას ბიტის მნიშვნელობა იქნება 1, ხოლო როდესაც ღილაკი გათავისუფლდება ბიტის მნიშვნელობა იქნება 0.

B5 და B6 ბიტები პასუხისმგებელნი არიან იმ პინის (ფერის) არჩევაზე, რომელსაც გაივლის PWM სიგნალი: ამ ბიტების ფერის აღნიშვნები ნაჩვენებია ცხრილში 3. ბოლო ბიტი, B7, პასუხისმგებელია ავტომიქსერის გააქტიურებაზე.

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

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

ქვემოთ მოყვანილი სურათი 8 გვიჩვენებს ზედა დონის მიკროსქემის დიაგრამას.

ნაბიჯი 5: შედეგები

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

დასკვნა

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

გირჩევთ: