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

Arduino хальсны камерын хөшиг шалгагч: 4 алхам
Arduino хальсны камерын хөшиг шалгагч: 4 алхам

Видео: Arduino хальсны камерын хөшиг шалгагч: 4 алхам

Видео: Arduino хальсны камерын хөшиг шалгагч: 4 алхам
Видео: REAL RACING 3 LEAD FOOT EDITION 2024, Долдугаар сарын
Anonim
Arduino хальсны камерын хаалт шалгагч
Arduino хальсны камерын хаалт шалгагч
Arduino хальсны камерын хөшиг шалгагч
Arduino хальсны камерын хөшиг шалгагч

Саяхан би хуучин хоёр кино камер худалдаж авсан. Тэднийг цэвэрлэсний дараа би хөшигний тоосонцор, зэврэлт, тосны дутагдлаас хоцорч болохыг ойлгосон тул нүцгэн нүдээрээ хэмжиж чадахгүй байгаа тул ямар ч камерын бодит өртөлтийн хугацааг хэмжих зүйл хийхээр шийдлээ. Энэхүү төсөл нь үзэсгэлэнгийн хугацааг хэмжих гол бүрэлдэхүүн хэсэг болгон Arduino -ийг ашигладаг. Бид opto хос (IR LED ба IR гэрэл транзистор) хийж, камерын хаалт хэдэн цаг нээлттэй байгааг унших гэж байна. Нэгдүгээрт, би зорилгодоо хурдан хүрэх арга замыг тайлбарлаж өгөх бөгөөд эцэст нь бид энэ төслийн ард байгаа онолыг харах болно.

Бүрэлдэхүүн хэсгүүдийн жагсаалт:

  • 1 х кино камер
  • 1 x Arduino Uno
  • 2 x 220 Ω Нүүрстөрөгчийн хальсны эсэргүүцэл
  • 1 x IR LED
  • 1 x фототранзистор
  • 2 x Жижиг талхны самбар (эсвэл 1 том талхны самбар, камерыг төвд байрлуулахад хангалттай том)
  • Олон холбогч эсвэл кабель

*Энэхүү нэмэлт бүрэлдэхүүн хэсгүүдийг тайлбар хэсэгт оруулах шаардлагатай

  • 1 x Энгийн өнгөт LED
  • 1 x Түр зуурын товчлуур

Алхам 1: Цахилгааны утас

Утасны эд анги
Утасны эд анги
Цахилгааны утас
Цахилгааны утас
Утасны эд анги
Утасны эд анги

Нэгдүгээрт, IR LED -ийг нэг талхны хавтан дээр, нөгөө хэсэгт нь IR гэрэл зургийн дамжуулагчийг байрлуул. LED анод (урт хөл эсвэл хавтгай хилгүй тал) руу 220 инчийн нэг эсэргүүцэл холбож, резисторыг Arduino дээрх 5V цахилгаан тэжээлд холбоно. LED катод (богино хөл эсвэл хавтгай хилтэй тал) -ыг Arduino дахь GND портуудын аль нэгэнд холбоно уу.

Дараа нь гэрэл транзистор дээрх Коллекторын зүүг утсаар холбоно уу (миний хувьд богино хөлтэй, гэхдээ та транзисторын өгөгдлийн хуудсыг зөв холбосон эсэхээ шалгах хэрэгтэй, эс тэгвээс транзисторыг дэлбэлж магадгүй). эсэргүүцлийг Арудино дээрх A1 зүү рүү холбож, дараа нь гэрэл транзисторын эмиттерийн зүүг холбоно уу (урт хөл эсвэл хавтгай хилгүй). Ийм байдлаар бид IR LED -ийг байнга асааж, гэрэл транзисторыг угаалтуурын унтраалга болгон тохируулдаг.

IR туяа нь транзистор дээр ирэхэд гүйдэл нь коллекторын зүүгээс ялгаруулагч зүү рүү дамжих болно. Бид A1 зүүг оролтыг дээш татахаар тохируулах болно, ингэснээр транзистор нь одоогийн массыг шингээхгүй бол зүү үргэлж өндөр төлөвт байх болно.

Алхам 2: Програмчлал

Arduino IDE (порт, самбар, програмист) -ыг Arduino самбартаа шаардлагатай тохиргоонд нийцүүлэн тохируулна уу.

Энэ кодыг хуулж, хөрвүүлж, байршуулна уу:

int readPin = A1; // 330 резисторыг фототранзистороос холбосон зүү

