Სარჩევი:

სინათლისა და ფერის გაზომვები Pimoroni Enviro– სთან ერთად: ბიტი მიკროსთვის: ბიტი: 5 ნაბიჯი
სინათლისა და ფერის გაზომვები Pimoroni Enviro– სთან ერთად: ბიტი მიკროსთვის: ბიტი: 5 ნაბიჯი

ვიდეო: სინათლისა და ფერის გაზომვები Pimoroni Enviro– სთან ერთად: ბიტი მიკროსთვის: ბიტი: 5 ნაბიჯი

ვიდეო: სინათლისა და ფერის გაზომვები Pimoroni Enviro– სთან ერთად: ბიტი მიკროსთვის: ბიტი: 5 ნაბიჯი
ვიდეო: ნიადაგის მჟავე და ტუტე რეაქციის გაზომვა / Измерение кислотной почвы 2024, ივლისი
Anonim
სინათლისა და ფერის გაზომვები Pimoroni Enviro– სთან ერთად: ბიტი მიკროზე: ბიტი
სინათლისა და ფერის გაზომვები Pimoroni Enviro– სთან ერთად: ბიტი მიკროზე: ბიტი
სინათლისა და ფერის გაზომვები Pimoroni Enviro– სთან ერთად: ბიტი მიკროზე: ბიტი
სინათლისა და ფერის გაზომვები Pimoroni Enviro– სთან ერთად: ბიტი მიკროზე: ბიტი
სინათლისა და ფერის გაზომვები Pimoroni Enviro– სთან ერთად: ბიტი მიკროზე: ბიტი
სინათლისა და ფერის გაზომვები Pimoroni Enviro– სთან ერთად: ბიტი მიკროზე: ბიტი

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

პიმორონმა ახლახანს გამოუშვა გარემო: ბიტი, მიკრო ბიტის დანამატი, რომელსაც გააჩნია MEMS მიკროფონი ხმის დონის გაზომვისთვის, BME280 ტემპერატურის/ტენიანობის/ჰაერის წნევის სენსორი და TCS3475 სინათლისა და ფერის სენსორი (RGBC). გარდა ამისა, ორი სენსორია მოთავსებული ფერის სენსორის გვერდებზე, რაც საშუალებას გაძლევთ გაზომოთ საგნების ფერი ასახული შუქით. ამ გაზომვების შესასრულებლად ინსტრუმენტის შექმნა არასოდეს ყოფილა ადვილი.

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

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

ნაბიჯი 1: გამოყენებული მასალები

მიკრო: ბიტი, 13 GBP Pimoroni– ში.

Pimoroni Enviro: ბიტი, 20 GBP Pimoroni– ში.

პიმორონის სიმძლავრე: ბიტი, 6 GBP პიომორონში. თქვენ ასევე შეგიძლიათ გამოიყენოთ ბატარეის პაკეტები ან LiPo მიკრო: ბიტისთვის

Rosco Cinegel ფერის ფილტრის ნიმუშის ბლოკი. ჩემი ავიღე მოდულორიდან, ბერლინიდან.

IKEA- ს ფერადი პლასტმასის ჭიქები. IKEA, ბერლინი.

ველური ყვავილები. მდელო პოტსდამ-გოლმში.

ნაბიჯი 2: MakeCode/JavaScript სკრიპტი

პიმორონმა შეიმუშავა ბიბლიოთეკა Enviro– სთვის: bit, როგორც MakeCode/JavaScript კოდირების გარემოსთვის, ასევე MicroPython– ისთვის. მე აქ გამოვიყენე MakeCode, რადგან სკრიპტების ატვირთვა შესაძლებელია პირდაპირ მიკრო: ბიტში და იძლევა ბლოკის კოდირების საშუალებას.

სკრიპტი კითხულობს წითელი, მწვანე და ლურჯი (RGB) და გამჭვირვალე (C) არხების მნიშვნელობებს. პირველი მოცემულია მნიშვნელობებში 0 -დან 255 -მდე, მეორე კი მთელ დიაპაზონში 0 -დან 61000 -მდე.

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

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

თავდაპირველად, ოთხივე არხის მნიშვნელობებია აღებული. 5x5 LED მატრიცაზე შედეგების ჩვენების მიზნით, გაზომილი მნიშვნელობები გამოიყენება შედეგების განთავსებისთვის 5 (RGB) ან 10 (C) ყუთებში, რომლებიც წარმოდგენილია ერთი LED- ით ერთ (R, G, B) ან ორი (C) რიგი.

RGB– ს შემთხვევაში, მასშტაბირება არის ხაზოვანი და თითოეული ურნის ინტერვალის ზომაა 51 ერთეული სიგანე. C– ს შემთხვევაში, სკალირება არის ლოგარითმული 10 საფეხურზე მეტი (log3, ასე რომ, ყოველი ნაბიჯი არის წინა 3 – ჯერ). ეს საშუალებას მოგცემთ აჩვენოთ ძალიან მუქი და ძალიან ნათელი პირობები ერთნაირად.

ღილაკზე A დაჭერით აჩვენებს R, G და B მნიშვნელობებს რიცხვებში, დაჭერით B C მნიშვნელობას. A+B ააქტიურებს LED- ებს და B დახურავს მათ.

მოდით bR = 0 // ურნები

ნება bG = 0 ნება bB = 0 ნება bS = 0 ნება bC = 0 ნება bCx = 0 ნება S = 0 // გაზომილი მნიშვნელობები ნება C = 0 ნება B = 0 ნება G = 0 ნება R = 0 ძირითადი. სამუდამოდ (() => {if (input.buttonIsPressed (Button. AB)) {envirobit.setLEDs (envirobit. OnOff. On)} სხვა შემთხვევაში თუ (input.buttonIsPressed (Button. A)) {basic.showString ("R:" + R + "G:" + G + "B:" + B)} სხვაგან თუ (input.buttonIsPressed (Button. B)) {basic.showString ("C:" + C) envirobit.setLEDs (envirobit. OnOff. Off)}} else {basic.pause (100) R = envirobit.getRed () G = envirobit.getGreen () B = envirobit.getBlue () C = envirobit.getLight () bC = 5 bCx = 5 თუ (R> = 204) { // binning, max 255 bR = 4} სხვა თუ (R> = 153) {bR = 3} სხვა შემთხვევაში (R> = 102) {bR = 2} სხვა შემთხვევაში თუ (R> = 51) {bR = 1} სხვა {bR = 0} თუ (G> = 204) {bG = 4} სხვაგან თუ (G> = 153) {bG = 3} სხვაგან თუ (G> = 102) {bG = 2} სხვაგან თუ (G> = 51) {bG = 1} სხვა {bG = 0} თუ (B> = 204) {bB = 4} სხვა შემთხვევაში თუ (B> = 153) {bB = 3} სხვაგან თუ (B> = 102) {bB = 2} else if (B> = 51) {bB = 1} სხვა {bB = 0} თუ (C> = 60000) {// გაჯერება bCx = 4} სხვა თუ (C> = 20000) {bCx = 3} სხვა შემთხვევაში თუ (C> = 6600) {bCx = 2} სხვა შემთხვევაში თუ (C> = 2200) {bCx = 1} სხვა თუ (C> = 729) {bCx = 0} სხვა თუ (C> = 243) {bC = 4} სხვა შემთხვევაში თუ (C> = 81) {bC = 3} სხვა შემთხვევაში თუ (C> = 27) {bC = 2} else if (C> = 9) {bC = 1} else {bC = 0} // ჩაწერეთ led basic.clearScreen () if (bCx <5) {led.plot (1, bCx)} სხვა {led.plot (0, ძვ.)} Led.plot (2, bR) led.plot (3, bG) led.plot (4, bB)}})

ნაბიჯი 3: RGB გაზომვების მიღება: გადაცემული სინათლის რეჟიმი

RGB გაზომვების მიღება: გადაცემული სინათლის რეჟიმი
RGB გაზომვების მიღება: გადაცემული სინათლის რეჟიმი
RGB გაზომვების მიღება: გადაცემული სინათლის რეჟიმი
RGB გაზომვების მიღება: გადაცემული სინათლის რეჟიმი
RGB გაზომვების მიღება: გადაცემული სინათლის რეჟიმი
RGB გაზომვების მიღება: გადაცემული სინათლის რეჟიმი
RGB გაზომვების მიღება: გადაცემული სინათლის რეჟიმი
RGB გაზომვების მიღება: გადაცემული სინათლის რეჟიმი

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

RGB მნიშვნელობები ნაჩვენებია მიკროში მე –3 – მე –5 რიგებში: ბიტი 5x5 LED მატრიცა, ზედა LED- ები დაბალია, ქვედა LED– ები მაღალი მნიშვნელობები.

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

რეალური მნიშვნელობების წასაკითხად, უბრალოდ დააჭირეთ ღილაკს A.

ნაბიჯი 4: ასახული სინათლის RGB და სიკაშკაშის გაზომვები

ასახული სინათლის RGB და სიკაშკაშის გაზომვები
ასახული სინათლის RGB და სიკაშკაშის გაზომვები
ასახული სინათლის RGB და სიკაშკაშის გაზომვები
ასახული სინათლის RGB და სიკაშკაშის გაზომვები
ასახული სინათლის RGB და სიკაშკაშის გაზომვები
ასახული სინათლის RGB და სიკაშკაშის გაზომვები

ასახული სინათლის გაზომვისთვის მე ჩავრთე LED- ები (ღილაკი [A+B]) და სენსორის წინ მოვათავსე IKEA- ს ბავშვთა ჭიქების ნათელი ფერის ნაჭრები. როგორც სურათებიდან ჩანს, RGB მნიშვნელობები იცვლება როგორც მოსალოდნელი იყო.

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

ნაბიჯი 5: ასახული სინათლის გაზომვები: ყვავილები

ასახული სინათლის გაზომვები: ყვავილები
ასახული სინათლის გაზომვები: ყვავილები
ასახული სინათლის გაზომვები: ყვავილები
ასახული სინათლის გაზომვები: ყვავილები
ასახული სინათლის გაზომვები: ყვავილები
ასახული სინათლის გაზომვები: ყვავილები
ასახული სინათლის გაზომვები: ყვავილები
ასახული სინათლის გაზომვები: ყვავილები

მე ავიღე ველური ყვავილები მინდვრიდან და შევეცადე მათზე შემეტანა ფერადი გაზომვები. ეს იყო ყაყაჩო, სიმინდის ყვავილი, ყავისფერი ნაჭუჭი, კედლის ქერქი და დილანდელონის ფოთოლი. RGB ღირებულებები იყო [R, G, B]:

  • არცერთი [92, 100, 105]
  • ყაყაჩო (წითელი) [208, 98, 99]
  • სიმინდის ყვავილი (ლურჯი) [93, 96, 138]
  • ყავისფერი კნუტი (იასამნისფერი) [122, 97, 133]
  • კედელი ჰარკვიდი (ყვითელი) [144, 109, 63]
  • dandelon ფოთოლი (მწვანე) [164, 144, 124]

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

გირჩევთ: