Სარჩევი:

Arduino/აპლიკაციის კონტროლირებადი სამუშაო მაგიდა: 6 ნაბიჯი (სურათებით)
Arduino/აპლიკაციის კონტროლირებადი სამუშაო მაგიდა: 6 ნაბიჯი (სურათებით)

ვიდეო: Arduino/აპლიკაციის კონტროლირებადი სამუშაო მაგიდა: 6 ნაბიჯი (სურათებით)

ვიდეო: Arduino/აპლიკაციის კონტროლირებადი სამუშაო მაგიდა: 6 ნაბიჯი (სურათებით)
ვიდეო: ახალი LOPUS ELECTRONICS ის ნაკრები "Snake" #education #stem #arduino #lopuselectronics 2024, ივლისი
Anonim
Image
Image
Arduino/აპლიკაციით კონტროლირებადი მაგიდის შუქი
Arduino/აპლიკაციით კონტროლირებადი მაგიდის შუქი
Arduino/აპლიკაციით კონტროლირებადი მაგიდის შუქი
Arduino/აპლიკაციით კონტროლირებადი მაგიდის შუქი

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

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

გამოსახულება
გამოსახულება

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

ვინაიდან ეს არის ჩემი პირველი Arduino/App პროექტი, ვვარაუდობ, რომ ნამდვილად იქნება კოდის გაკეთების უკეთესი გზები, ასე რომ იოლად იმოქმედე ჩემზე! ის მუქდება, ასე რომ ბედნიერი ვარ. თუ თქვენ გაქვთ რაიმე შემოთავაზება გაუმჯობესების შესახებ და ა.

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

მე ჩავაბარე ეს Raspberry Pi და FULL SPECTRUM LASER კონკურსებში, ასე რომ, თუ ფიქრობთ, რომ მისი ღირსეული კენჭი მასიურად იქნება დაფასებული !!

Რა გჭირდება….

ელექტრული. კომპონენტები:

  • არდუინო მიკრო
  • 12 ხაზოვანი რადიომეტრიული დარბაზის ეფექტის სენსორები
  • DC ჯეკი
  • 12V კვების ბლოკი
  • 2x 1W მაგარი თეთრი LED (6000K)
  • 2x 1W თბილი თეთრი LED (2800K)
  • 4x Adafruit RGB ნეოპიქსელი
  • Sparkfun Picobuck 350mA მუდმივი დრაივერი
  • HC06 Bluetooth მოდული
  • პროტოტიპის დაფა
  • ტერმინალური ბლოკები
  • მავთულები