int ptValue, j; // analogRead () bool lock -оос уншсан өгөгдлийг хадгалах цэг; // болен нь readPin тэмдэггүй урт таймер, таймер2 -ийг уншдаг байсан; давхар уншсан; String сонгох [12] = {"B", "1", "2", "4", "8", "15", "30", "60", "125", "250", "500", "1000"}; удаан хүлээгдэж буй [12] = {0, 1000, 500, 250, 125, 67, 33, 17, 8, 4, 2, 1}; void setup () {Serial.begin (9600); // бид цуваа холболтыг секундын 9600 битээр тохируулдаг pinMode (readPin, INPUT_PULLUP); // фото транзистор живэхээс бусад тохиолдолд бид зүүг үргэлж өндөрт тавих гэж байгаа тул логикийг "эргүүлж" // энэ нь HIGH = IR дохиогүй, LOW = IR дохиог хүлээн авсан саатал (200) гэсэн үг юм. // энэ саатал нь системийг эхлүүлэх, худал уншилтаас зайлсхийх зорилготой юм j = 0; // манай тоолуурыг эхлүүлэх} void loop () {lock = digitalRead (readPin); // өгөгдсөн зүүгийн төлөвийг уншиж, (! lock) {// хэрэв pin нь LOW timer = micros () байхад л ажиллуулна. // лавлагаа таймерыг (! lock) байхад тохируулна уу {// pin нь LOW байхад үүнийг хийгээрэй, өөрөөр хэлбэл Хөшиг нээх таймер2 = micros (); // хаалт хаагдсан эсэхийг мэдэхийн тулд зүү төлөвийг уншина уу} Serial.print ("Position:"); // энэ текст нь шаардлагатай мэдээллийг Serial.print харуулахад зориулагдсан болно ([j] -г сонгоно уу); Serial.print ("|"); Serial.print ("Цаг нээгдсэн:"); уншсан = (таймер2 - таймер); // Хөшиг нээгдэх хугацааг тооцоолох Serial.print (уншсан); Serial.print ("бид"); Serial.print ("|"); Serial.print ("Хүлээгдэж буй:"); Serial.println (хүлээгдэж буй [j]*1000); j ++; // Хөшигний байрлалыг нэмэгдүүлэх, үүнийг товчлуураар хийж болно}}

Байршуулж дууссаны дараа цуваа дэлгэцийг нээнэ үү (Хэрэгсэл -> Цуваа дэлгэц) ба камерыг уншихад бэлтгэ

Үр дүнг "нээгдсэн цаг" гэсэн үгсийн дараа харуулав, бусад бүх мэдээллийг урьдчилан програмчилсан болно.

Алхам 3: Тохируулах, хэмжих

Тохируулах ба хэмжих
Тохируулах ба хэмжих
Тохируулах ба хэмжих
Тохируулах ба хэмжих
Тохируулах ба хэмжих
Тохируулах ба хэмжих
Тохируулах ба хэмжих
Тохируулах ба хэмжих

Камерын линзээ тайлж, кино тасалгааг нээнэ үү. Хэрэв танд аль хэдийн ачаалагдсан кино байгаа бол энэ процедурыг хийхээс өмнө дуусгахаа бүү мартаарай, эс тэгвээс авсан зургийг гэмтээх болно.

IR LED ба IR гэрэл транзисторыг камерын эсрэг талд байрлуул, нэгийг нь хальсан дээр, нөгөө талд нь линз байрлуул. Та LED эсвэл транзисторын аль талыг ашиглаж байгаагаас үл хамааран Хөшиг дарагдсан үед тэд харааны холбоо барьж байгаа эсэхийг шалгаарай. Үүнийг хийхийн тулд Хөшигийг "1" эсвэл "B" дээр тавьж, зураг "авах" үед цуваа дэлгэцийг шалгана уу. Хөшиг сайн ажиллаж байвал монитор уншиж байгааг харуулах ёстой. Түүнчлэн, та тэдгээрийн хооронд тунгалаг бус объект байрлуулж, хэмжих програмыг ажиллуулахын тулд хөдөлгөж болно.

Arduino -г дахин тохируулах товчлуураар дахин тохируулаад "B" -ээс "1000" хүртэл өөр өөр хаалтны хурдаар нэг нэгээр нь зураг аваарай. Хөшиг хаагдсаны дараа цуваа дэлгэц дээрх мэдээллийг хэвлэх болно. Жишээлбэл, та хавсаргасан зурган дээрх Миранда ба Практика киноны камераар хэмжсэн хугацааг харж болно.

Энэ мэдээллийг ашиглан зураг авах эсвэл камерынхаа байдлыг оношлохдоо залруулга хийх боломжтой. Хэрэв та камераа цэвэрлэх эсвэл тааруулахыг хүсч байвал мэргэжлийн техникч рүү илгээхийг зөвлөж байна.

Алхам 4: Geeks Stuff

Geeks Stuff
Geeks Stuff
Geeks Stuff
Geeks Stuff
Geeks Stuff
Geeks Stuff
Geeks Stuff
Geeks Stuff

Транзистор бол өнөөгийн бидний харж буй бүх электрон технологийн үндэс суурь бөгөөд 1925 онд Австри-Унгар гаралтай Герман-Америкийн физикч анх патентжуулсан болно. Тэдгээрийг гүйдлийг хянах төхөөрөмж гэж тодорхойлсон. Тэдний өмнө бид вакуум хоолой ашиглан өнөөгийн транзисторын (телевиз, өсгөгч, компьютер) үйлдлийг хийх ёстой байв.

Транзистор нь коллектороос ялгаруулагч руу урсаж буй урсгалыг хянах чадвартай бөгөөд бид 3 хөлтэй нийтлэг транзисторт транзисторын хаалган дээр гүйдэл оруулах замаар гүйдлийг хянах боломжтой. Ихэнх транзисторуудад хаалганы гүйдэл нэмэгддэг тул жишээлбэл, хэрэв бид хаалган дээр 1 мА хэрэглэвэл ялгаруулагчаас 120 мА урсдаг. Бид үүнийг усны цорго хавхлага гэж төсөөлж болно.

Фото транзистор нь ердийн транзистор боловч хаалганы хөлтэй байхын оронд хаалга нь гэрэл зураг авах боломжтой материалтай холбогддог. Энэ материал нь фотоноор өдөөгдсөн үед бага гүйдэл үүсгэдэг, бидний хувьд IR долгионы урттай фотонууд. Тиймээс бид IR гэрлийн эх үүсвэрийн хүчийг өөрчилдөг фото транзисторыг хянадаг.

Элементүүдийг худалдаж авах, холбохоосоо өмнө анхаарах ёстой зарим онцлог шинж чанарууд байдаг. Транзистор болон LED мэдээллийн хуудаснаас авсан мэдээллийг хавсаргав. Нэгдүгээрт, бид транзисторын эвдрэлийн хүчдэлийг шалгаж чадах ёстой бөгөөд энэ нь хамгийн их хүчдэл юм, жишээлбэл, ялгаруулагчаас коллектор хүртэлх миний эвдрэлийн хүчдэл 5V, тиймээс хэрэв би 8В -ыг буруу холбосон бол транзисторыг хуурна. Түүнчлэн, цахилгаан алдагдсан эсэхийг шалгаарай, энэ нь үхэхээс өмнө транзисторыг хэр их гүйдэл дамжуулж чадахыг хэлнэ. Минийх 150 мВт гэж хэлдэг. 5V -т 150мВт гэдэг нь 30 мА (Ватт = V * I) гэсэн утгатай. Тиймээс би 220 Ом -ийн хязгаарлагч эсэргүүцэл ашиглахаар шийдсэн, учир нь 5В -т 220 Ом -ийн эсэргүүцэл нь зөвхөн 23 мА хамгийн их гүйдлийг дамжуулах боломжийг олгодог. (Омын хууль: V = I * R). LED -тэй ижил зүйл тохиолддог, мэдээллийн хуудасны мэдээлэл нь түүний хамгийн их гүйдэл нь 50 мА орчим байдаг тул өөр 220 Ω эсэргүүцэл нь зүгээр байх болно, учир нь бидний Arduino зүү хамгийн их гаралтын гүйдэл нь 40 мА бөгөөд бид тээглүүдийг шатаахыг хүсэхгүй байна.

Бид зураг дээрх шиг тохиргоогоо холбох хэрэгтэй. Хэрэв та минийх шиг товчлуур ашиглаж байгаа бол хоёр дугуй хэлбэртэй цухуйсан хавтанг самбарын төв хэсэгт байрлуулахад анхаараарай. Дараа нь дараах кодыг Arduino -д байршуулна уу.

int readPin = A1; // ptValue, phototransistorint 220 резистор холбогдсон зүү, j; // analogRead () void setup () {Serial.begin (9600) дээрээс уншсан өгөгдөл хадгалах цэг. } void loop () {ptValue = analogRead (readPin); // бид readPin (A1) Serial.println (ptValue) дээрх хүчдэлийн утгыг уншдаг; // ингэснээр бид уншсан өгөгдлийг цуваа монитор руу илгээдэг тул саатал юу болж байгааг шалгаж болно (35); // дэлгэцийн агшинг хөнгөвчлөхийн тулд хойшлуулна уу}

Байршуулсны дараа цуваа плоттерыг нээнэ үү (Хэрэгсэл -> Цуваа плоттер), IR LED шилжүүлэгч товчлуурыг дарахад юу болохыг хараарай. Хэрэв та IR LED ажиллаж байгаа эсэхийг шалгахыг хүсч байвал (мөн телевизийн алсын удирдлага) гар утасныхаа камерыг LED -ийн өмнө тавиад зураг аваарай. Хэрэв зүгээр байвал LED-ээс цэнхэр ягаан туяа гарч ирнэ.

Цуваа плоттер дээр та LED асаж, унтрах үед ялгаж болно, хэрэв үгүй бол утсаа шалгана уу.

Эцэст нь та analogRead аргыг digitalRead -д зориулж өөрчилж болно, ингэснээр та зөвхөн 0 эсвэл 1 -ийг харж болно. Би хуурамч LOW уншихаас зайлсхийхийн тулд тохиргоог хийсний дараа хойшлуулахыг санал болгож байна (нэг жижиг LOW оргил бүхий зураг).

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