Агуулгын хүснэгт:

Capacitive Touch Mood/Ambilight: 8 алхам
Capacitive Touch Mood/Ambilight: 8 алхам

Видео: Capacitive Touch Mood/Ambilight: 8 алхам

Видео: Capacitive Touch Mood/Ambilight: 8 алхам
Видео: Very Easy! Capacitive touch Mood/Ambilight [Full Tutorial] 2024, Арваннэгдүгээр
Anonim
Capacitive Touch Mood/Ambilight
Capacitive Touch Mood/Ambilight

Энэхүү зааварчилгаа нь олон талт сэтгэл хөдлөлийг бий болгох туршлагаа хурдан бичих явдал юм. Цахим хэлхээний талаар зарим анхан шатны мэдлэгтэй болно. Төсөл хараахан дуусаагүй байгаа тул зарим нэмэлт функц, тохируулга хийх шаардлагатай боловч энэ нь аль хэдийн ажиллагаатай байна. Хэрэв та энэ зааварчилгааг сонирхож байгаа бол би үүнийг шинэчлэх болно. Системийн гол цөм нь Arduino юм. Энэ нь USB эсвэл Capacitive мэдрэгчтэй оролт бүрийн оролтыг боловсруулж, RGB гэрлийг хянах болно. Энэхүү зааварчилгааг гурван хэсэгт хуваадаг:- Мэдрэмж багатай мэдрэгчтэй хэсэг нь үл үзэгдэх оролтын товчлууруудыг хамардаг- Сэтгэлийн гэрэлтүүлгийн хэсэг нь гэрэлтүүлэгчийн хяналтыг хамардаг- Ambilight хэсэг нь цуваа портын оролтыг хамардаг бөгөөд компьютерийн програмаар үүсгэсэн гэрлийг хянах RGB утгыг боловсруулдаг.. Хариуцлага хүлээхээс татгалзах: Электроникс нь аюултай байж болзошгүй, учирсан хохирлыг та өөрөө хариуцна. Зарим кодыг форумаас цуглуулдаг бөгөөд эзнийхээ нэрийг агуулаагүй байж магадгүй. Надад мэдэгдээрэй, би таны нэрийг нэмж оруулах болно.

Алхам 1: Барааны жагсаалт

Энэхүү зааварчилгаанд дараах бүрэлдэхүүн хэсгүүд шаардлагатай болно:- Arduino+USB кабель- Breadboard- Компьютерийн тэжээлийн хангамж- 3 дахин RGB тууз, dealextreme.com хаягийг үзнэ үү. /darlington-transistor-to-220/dp/9804005- Олон тооны эсэргүүцэл (6 * 10 килоОм, 3 * 2 мегаОм)-Маш олон утас. - Багажны багтаамж- Газрын хавтангийн металл цагираг- Зэс утас эсвэл хавтан- Үүнийг бүтээх зүйл (номын тавиур шиг:)

Алхам 2: Capacitive Touch - Үндсэн ойлголт ба хэлхээ

Capacitive Touch - Үндсэн ойлголт ба хэлхээ
Capacitive Touch - Үндсэн ойлголт ба хэлхээ
Capacitive Touch - Үндсэн ойлголт ба хэлхээ
Capacitive Touch - Үндсэн ойлголт ба хэлхээ
Capacitive Touch - Үндсэн ойлголт ба хэлхээ
Capacitive Touch - Үндсэн ойлголт ба хэлхээ