მასალები:

  • ყალიბის დამზადების მასალები (მუყაო ან სილიკონი და ა.
  • პოლიურეთანის ჩამოსხმის ფისი
  • პლაივუდი

სახარჯო მასალები:

  • Solder
  • Შესასხურებელი საღებავი
  • სანდლის ქაღალდი
  • შერევით ჭიქები/ამრევი

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

  • გასაყიდი რკინა
  • წებო იარაღი
  • ფანქრები/ხრახნები/დანა და ა.
  • ლაზერული საჭრელი

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

  • არდუინო
  • MIT აპლიკაციის გამომგონებელი (უფასო ვებ დაფუძნებული)
  • Photoshop ან რამე აპლიკაციის გრაფიკის შესაქმნელად

ნაბიჯი 1: დარბაზის ეფექტის სენსორები

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

სხვადასხვა სახის ელექტრონული კომპონენტების კვლევის შემდეგ, ვიპოვე ხაზოვანი რადიომეტრიული დარბაზის ეფექტის სენსორები. ეს არის ძირითადად სენსორი, რომლის გამომუშავებაზე გავლენას ახდენს მაგნიტური ველები. ჩვეულებრივ სენსორების გამომავალი არის შეყვანის ძაბვის ნახევარი. როდესაც მაგნიტი მიუახლოვდება მას, გამომავალი ან გაიზრდება შეყვანის ძაბვამდე, ან დაეცემა 0V- მდე (გაჯერების ზღვარი) იმისდა მიხედვით, იქნება ეს მაგნიტის ჩრდილოეთ თუ სამხრეთ პოლუსზე.

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

გამოსახულება
გამოსახულება

ნაბიჯი 2: ელექტრონიკის აპარატურა

ელექტრონიკის აპარატურა
ელექტრონიკის აპარატურა
ელექტრონიკის აპარატურა
ელექტრონიკის აპარატურა
ელექტრონიკის აპარატურა
ელექტრონიკის აპარატურა

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

საკონტროლო რკალი იყენებს 11 დარბაზის სენსორს, კიდევ ერთი გამოიყენება სინათლის გამორთვისთვის. ისინი დაკავშირებულია ქინძისთავებთან A0-> A5 და 4, 6, 8, 9, 10, 12. მათ აქვთ საერთო 5 ვ და სახმელეთო სარკინიგზო/საყრდენი.

LED- ები, რომლებიც მე გამოვიყენე არის 1W და მოითხოვს მუდმივ დრაივერს. Sparkfun PicoBuck გამოიყენეს, რადგან ის აწვდის მუდმივ 350mA– ს 3 გამომავალ არხზე. 12V მიწოდება დაკავშირებულია დრაივერების Vin ქინძისთავებთან. მძღოლს აქვს შეყვანის ქინძისთავები, რომ გააკონტროლოს PWM გამომავალი, ეს დაკავშირებული იყო Arduino– ს 3 და 5 პინებთან.

შემდეგ Bluetooth მოდული დაკავშირებული იყო. Bluetooth Rx-> Arduino Tx, Tx-> Rx და 5v. ადგილზე.

გამოსახულება
გამოსახულება

LED- ები დამონტაჟდა ცალკეულ დაფაზე. ორი ცივი თეთრი LED არის დაკავშირებული სერიაში, ისევე როგორც თბილი პირობა. ეს დაკავშირებულია დრაივერის 1 და 2 გამომყვანებთან. RGB LED არის Adafruit Neopixels; ეს არის ჯაჭვური მოდულები, რომლითაც შეგიძლიათ აკონტროლოთ ფერი და სიკაშკაშე ინდივიდუალურად ერთი არდუინოს პინიდან. ეს აკავშირებს pin 11 და 5V/ადგილზე ქინძისთავები.

ნაბიჯი 3: აპლიკაციის გამომგონებელი

აპლიკაციის გამომგონებელი
აპლიკაციის გამომგონებელი
აპლიკაციის გამომგონებელი
აპლიკაციის გამომგონებელი
აპლიკაციის გამომგონებელი
აპლიკაციის გამომგონებელი

აპლიკაციის შესაქმნელად მე გამოვიყენე MIT აპლიკაციის გამომგონებელი, მისი სწავლა/გამოყენება საკმაოდ უფასოა. მე პირველად უნდა შევქმნა აპლიკაციის ეკრანები/გრაფიკა - ეს შეიძლება გაკეთდეს Photoshop– ში და ა.შ. ეს აადვილებს App Inventor– ს, თუ თქვენ გაქვთ ყველა კომპონენტი, რომელიც ქმნის ეკრანებს, როგორც ცალკეულ სურათებს/ფაილებს.

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

"დიზაინერის" ჩანართის გამოყენებით შევქმენი პროგრამის ეკრანი. ერთი საკითხი, რაც აღმოვაჩინე არის ის, რომ bluetooth კომპონენტი არ მუშაობს მრავალ ეკრანზე, ასე რომ "მისასალმებელი" ეკრანის შემდეგ ყველა დანარჩენი (კავშირი, RGB, ფერის ტემპერატურა, სიგნალიზაცია) ყველა იქმნება იმავე ეკრანზე - ეფექტურად ვფარავ ფენებს /გამორთული

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

ვიზუალის დაყენების შემდეგ დროა გადავიდეთ "ბლოკების" ჩანართზე და დავწეროთ კოდი. მოკლედ აღვწერ, მაგრამ ალბათ უფრო ადვილია, თუ ჩემი ფაილი შეიტანთ App Inventor– ში და ითამაშეთ თქვენს გარშემო…

ეს პირველი ბლოკები არის კავშირის ეკრანებისთვის. იმისათვის, რომ აპლიკაციამ სცადოს Arduinos bluetooth მოდულთან ავტომატურად დაკავშირება, მე ვქმნი და ვაყენებ ცვლადს ჩემი HC06 მისამართისთვის. მე ვიყენებ ტაიმერს ფონის სურათის შესაცვლელად, სანამ ის აკავშირებს. თუ კავშირი წარმატებულია, ის იტვირთება ფერადი ტემპერატურის ეკრანზე. თუ Bluetooth ვერ ხერხდება ავტომატურად დაკავშირებას, თქვენ უნდა დააჭიროთ ღილაკს "დაკავშირება მოწყობილობასთან". ეს გამოჩნდება ყველა bluetooth მოწყობილობის სია, რომელსაც თქვენი ტელეფონი ხედავს. ბრძანება "bluetoothclient1.connect" იყენებს მოწყობილობის მისამართს, რომელსაც თქვენ ირჩევთ ამ სიიდან დასაკავშირებლად.

გამოსახულება
გამოსახულება
გამოსახულება
გამოსახულება
გამოსახულება
გამოსახულება

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

სიმძლავრის და სიკაშკაშის კონტროლი ნაწილდება RGB და ფერადი ტემპერატურის ეკრანებს შორის. იმისათვის, რომ არდუინომ იცოდეს რომელი LED- ები აკონტროლოს, მე უნდა ვუთხრა, რომელი ეკრანია ჩატვირთული. ტექსტის სტრიქონი ფორმატში (ეკრანი)? იგზავნება თქვენი ტელეფონების bluetooth ბრძანების გამოყენებით BluetoothClient1. SendText.

გამოსახულება
გამოსახულება

ეს ბლოკი აგზავნის სტრიქონს (Power)? როდესაც დენის ღილაკს შეეხებით.

გამოსახულება
გამოსახულება

ეს ბლოკები აკონტროლებენ ფერის ტემპერატურის რეგულირებას. როდესაც ტილოს შეეხებით, თქვენი შეხების წერტილის Y კოორდინატი გამოიყენება ცვლადის 'გრილი' დასაყენებლად. Y მნიშვნელობა განპირობებულია ტილოს პიქსელის ზომით, ამიტომ ჩემს შემთხვევაში მნიშვნელობა 0-დან 450-მდეა. მე ვიყენებ მულტიპლიკატორს, რომ გადავიყვანო ის გამოსაყენებელ PWM მნიშვნელობად (0-255). შემდეგ მე ვგზავნი სტრიქონს ამ მნიშვნელობით და იდენტიფიკატორს სახით (Tempvalue) ?.

გამოსახულება
გამოსახულება

მსგავსი ბლოკები, როგორც ზემოთ, მაგრამ სიკაშკაშის კონტროლისთვის. ამჯერად X კოორდინატის და სხვადასხვა მულტიპლიკატორების გამოყენებით ცვლადი 'Bright' დააყენეთ 10 -დან 100 -მდე მნიშვნელობამდე.

გამოსახულება
გამოსახულება

ეს ბლოკები განკუთვნილია RGB კონტროლისთვის. არსებობს ბრძანება სახელწოდებით "GetPixelColor", რომლის საშუალებითაც შეგიძლიათ მიიღოთ RGB პიქსელის მნიშვნელობა, რომელსაც თქვენი თითი ეხება. ის გამოაქვს მნიშვნელობა დამატებით 255 -ით ბოლოს რატომღაც, ამიტომ მე ცოტათი ვმუშაობ იმისათვის, რომ მივიღო მნიშვნელობა ფორმატში (RGBredvalue.greenvalue.bluevalue.)? ისევ ეს შემდეგ იგზავნება არდუინოში, მაგრამ RGB როგორც იდენტიფიკატორი სტრიქონში.

გამოსახულება
გამოსახულება

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

გამოსახულება
გამოსახულება
გამოსახულება
გამოსახულება

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

გამოსახულება
გამოსახულება
გამოსახულება
გამოსახულება

მომდევნო ეტაპზე მე გავაანალიზებ როგორ კითხულობს და იყენებს სტრიქონებს არდუინო…

ნაბიჯი 4: Arduino კოდი

რაც შეეხება პროგრამის კოდს, ამას მოკლედ შევეხები….

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

გამოსახულება
გამოსახულება

ნეოპიქსელებისთვის საჭიროა ბიბლიოთეკა, რაც აქ არის განსაზღვრული.

გამოსახულება
გამოსახულება
გამოსახულება
გამოსახულება

სიცარიელის დაყენება იწყებს სერიალებს, მიკრო Rx/Tx ქინძისთავებისთვის (bluetooth) გამოიყენეთ Serial1.. შემდეგ ქინძისთავები მითითებულია, რომ იყოს შესასვლელი ან გამოსავალი და LED- ის გამორთული.

გამოსახულება
გამოსახულება

ახლა ეს არის მთავარი მარყუჟი …

ეს პირველი განყოფილება ამოწმებს არის თუ არა მიღებული მონაცემები აპლიკაციიდან. Serial1.available () კითხულობს სერიალს და იღებს სტრიქონში ბაიტების რაოდენობას. თუ ეს> 0 მე ვიცი შემოსული მონაცემები.

თუ გახსოვთ, ყველა სტრიქონი, რომელსაც მე ვგზავნი აპლიკაციიდან, მთავრდება კითხვის ნიშნით … ანუ (ნათელი 100)?

მე ვიყენებ ფუნქციას.readStringUntil კითხულობს სერიულ მონაცემებს კითხვის ნიშნამდე (Bright100) და ვაყენებ ცვლადს BTstring. მე ვამოწმებ მთავრდება თუ არა BTstring a ')', რათა დავრწმუნდე, რომ მიიღება სრული ბრძანებები. თუ ისინი არიან, მაშინ BluetoothProgram მარყუჟს ეძახიან … ეს აღწერილია ქვემოთ..

გამოსახულება
გამოსახულება

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

გამოსახულება
გამოსახულება

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

გამოსახულება
გამოსახულება

პაკის კოდი ახლა.. ჯერ სენსორების წაკითხვაა საჭირო.

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

გამოსახულება
გამოსახულება
გამოსახულება
გამოსახულება

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

გამოსახულება
გამოსახულება
გამოსახულება
გამოსახულება

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

გამოსახულება
გამოსახულება

ბოლო ნაწილი ამ ძირითად მარყუჟში ამოწმებს არის თუ არა პუკი მოთავსებული ლოდინის დოკზე - არის თუ არა სენსორი 12 კითხულობს მნიშვნელობას ტრიგერის წერტილის ზემოთ/ქვემოთ. თუ ასეა, შუქდება LED უკან …

გამოსახულება
გამოსახულება

Bluetooth მარყუჟი:

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

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

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

შენიშვნა ყოველი მონაკვეთის ბოლოს მე ვაყენებ BTinControl ცვლადს true და ვასუფთავებ BTstring მნიშვნელობას.

გამოსახულება
გამოსახულება
გამოსახულება
გამოსახულება

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

გამოსახულება
გამოსახულება
გამოსახულება
გამოსახულება

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

მე ახლა უნდა გამოვყო სიკაშკაშის ფაქტობრივი სიკაშკაშის მნიშვნელობა. აპლიკაციიდან გაგზავნილი სტრიქონის ფორმატი არის (Brightvalue), ამიტომ მე ვიცი, რომ სიკაშკაშის მნიშვნელობა იქნება 't' და ') შორის. 'T' - ის პოზიცია უცვლელი დარჩება, ის ყოველთვის იქნება მე -7 სიმბოლო სტრიქონში. მაგრამ რადგან სიკაშკაშის მნიშვნელობა შეიძლება იყოს 10 -დან 100 -მდე, '' 'პოზიცია შეიცვლება. მე ვიყენებ.indexOf ბრძანებას იმის დასადგენად, თუ სად არის ')', რა სიმბოლოა და შემიძლია გამოვიყენო.substring ბრძანება, რათა წავიკითხო სტრიქონი მე -7 სიმბოლოსა და ')' სიმბოლოს პოზიციას შორის. ეს დამტოვებს მხოლოდ სიკაშკაშის მნიშვნელობას, რომელიც შემიძლია გამოვიყენო RGB ან თეთრი LED- ების შესაცვლელად ეკრანის მიხედვით.

გამოსახულება
გამოსახულება

ფერის ტემპერატურის მორგება მსგავსი პროცესია ზემოთ, მაგრამ მნიშვნელობა ამჯერად იქნება 'p' და ')' შორის…

გამოსახულება
გამოსახულება

RGB კორექტირებისთვის ჩვენ გვაქვს სამი მნიშვნელობა ამოღებული სტრიქონიდან, მაგრამ ეს ისევ მსგავსი პროცესია. აპლიკაციიდან ვიღებთ სტრიქონებს სახით (RGBvalue.value.value)

ასე რომ, მე ვიცი, რომ წითელი მნიშვნელობა იქნება 'B' - სა და პირველ სრულ წერტილს შორის. მწვანე მნიშვნელობა არის 1/2 სრულ გაჩერებას შორის და ლურჯი მნიშვნელობა მე –2 სრულ გაჩერებასა და ')' - ს შორის.

მას შემდეგ რაც მივიღებთ მნიშვნელობებს, ნეოპიქსელები დაყენებულია ახალ ფერში…

გამოსახულება
გამოსახულება

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

გამოსახულება
გამოსახულება

პაკის კონტროლი:

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

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

სენსორების მნიშვნელობები იკითხება. თუ რომელიმე მათგანი დაბალია ტრიგერის დაბალი მნიშვნელობისას, ჩვენ ვარეგულირებთ ფერის ტემპერატურას. რკალის არეალში არის 11 სენსორი, რომლებიც, თავის მხრივ, ჩნდება გამომწვევი წერტილის ქვემოთ, როდესაც პაკი გადაადგილდება მათზე. თითოეულ სენსორს აქვს PWM მნიშვნელობა მაგარი და თბილი LED- ების მიმართ, დაწყებული სენსორი 1 – ით 100% თბილი, 0% გრილი და მე –11 - მდე 0% თბილი, 100% მაგარი.

გამოსახულება
გამოსახულება
გამოსახულება
გამოსახულება
გამოსახულება
გამოსახულება

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

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

გამოსახულება
გამოსახულება
გამოსახულება
გამოსახულება

ნაბიჯი 5: საცხოვრებელი

საცხოვრებელი
საცხოვრებელი
საცხოვრებელი
საცხოვრებელი
საცხოვრებელი
საცხოვრებელი
  1. დავიწყე მუყაოსგან ყალიბის დამზადება საცხოვრებლის ქვედა ნაწილისთვის. საკონტროლო არეალის ჩაღრმავების შესაქმნელად მე მქონდა პლაივუდის ლაზერის ნაჭერი რკალის ფორმაში და გამოვიყენე 5p მონეტა 'ლოდინის' დოკისთვის. ისინი მუყაოს ყალიბზე იყო მიმაგრებული და ყურადღებას აქცევდნენ მათ სწორ პოზიციაში მოხვედრას, რაც ჰოლის დარბაზის ეფექტის სენსორებს შეესაბამებოდა.
  2. შემდეგი იყო პოლიურეთანის ფისის შერევა. საგნებს, რომლებსაც ვიყენებ, აქვს მარტივი 1: 1 თანაფარდობა და კურნავს დაახლოებით 20 წუთის განმავლობაში, ასე რომ თქვენ უნდა იმუშაოთ საკმაოდ სწრაფად!
  3. თავდაპირველი ჩამოსხმა იყო ფორმის ბოლოში შევსება. ამ ნაკრების შემდეგ მე დავამატე მუყაოს შიდა კედელი, რათა მომცეს საშუალება დავასხათ გვერდითი კედლები.
  4. ზედა ნაწილის შესაქმნელად, რომლებშიც LED- ები იჯდეს, მე მოვიჭერი და წებოვანა პლასტმასის მილი/ჭიქა კუთხეში. და ისევ ფისოვანი გადაისხა და დასაშვებია.
  5. ახლა საცხოვრებელი უკვე მზადაა, მე მჭირდება რამდენიმე ხვრელის ამოღება და კარგი ქვიშის დადება.
  6. პრაიმერი გამოიყენეს და შემდეგ შეასხურეს საღებავის საბოლოო ზედა ფენა.

ნაბიჯი 6: შეკრება/დასკვნა

შეკრება/დასკვნა
შეკრება/დასკვნა
შეკრება/დასკვნა
შეკრება/დასკვნა
შეკრება/დასკვნა
შეკრება/დასკვნა
შეკრება/დასკვნა
შეკრება/დასკვნა
  1. DC ჯეკის სლოტი ამოღებულია კორპუსიდან. შემდეგ ჯეკი არის შეკრული.
  2. LED დაფა შეიძლება დაიშალოს ზედა ნაწილში, ხოლო მავთულები იკვებება ქვედა ნაწილში.
  3. LED და DC ბუდედან მავთულები შემდეგ ხრახნიან სწორ ტერმინალურ ბლოკებში.
  4. მთავარი დაფა შემდგომში ხრახნიან საცხოვრებელში
  5. პლაივუდის ნაჭერი იჭრება ქვემოთ, რათა დაფაროს კორპუსის ქვედა ნაწილი.
  6. საბოლოო ჯამში არის "პაკის" ერთმანეთთან შეხება, დარწმუნდით, რომ მაგნიტის პოლუსები ორიენტირებული იქნება სწორი "სიკაშკაშის" ან "ფერის ტემპერატურის" ბოლო ქუდით.

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

გაიხარე კითხვისთვის!

გირჩევთ: