Агуулгын хүснэгт:
- Алхам 1: Урьдчилсан нөхцөл
- Алхам 2: Удирдах зөвлөл байгуулах
- Алхам 3: Схем
- Алхам 4: Irremote номын санг Arduino програм хангамжид нэмнэ үү
- Алхам 5: Алсын удирдлагаас кодоо бичнэ үү
- Алхам 6: Алсын удирдлагадаа зориулж вэб хуудас үүсгэнэ үү
- Алхам 7: Алсын удирдлагын кодыг Arduino дээрээ байршуулна уу
- Алхам 8: Вэб сервер рүү компьютерээсээ холбогдоно уу
- Алхам 9: Нэмэлт алхам: Ашиглахад хялбар болгохын тулд хостуудын файлыг засна уу
Видео: Arduino хөтөч дээр суурилсан алсын удирдлага (linux): 9 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:00
Бид хүүхдүүдтэй. Би тэдэнд маш их дуртай, гэхдээ тэд хүүхдийн сувгийг асаахдаа хиймэл дагуул, телевизийн алсын удирдлагыг нуун дарагдуулдаг. Үүнийг хэдэн жилийн турш өдөр бүр хийдэг бөгөөд хайрт эхнэр маань надад зул сарын баяраар Arduino авахыг зөвшөөрсний дараа би Arduino -той ямар нэгэн ашигтай зүйл хийх цаг болсон гэж шийдсэн. Эндээс бид оргил цэгийг олж авлаа: миний алсын удирдлагыг сольж, миний дотоод сүлжээнээс хандах боломжтой Arduino-д суурилсан вэб интерфэйс. Яагаад миний ethernet бамбай миний arduino -д ноорог хийхийг зөвшөөрдөггүйг олж мэдээд би ethernet бамбайг вэб сервер болгон ашигладаг шинэ ноорог бичих болно, энэ нь надад компьютер дээрээ apache суулгах шаардлагагүй гэсэн үг юм. Хүлээж байгаарай, би тийшээ очих болно!
Алхам 1: Урьдчилсан нөхцөл
Тоног төхөөрөмж: Arduino тал: Arduino - Би Arduino Uno R2 Breadboard ашиглаж байна - танай орон нутгийн цахилгаан барааны дэлгүүр эсвэл хэрэв та жинхэнэ талхны тавцан авахыг хүсвэл гал тогооны өрөө - Би ил тод тагтай хуучин хуванцар хайрцгийг ашигласан. Бүрэлдэхүүн хэсгүүд: Хэт улаан туяаны LED нэг нь эвдэрсэн алсын удирдлагаас (хүүхдүүдэд баярлалаа!) Хэт улаан туяаны хүлээн авагч - Би шидэт нүдтэй алсын транзистороос авсан - Би BC547 резистор ашигласан - Би 1к Ом -ийн талбайн холбогч утаснуудад тохируулсан 1.5 к омын хувьсах эсэргүүцэл ашигласан. Хатуу цөмт RJ45 кабелийн ороомогоос Компьютерийн тал: Компьютерийг сервер болгон ашиглах зориулалттай Arduino програм хангамж: Arduino програм хангамж - arduino.cc архитектурын номын сангаас - https://www.arcfn.com/2009/08/multi-protocol- infrared -remote -library.html (баярлалаа Кен, гайхалтай ажил!) PHP суулгасан Apache вэб сервер - apache.org Дотоод IP хаяг - минийх 192.168.0.9 Таны алсын удирдлагын зураг - google эсвэл таны камер дээр авсан зураг. Би 200x600 нарийвчлалтайгаар хадгалсан
Алхам 2: Удирдах зөвлөл байгуулах
Arduino -д зориулж талхны самбар ашиглахыг зөвлөж байна. Би Arduino болон талхны самбараа нэг хашлагад суулгаж, тогтмол ашигладаг бүх тээглүүрээ шууд талхны самбар руу холбосон. Энэхүү төсөлд ашигласан Arduino тээглүүр: 5в, газрын дижитал тээглүүр 3, 11 (зүү 3 нь IR LED -ийг хянадаг, зүү 11 нь IR хүлээн авагчтай холбогддог)
Алхам 3: Схем
Энэхүү схем нь маш энгийн, 4 бүрэлдэхүүн хэсэг, 6 утастай. IR LED холболтууд: Резисторын нэг хөлийг Arduino дижитал зүү рүү холбоно уу 3 Резисторын нөгөө хөлийг транзисторын үндсэн зүү рүү холбоно уу (миний хувьд дунд хөл) Транзисторын ялгаруулагчийг газардуу холбоно Коллекторыг холбоно уу. LED -ийн сөрөг хөл рүү транзистор (богино хөл, LED -ийн тэгш тал) таны тодорхой IR хүлээн авагч): GND зүү, VS зүү 5V VO зүү, Arduino дижитал зүү 11
Алхам 4: Irremote номын санг Arduino програм хангамжид нэмнэ үү
irremote бол Кен Ширриффын бичсэн гайхалтай номын сан бөгөөд түүний блогоос https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html номын санг https:// arcfn дээрээс татаж авах боломжтой..com/files/IRremote.zip -ийг суулгаад arduino -ийн бусад номын сангийн адил суулгаарай. Түүний блогт номын сан болон түүнийг хэрхэн суулгах талаар хэрэгтэй мэдээлэл их бий.
Алхам 5: Алсын удирдлагаас кодоо бичнэ үү
Уйтгартай (гэхдээ зайлшгүй) хэсгийн эхлэл энд байна: Алсын удирдлага дээрх товчлуур бүрийг дарж, гаралтын мөрийг хадгалж, виртуал алсын удирдлагад буулгах. Та үүнийг ганцхан удаа хийх хэрэгтэй бөгөөд ойролцоогоор 20 минут болно. Гаралтыг хадгалахын тулд текст засварлагч ажиллуулна уу. Шинэ баримт бичиг үүсгээд алсын удирдлага дээрх товчлуур бүрийг нэг мөрөнд бичнэ үү: Зүүнээс доошоо зүүнээс баруун тийш … гэх мэт Arduino IDE-ийг эхлүүлээд "Файлууд-> Жишээ-> IRremote-> IRrecvDump" дээр дарж оруулна уу. таны Arduino. Энэ жишээ нь алсын кодыг цуваа порт руу хаях болно. Цуваа порт мониторыг асаагаад алсын удирдлага дээрх товчлуурыг дарна уу. Цуваа дэлгэцийн цонхонд "Decoded *: * (* bits)" гэсэн мөр гарч ирнэ. Энэ мөрийг хуулж, зохих мөрөнд баримт бичигтээ хадгална уу. Текст файлд бүх түлхүүрээ хадгалах хүртэл давтана уу. Энэ жаахан хөгжилтэй байдгийг би мэдэж байна, би үүнийг одоог хүртэл хоёр удаа хийж байсан: P Бид одоо текст файл дээр жаахан хайлт хийж, солих хэрэгтэй байна: "Декодчилсон" гэсэн үгийг "" хайх ": 0х" гэж орлуулах "," хайх "(" орлуулах "," "бит" хайх) "" "гэж орлуулах" Тиймээс кодчилсон NEC: 0x000110 (15 бит) гэх мэт шугамын хувьд бид одоо NEC, 000110 гэсэн мөртэй байх ёстой., 15
Алхам 6: Алсын удирдлагадаа зориулж вэб хуудас үүсгэнэ үү
Бид одоо таны алсын удирдлагын дүрс дээрх товчлууруудыг газрын зураг дээр зурах хэрэгтэй.
Би https://www.maschek.hu/imagemap/imgmap ашиглан товчлууруудын зураглалыг хийж, вэбсайтыг ажиллуулахын тулд өгсөн кодыг өөрчилсөн.
"Компьютер дээрээ зураг ашиглах: [файлыг сонгох]" дээр дарна уу, зургаа сонгоно уу, [байршуулах] дээр дарна уу, хүлээн зөвшөөрнө үү, товчлуур тус бүр дээр тэгш өнцөгт, тойрог гэх мэтийг оруулна уу. HREF -ийн хувьд /remote.php?command= гэсэн текстийн баримт бичгийн товчлуурын мөрийг оруулна уу, жишээ нь /remote.php?command=NEC, 000110, 15 Хэрэв та мөн бөглөх юм бол ухаалаг байх болно Alt: товчлуурын нэртэй боловч энэ нь танд хамаарна.
Товчлуур бүрт давтана уу.
Бүгд бэлэн? Дараа нь бид үргэлжлүүлэх болно. Хуудасны доод талд "Код" байгаа бөгөөд үүн дээр дарахад дүрс зургийн кодыг харуулсан хайрцаг нээгдэнэ. Үүнийг хуулж, шинэ текст баримт бичигт буулгана уу. Энэ бол манай вэб хуудасны үндсэн хэсэг юм.
Энд миний бүрэн вэб хуудас байна, зүгээр л солино уу …
Дээрх өөрийн кодыг оруулаад алсын удирдлагатай зургуудынхаа хамт вэб директортоо (Linux дээр/var/www) remote.php хэлбэрээр хадгална уу. Өөрийн зургийн мөрүүдийг өөрчилнө үү:
"https://www.w3.org/TR/html4/loose.dtd">
Arduino LED удирдлага
Алхам 7: Алсын удирдлагын кодыг Arduino дээрээ байршуулна уу
Шинэ ноорог үүсгэж дараах кодыг оруулна уу. Их Британи/2012/02/irremote-arduino-туршилт/ * IRremote номын сангийн зохиогчийн эрх 2009 Кен Ширифф, https://arcfn.com */ #inline загварыг оруулах inline Print & operator << (Print & obj, T arg) {obj.print (arg); буцах obj; } логик төгсгөл = худал; char inData [64]; // Хэмжээ зохих хэмжээгээр байт индекс = 0; #deopine EOP "\ n" IRsend irsend; void setup () {Serial.begin (9600); Цуваа << "Цуваа портыг эхлүүлсэн" << EOP; } void loop () {String pch, sType, sTemp; char inChar, sTest, k; int sBits; урт sHex; int i, j; while (1) {while (Serial.available ()> 0) {inChar = Serial.read (); хэрэв (индекс == 0) {pch = ""; } if (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {end = true; индекс = 0; завсарлага; } өөр {if (индекс <64) // Массивын хэмжээ {pch += inChar; индекс ++; }}} if (дууссан) {// inData дахь өгөгдлийг эндээс задлан шинжилнэ үү … pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); би ++; // алгасах ',' эсвэл '' // i одоо hex j = pch.lastIndexOf ('') эхлэхийг зааж байна! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j одоо зургаан өнцөгтийн sHex = 0 -ийн дараа ',' эсвэл '' руу зааж байна; sTemp = pch.substring (i, j); if (sTemp.substring (0, 2) == String ("0X")) sTemp = sTemp.substring (2); for (i = 0; i <sTemp.length (); i ++) {k = sTemp ; хэрэв (! ((k> = '0' && k = 'A' && k <= 'F'))) завсарлага; sHex *= 16; хэрэв (k> = '0' && k <= '9') sHex += (k - '0'); өөр бол (k> = 'A' && k <= 'F') sHex + = ((k - 'A') + 10); хэрэв (! ((k> = '0' && k = 'A' && k <= 'F'))) завсарлага; } sTemp = pch.substring (j+1); sBits = 0; for (i = 0; i <sTemp.length (); i ++) {k = sTemp ; sBits *= 10; хэрэв (k> = '0' && k <= '9') sBits += (k - '0'); } if (sType.length ()> 0) {Цуваа << pch << EOP << "Кодын төрөл:" << sType << "Hex:"; Serial.print (sHex, HEX); Цуваа << "битүүд:" << sBits; } sendIt (sType, sHex, sBits); pch = ""; дууссан = 0; }}} void sendIt (String sType, long sHex, int sBits) {for (int i = 0; i <2; i ++) {if (sType.equals (String ("RC6")))) {irsend.sendRC6 (sHex), sBits); } if if (sType.equals (String ("RC5"))) {irsend.sendRC5 (sHex, sBits); } else if (sType.equals (String ("SONY")))) {irsend.sendSony (sHex, sBits); } if if (sType.equals (String ("NEC")))) {if (! i) irsend.sendNEC (sHex, sBits); } if if (sType.equals (String ("")))) {Цуваа << "Хойшлох" << EOP; саатал (450); } саатал (30); }}
Алхам 8: Вэб сервер рүү компьютерээсээ холбогдоно уу
.. эсвэл утас эсвэл андройд эсвэл ipad эсвэл бусад: хөтөч дээрээ https:// вэб серверийн IP хаяг/remote.php руу очно уу Миний хувьд энэ хаяг https://192.168.0.9/remote.php боловч таных өөр байх нь дамжиггүй. Хэрэв бүх зүйл хэвийн байгаа бол та товчлуур дээр дарж алсын удирдлагынхаа зургийг харах ёстой.
Алхам 9: Нэмэлт алхам: Ашиглахад хялбар болгохын тулд хостуудын файлыг засна уу
Миний хийсэн алхам бол миний хост файлыг (Linux дээр/etc/hosts, Windows дээр C: / Windows / System32 / Drivers / etc / hosts) засварлах явдал байв. Энэ файлыг зөвхөн захиргааны командын мөрөнд (Windows) эсвэл su (linux) засварлах боломжтой гэдгийг анхаарна уу. Ip.add.re.ss алсын мөрийг нэмж IP.add.re.ss -ийг серверийн IP хаягаар сольж файлыг хадгална уу.. Та богино нэртэй вэб хуудсанд нэвтрэхийг хүссэн төхөөрөмж бүр дээр үүнийг хийх хэрэгтэй болно. Одоо та алсын удирдлага руу https://remote/remote.php хаягаар нэвтэрч болно. Энэ бол миний хамгийн анхны зааварчилгаа юм, зөөлөн хандаж, ямар нэгэн асуудал байвал надад мэдэгдээрэй.
Зөвлөмж болгож буй:
LoRa дээр суурилсан алсын удирдлага - Том зайнаас цахилгаан хэрэгслийг хянах: 8 алхам
LoRa дээр суурилсан алсын удирдлага | Цахилгаан хэрэгслийг том зайнаас хянах: Хөөе, юу байна, залуусаа! Энэхүү төсөлд бид LED, мотор гэх мэт төрөл бүрийн багаж хэрэгслийг удирдахад ашигладаг алсын удирдлагыг бий болгох гэж байгаа юм
ТВ -ийн алсын удирдлага нь RF -ийн алсын удирдлага болжээ -- NRF24L01+ заавар: 5 алхам (зурагтай)
ТВ -ийн алсын удирдлага нь RF -ийн алсын удирдлага болжээ || NRF24L01+ заавар: Энэхүү төсөл дээр би алдартай nRF24L01+ RF IC ашиглан LED зурвасын гэрэлтүүлгийг телевизийн алсын удирдлагын ашиггүй гурван товчлуураар утасгүйгээр тохируулах аргыг танд үзүүлэх болно. Эхэлцгээе
Аркайино дээр суурилсан гулгуур эсвэл гидрофолийн алсын удирдлага: 5 алхам (зурагтай)
Eskate эсвэл Hydrofoil -ийн Arduino дээр суурилсан алсын удирдлага: Энэхүү зааварчилгаа нь танд хэрэгтэй бүх код, техник хэрэгслийг багтаасан эскейт эсвэл цахилгаан гидрофолоор ашиглах физик удирдлагыг хэрхэн яаж хийхийг танд үзүүлэх болно. Гагнах ажилд маш их оролцдог боловч үүнийг хийх нь бас хөгжилтэй байдаг. Алсын удирдлага юу хийж чадах вэ? Хамт
IR алсын удирдлагаа RF алсын удирдлага руу хөрвүүлэх: 9 алхам (зурагтай)
IR алсын удирдлагаа RF -ийн удирдлага руу хөрвүүлэх: Өнөөдрийн зааварчилгаанд би ерөнхий хянагчийн модулийг микроконтроллергүйгээр хэрхэн ашиглахыг танд харуулах болно. Алсын удирдлага. Хөрвүүлэх гол давуу тал нь
Olympus Evolt E510 алсын кабелийн хувилбар (Алсын удирдлага дээр автомат фокус бүхий 2 -р хувилбар): 6 алхам (зурагтай)
Olympus Evolt E510 алсын кабелийн хувилбар (Алсын удирдлага дээр автомат фокус бүхий 2 -р хувилбар): Өчигдөр би Olympus E510 -ийнхээ нэг товчлууртай энгийн алсын удирдлагыг бүтээсэн. Ихэнх камерууд хоёр горимтой Хөшиг суллах товчлууртай (зураг дарах гэж дардаг). Хэрэв товчлуурыг дарвал камер автоматаар фокуслаж, гэрлийг хэмжих болно