Би номын тавиураа будаж байсан болохоор тэдгээрийг бас "шинэчлэх" боломж надад байсан. Би сэтгэлийн гэрлийг үл үзэгдэгчээр удирдахыг хүссэн. Эхэндээ миний төлөвлөгөө бол үүнд зориулагдсан IC ашиглах (Atmel QT240 гэх мэт). Гэхдээ дараа нь би Arduino нь багтаамжийн мэдрэгчийг програм хангамжаар дуурайж болохыг тайлбарласан хуудсыг олж харав. Зураг дээр электрон хэлхээг олж болно, мэдрэгч нь спираль хэлбэртэй зэс утас юм (энгийн утгаар нь зөвхөн нэгийг харуулав). Мэдрэмжийг зүү бүрийн өмнө олсон резистороор хянадаг. Үнэмлэхүй эсвэл ойртох шаардлагатай эсэхээс хамааран 1 MegaOhm (үнэмлэхүй хүрэлт) -ээс 40 MegaOhm (12-24 инчийн зайтай) хооронд хэлбэлзэж болно (би 2M Ом эсэргүүцэл ашиглаж дууссан). Мэдрэгч хүссэн шиг ажиллах хүртэл утгыг туршиж үзээрэй. Спираль бүрийн арын хэсэгт хэлхээний газардуулгатай холбогдсон зарим дамжуулагч гадаргууг (дамжуулагчгүй нимгэн хэсгээр тусгаарласан) суурилуулах нь зүйтэй. Ийм байдлаар мэдрэгч нь илүү тогтвортой болж, дуу чимээнд бага нөлөө үзүүлэх болно. Дараа нь хэлхээг хялбархан холбохын тулд залгуур суурилуулсан болно. Дүүргэгч нь бүх зүйлийг нуухад хэрэглэгддэг бөгөөд үүний дараа тэдгээрийг будахад бэлэн болно.

Алхам 3: Capacitive Touch - Код ба туршилт

Capacitive Touch - Код ба туршилт
Capacitive Touch - Код ба туршилт

Дараахь эх кодыг Arduino дээр дибаг хийхэд ашиглаж болно, утгыг arduino цуваа дэлгэцээр шалгаарай. Зургаан утга бий болно. Эхнийх нь системийн гүйцэтгэлийн хэмжүүр юм. Хоёр дахь зургаа дахь нь зүү тус бүрийн мэдрэмтгий утга юм. Хуруугаа ойртуулах үед үнэ цэнэ өсөх ёстой. Үгүй бол муу холболт, хөндлөнгийн оролцоо байгаа эсэхийг шалгаарай. Мэдрэмжийг тодорхойлохын тулд резисторын утгыг өөрчилж болно. Хэрэв тодорхой логик сүлжээнд идэвхждэг if-then бүтцийг хэрэгжүүлснээр сэлгэн залгах боломжтой болно. Үүнийг arduino-ийн эцсийн кодонд ашиглах болно. Дэлгэрэнгүй мэдээллийг уншихыг зөвлөж байна: https://www.arduino.cc/playground/Main/CapSense--- Arduino CapTouch дибаг хийх код ---#хүчингүй тохиргоог оруулна уу () {CapSense cs_2_3 = CapSense (2, 4); // 2 ба 4 -р зүү хоорондын 10M эсэргүүцэл, 4 -р зүү нь мэдрэгчийн зүү, утас, foilCapSense cs_2_4 = CapSense (2, 7) нэмнэ; // 2 ба 7 -р зүү хоорондын 10M эсэргүүцэл, 7 -р зүү нь мэдрэгчийн зүү, утас, foilCapSense cs_2_5 = CapSense (2, 8) нэмнэ; // 2 ба 8 -р зүү хоорондын 10M эсэргүүцэл, 8 -р зүү нь мэдрэгчийн зүү, утас, foilCapSense cs_2_6 = CapSense (2, 12); // 2 ба 12 -р зүү хоорондын 10M эсэргүүцэл, 12 -р зүү нь мэдрэгчийн зүү, утас, foilCapSense cs_2_7 = CapSense (2, 13); // 2 ба 13 -р зүү хоорондын 10M эсэргүүцэл, 13 -р зүү нь мэдрэгч зүү, утас нэмэх, foilvoid тохиргоо () {Serial.begin (9600);} void loop () {long start = millis (); урт нийт1 = cs_2_3.capSense (30); урт нийт2 = cs_2_4.capSense (30); урт нийт3 = cs_2_5.capSense (30); урт нийт4 = cs_2_6.capSense (30); урт нийт5 = cs_2_7.capSense (30); Serial.print (millis () - эхлэх); // гүйцэтгэлийг миллисекундээр шалгах Serial.print ("\ t"); // салхины хоорондох зайг дуудах таб тэмдэгт Serial.print (нийт1); // хэвлэх мэдрэгчийн гаралт 1 Serial.print ("\ t"); Цуваа.хэвлэх (нийт2); // хэвлэх мэдрэгчийн гаралт 2 Serial.print ("\ t"); Цуваа.хэвлэх (нийт 3); // хэвлэх мэдрэгчийн гаралт 3 Serial.print ("\ t"); Цуваа.хэвлэх (нийт 4); // хэвлэх мэдрэгчийн гаралт 4 Serial.print ("\ t"); Serial.println (нийт 5); // хэвлэх мэдрэгчийн гаралт 5 саатал (10); // өгөгдлийг цуваа портоор хязгаарлах дурын саатал} --- END ---

Алхам 4: Сэтгэлийн гэрэл - Үндсэн ойлголт ба хэлхээ

Сэтгэлийн гэрэл - Үндсэн ойлголт ба хэлхээ
Сэтгэлийн гэрэл - Үндсэн ойлголт ба хэлхээ
Сэтгэлийн гэрэл - Үндсэн ойлголт ба хэлхээ
Сэтгэлийн гэрэл - Үндсэн ойлголт ба хэлхээ
Сэтгэлийн гэрэл - Үндсэн ойлголт ба хэлхээ
Сэтгэлийн гэрэл - Үндсэн ойлголт ба хэлхээ

Одоо системийн гаралтын хэсгийг бүтээх цаг болжээ. Өнгө бүрийг хянахад arduino -ийн PWM тээглүүрийг ашиглах болно. ХОУХ нь импульсийн өргөний модуляцийг хэлдэг бөгөөд зүүг маш хурдан асааж, унтраахад ледүүд 0 -ээс 255 хүртэл бүдэгрэх болно. Одоогийн байдлаар систем нь нэг өнгө тутамд ганцхан сувагтай бөгөөд энэ нь бүх RGB туузыг нэг дор хянах бөгөөд 3 PWM зүү (өнгө бүрт нэг ширхэг) шаардлагатай гэсэн үг юм. Ирээдүйд би дөрвөн RGB тууз бүрийг хянах боломжтой байхыг хүсч байна. Энэ нь 4*3 = 12 PWM тээглүүр (магадгүй Arduino Mega байж магадгүй) гэсэн үг юм. Энэ нь (зургийг үзнэ үү) нь хэлхээний үндсэн дүрслэл юм (удахгүй илүү сайхан болно). Конденсатор мэдрэгчийг мөн оруулсан болно (ногоон хэсэг). Үндсэндээ тайлбарлах ёстой гурван бүрэлдэхүүн хэсэг байдаг:- FETЭнэ бол миний ярьж байсан өсгөгч юм. Энэ нь Хаалга, Эх сурвалж, Ус зайлуулах сувагтай. Энэ нь хаалган дээрх жижиг гүйдлийг (Arduino -той холбогдсон) сайжруулж, 12 вольтоор ажилладаг RGB зурвас руу орох замыг нээж өгдөг. Эх үүсвэр нь +12V, GND (Ground) дээр зайлуулах ёстой. Нарийвчилсан холболтыг авахын тулд FET -ийн техникийн үзүүлэлтүүдийг шалгана уу. RGB суваг бүр өөрийн FET -ийн өмнө байрлах ёстой. Энэ утгаараа энэ нь Arduino удирдлагатай унтраалга шиг ажиллаж байна.- RGB зурвас Энэ 12 вольтын RGB тууз нь нийтлэг анод (+) төрөл юм. Нийтлэг утсыг +12 В -т холбох ёстой бөгөөд гүйдэл нь тусдаа өнгөт суваг тус бүрээр дамждаг гэсэн үг юм. Туузан нь резистортой тул үүнд санаа зовох хэрэггүй болно! Бусад гурван нь FET -ийн зайлуулах хамгийн их гүйдлийг хязгаарлах болно. Эхний гурван резистор нь RGB туузанд байгаа бөгөөд би USB кабелийг RGB туузан дээр гагнасан тул тэдгээрийг хялбархан холбох боломжтой. Хуучин төвийн залгуурыг миний талхны тавцан дээр тавьдаг. Хэрэв та USB кабельгүйгээр ажиллахыг хүсвэл хуучин компьютерийн тэжээлийн эх үүсвэрийг шүүс, 12 Вт -ийн RGB тууз, эцэст нь хэлхээний 5 В хүчдэлийг ашиглана уу.

Алхам 5: Сэтгэлийн гэрэл - Код ба хяналт

Сэтгэлийн гэрэл нь багтаамжийн мэдрэгчээр хянагддаг. Одоогоор би зөвхөн өнгө өөрчлөх зориулалттай 2 & 3 мэдрэгчийг програмчилсан. Бусад мэдрэгчүүд одоогоор ажиллахгүй байна. Энд код байна: --- Arduino Mood Control Code ---#include const boolean invert = true; const long timeout = 10000; // Capacitive sensor declarationCapSense In1 = CapSense (2, 4); // 4 ба 2 -р зүү хоорондын 2M эсэргүүцэл, 2 -р зүү нь мэдрэгчийн зүү, утас, foilCapSense In2 = CapSense (2, 7); // 4 ба 6 -р зүү хоорондын 2M эсэргүүцэл, 6 -р зүү нь мэдрэгчийн зүү, утас, foilCapSense In3 = CapSense (2, 8) нэмнэ; // 4 ба 8 -р зүү хоорондын 2M эсэргүүцэл, 8 -р зүү нь мэдрэгчийн зүү, утас, foilCapSense In4 = CapSense (2, 12); // 4 ба 8 -р зүү хоорондын 2M эсэргүүцэл, 8 -р зүү нь мэдрэгчийн зүү, утас, folilCapSense In5 = CapSense (2, 13); // 4 ба 8 -р зүү хоорондын 2M эсэргүүцэл, 8 -р зүү нь мэдрэгч зүү, утас, тугалган цаас нэмнэ // ХОУХ -ны зүү PinR1 = 3; int PinG1 = 5; int PinB1 = 6; // Бусад хувьсагчид Color1 = 128; // өнгө шиг өнгөөр эхлээрэй Brightness1 = 255; // RedValue1, GreenValue1, BlueValue1 -ийг бүрэн гэрэлтүүлгээр эхлүүлэх; // RGB бүрэлдэхүүн хэсгүүдvoid setup () {// мэдрэгчийн завсарлагааны утгыг тохируулах In1.set_CS_AutocaL_Millis (завсарлага); In2.set_CS_AutocaL_Millis (завсарлага); In3.set_CS_AutocaL_Millis (завсарлага); In4.set_CS_AutocaL_Millis (завсарлага); In5.set_CS_AutocaL_Millis (завсарлага);} void loop () {long start = millis (); урт нийт1 = In1.capSense (30); урт нийт2 = In2.capSense (30); урт нийт3 = In3.capSense (30); урт нийт4 = In4.capSense (30); урт нийт5 = In5.capSense (30); if (total2> 150) {Color1 ++; // өнгийг нэмэгдүүлэх (хэрэв Color1> 255) {// Color1 = 0; }} else if (total3> 200) {Color1--; // өнгийг бууруулна уу (Color1 <0) {// Color1 = 255; } // өнгийг rgb hueToRGB болгон хөрвүүлэх (Color1, Brightness1); // PWM pins analogWrite -д өнгө бичих (PinR1, RedValue1); analogWrite (PinG1, GreenValue1); analogWrite (PinB1, BlueValue1);} // функцийг өнгө, улаан, ногоон, цэнхэр өнгийн бүрэлдэхүүн хэсгүүдэд хувиргах. hueToRGB (int hue, int тод байдал) {unsigned int scaledHue = (hue * 6); тэмдэггүй int сегмент = scaledHue / 256; // 0 -ээс 5 хүртэлх өнгөний дугуйны эргэн тойронд unsigned int segmentOffset = scaledHue - (сегмент * 256); // сегмент доторх гарын үсэг зураагүй int compliment = 0; unsigned int prev = (тод байдал * (255 - segmentOffset)) / 256; unsigned int next = (тод байдал * segmentOffset) / 256; if (эргүүлэх) {тод байдал = 255-тод байдал; магтаал = 255; өмнөх = 255-өмнөх; дараагийн = 255-дараагийн; } switch (segment) {case 0: // red RedValue1 = тод байдал; GreenValue1 = дараагийн; BlueValue1 = магтаал; завсарлага; тохиолдол 1: // шар RedValue1 = өмнөх; GreenValue1 = тод байдал; BlueValue1 = магтаал; завсарлага; тохиолдол 2: // ногоон RedValue1 = магтаал; GreenValue1 = тод байдал; BlueValue1 = дараагийн; завсарлага; тохиолдол 3: // цэнхэр RedValue1 = магтаал; GreenValue1 = өмнөх; BlueValue1 = тод байдал; завсарлага; тохиолдол 4: // цэнхэр RedValue1 = дараагийн; GreenValue1 = магтаал; BlueValue1 = тод байдал; завсарлага; тохиолдол 5: // ягаан өнгийн анхдагч: RedValue1 = тод байдал; GreenValue1 = магтаал; BlueValue1 = өмнөх; завсарлага; }}--- ТӨГСГӨЛ ---

Алхам 6: Ambi Light - Arduino Side

Мэдээжийн хэрэг, таны компьютерээс сэтгэлийн хөдөлгөөнийг хянах нь үнэхээр сайхан байх болно. Жишээлбэл, амбилайт эсвэл дууны хяналттай диско үүсгэх. Энэ хэсэг нь ambilight хэсэгт төвлөрдөг бөгөөд ирээдүйд би илүү олон функцуудыг нэмж оруулах болно, гэхдээ энэ нь Arduino -д байдаг тул нэмэлт хэлхээ байхгүй болно. Бидний ашиглах зүйл бол цуваа дамжуулах чадвар, зарим 'Processing 1.0' програм хангамж юм. Arduino-г USB кабелиар компьютерт холбоно уу (хэрэв та үүнд ноорог байршуулж байсан бол энэ нь аль хэдийн байсан). Arduino -ийн хувьд цуваа харилцаанд зориулж нэмэлт код оруулах шаардлагатай байна. Код нь компьютерээс RGB утгыг хүлээн авсан тохиолдолд багтаамжийн мэдрэгчийг эргүүлж, сонсох горимд шилжих болно. Дараа нь RGB утгыг ХОУХ -ны зүү болгон тохируулдаг. Энэ бол одоогоор миний эцсийн код юм, өөрчлөлтийг өөрөө шалгаарай: --- Arduino Ambilight Code ---#const boolean invert = true; const long timeout = 10000; long commStart = 0; char val; // Capacitive sensor declarationCapSense In1 = CapSense (2, 4); // 4 ба 2 -р зүү хоорондын 2M эсэргүүцэл, 2 -р зүү нь мэдрэгчийн зүү, утас, foilCapSense In2 = CapSense (2, 7); // 4 ба 6 -р зүү хоорондын 2M эсэргүүцэл, 6 -р зүү нь мэдрэгчийн зүү, утас, foilCapSense In3 = CapSense (2, 8) нэмнэ; // 4 ба 8 -р зүү хоорондын 2M эсэргүүцэл, 8 -р зүү нь мэдрэгчийн зүү, утас, foilCapSense In4 = CapSense (2, 12); // 4 ба 8 -р зүү хоорондын 2M эсэргүүцэл, 8 -р зүү нь мэдрэгчийн зүү, утас, foilCapSense In5 = CapSense (2, 13); // 4 ба 8 -р зүү хоорондын 2M эсэргүүцэл, 8 -р зүү нь мэдрэгч зүү, утас, тугалган цаас нэмнэ // ХОУХ -ны зүү PinR1 = 3; int PinG1 = 5; int PinB1 = 6; // Бусад хувьсагчид Color1 = 128; // өнгө шиг өнгөөр эхлээрэй Brightness1 = 255; // RedValue1, GreenValue1, BlueValue1 -ийг бүрэн гэрэлтүүлгээр эхлүүлэх; // RGB бүрэлдэхүүн хэсгүүдийн хүчингүй тохиргоо () {Serial.begin (9600); // цуваа дамжуулалтыг эхлүүлэх // мэдрэгчийн завсарлагааны утгыг тохируулах In1.set_CS_AutocaL_Millis (завсарлага); In2.set_CS_AutocaL_Millis (завсарлага); In3.set_CS_AutocaL_Millis (завсарлага); In4.set_CS_AutocaL_Millis (завсарлага); In5.set_CS_AutocaL_Millis (завсарлага);} void loop () {long start = millis (); урт нийт1 = In1.capSense (30); урт нийт2 = In2.capSense (30); урт нийт3 = In3.capSense (30); урт нийт4 = In4.capSense (30); урт нийт5 = In5.capSense (30); if (Serial.available ()) {// Хэрэв өгөгдөл унших боломжтой бол val = Serial.read (); // үүнийг уншаад val commStart = millis () -д хадгална уу; if (val == 'S') {// Хэрэв start char хүлээн авбал, (! Serial.available ()) {} // Дараагийн утга хүртэл хүлээнэ үү. RedValue1 = Serial.read (); // Боломжтой бол хуваарилна уу. while (! Serial.available ()) {} // Дээрхтэй ижил. GreenValue1 = Serial.read (); while (! Serial.available ()) {} BlueValue1 = Serial.read (); } Serial.print (RedValue1); Цуваа.хэвлэх (GreenValue1); Serial.println (BlueValue1); } if if ((millis () - commStart)> 1000) {if (total2> 150) {Color1 ++; // өнгийг нэмэгдүүлэх (хэрэв Color1> 255) {// Color1 = 0; }} else if (total3> 200) {Color1--; // өнгийг бууруулна уу (Color1 <0) {// Color1 = 255; }} hueToRGB (Color1, Brightness1); } analogWrite (PinR1, RedValue1); analogWrite (PinG1, GreenValue1); analogWrite (PinB1, BlueValue1);} // функцийг өнгө, улаан, ногоон, цэнхэр өнгийн бүрэлдэхүүн хэсгүүдэд хувиргах. hueToRGB (int hue, int тод байдал) {unsigned int scaledHue = (hue * 6); гарын үсэггүй int сегмент = scaledHue / 256; // 0 -ээс 5 хүртэлх өнгөний дугуйны эргэн тойронд гарын үсэг зураагүй int segmentOffset = scaledHue - (сегмент * 256); // сегмент доторх байрлал unsigned int compliment = 0; unsigned int prev = (тод байдал * (255 - segmentOffset)) / 256; unsigned int next = (тод байдал * segmentOffset) / 256; if (эргүүлэх) {тод байдал = 255-тод байдал; магтаал = 255; өмнөх = 255-өмнөх; дараагийн = 255-дараагийн; } switch (segment) {case 0: // red RedValue1 = тод байдал; GreenValue1 = дараагийн; BlueValue1 = магтаал; завсарлага; тохиолдол 1: // шар RedValue1 = өмнөх; GreenValue1 = тод байдал; BlueValue1 = магтаал; завсарлага; тохиолдол 2: // ногоон RedValue1 = магтаал; GreenValue1 = тод байдал; BlueValue1 = дараагийн; завсарлага; тохиолдол 3: // цэнхэр RedValue1 = магтаал; GreenValue1 = өмнөх; BlueValue1 = тод байдал; завсарлага; тохиолдол 4: // цэнхэр RedValue1 = дараагийн; GreenValue1 = магтаал; BlueValue1 = тод байдал; завсарлага; тохиолдол 5: // ягаан өнгийн анхдагч: RedValue1 = тод байдал; GreenValue1 = магтаал; BlueValue1 = өмнөх; завсарлага; }}--- ТӨГСГӨЛ ---

Алхам 7: Ambi Light - Компьютерийн тал

Компьютерийн хажуу талд Processing 1.0 ноорог ажиллаж байгаа тул processing.org -ийг үзнэ үү. Энэхүү бяцхан (бага зэрэг эмх замбараагүй) програм нь дэлгэцийн өнгийг хором тутамд тооцоолж, цуваа порт руу илгээдэг. Энэ нь одоогоор маш энгийн бөгөөд зарим тохируулгыг ашиглаж болох боловч маш сайн ажилладаг! Би үүнийг ирээдүйд олон тусдаа RGB тууз болон дэлгэцийн хэсгүүдэд шинэчлэх болно. Та үүнийг өөрөө хийж болно, хэл нь маш энгийн. Энд код байна: --- 1.0 кодыг боловсруулах --- импортлох боловсруулах.сериал.*; Импорт java.awt. AWTException; импорт java.awt. Robot;; PImage screenShot; Serial myPort; static public void main (String args ) {PApplet.main (new String {"--present", "shooter"});} void setup () {size (100, 100)); // хэмжээ (дэлгэцийн өргөн, дэлгэцийн өндөр); // Дебаг хийх зорилгоор цуваа портуудын жагсаалтыг хэвлэх: println (Serial.list ()); // Миний mac цувралын жагсаалтын эхний порт // үргэлж миний FTDI адаптер гэдгийг би мэднэ, тиймээс би Serial.list () [0] -г нээдэг. // Windows машин дээр энэ нь ерөнхийдөө COM1 -ийг нээдэг. // Таны ашиглаж буй портыг нээнэ үү. String portName = Serial.list () [0]; myPort = new Serial (this, portName, 9600);} void draw () {// зураг (screenShot, 0, 0, өргөн, өндөр); screenShot = getScreen (); өнгө kleur = өнгө (0, 0, 0); kleur = өнгө (дэлгэцийн зураг); //myPort.write(int(red(kleur)) '', '+int (green (kleur))+', '+int (blue (kleur))+13); //myPort.write(int(red(kleur))); //myPort.write (','); //myPort.write(int(green(kleur)))); //myPort.write (','); //myPort.write(int(blue(kleur)))); //myPort.write(13); дүүргэх (kleur); шулуун (30, 20, 55, 55);} өнгөний өнгө (PImage img) {int cols = (img.width); int rows = (зураг өндөр); int хэмжигдэхүүн = (img.width*img.height); int r = 0; int g = 0; int b = 0; img.loadPixels (); // Ga elke pixel langs (dimension) for (int i = 0; i <(dimension/2); i ++) {r = r+((img.pixels >> 16) & 0xFF); g = g + ((img.pixels >> 8) & 0xFF); b = b + (img.pixels & 0xFF);} int дундаж_r = r/(хэмжээс/2); int дундаж_g = g/(хэмжээс/2); int дундаж_b = b/(хэмжээс/2); өнгө дундаж_клр = өнгө (дундаж_р, дундаж_г, дундаж_б); myPort.write ('S'); myPort.write (mean_r); myPort.write (дундаж_g); myPort.write (Mean_b); return (Mean_clr);} PImage getScreen () {GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment (); GraphicsDevice gs = ge.getScreenDevices (); DisplayMode горим = gs [0].getDisplayMode (); Тэгш өнцөгтийн хязгаар = шинэ тэгш өнцөгт (0, 0, mode.getWidth (), mode.getHeight ()); BufferedImage desktop = шинэ BufferedImage (mode.getWidth (), mode.getHeight (), BufferedImage. TYPE_INT_RGB); {desktop = new Robot (gs [0]) оролдоорой. createScreenCapture (хязгаар); } барих (AWTException e) {System.err.println ("Дэлгэцийн зураг авалт амжилтгүй боллоо."); } буцах (шинэ PImage (ширээний));} --- Төгсгөл ---

Алхам 8: Үр дүн

Үр дүн
Үр дүн
Үр дүн
Үр дүн

Үр дүн нь энэ бол миний орны доод талд байна. Би даавуугаа солих шаардлагатай хэвээр байгаа бөгөөд энэ нь гэрлийг улам сарниулах болно. Удахгүй үүнтэй холбоотой бусад зургууд танд таалагдана гэж найдаж байна, мөн энэ нь таны бүтээлч байдлын үндэс болно гэж найдаж байна. Цаг хугацаа хязгаарлагдмал байгаа тул би үүнийг маш хурдан бичсэн. Үүнийг ойлгохын тулд танд arduino/electronics -ийн анхан шатны мэдлэг хэрэгтэй байж магадгүй, гэхдээ үүнийг сайн хүлээж авсан бол ирээдүйд шинэчлэх төлөвлөгөөтэй байна.

Зөвлөмж болгож буй: