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

EV3: 6 алхам ашиглан автомат сохор онгойлгогч
EV3: 6 алхам ашиглан автомат сохор онгойлгогч

Видео: EV3: 6 алхам ашиглан автомат сохор онгойлгогч

Видео: EV3: 6 алхам ашиглан автомат сохор онгойлгогч
Видео: ЗАКРИЧАЛ – ПОТЕРЯЛ ₽200.000 / ТРЭШКЭШ: Тишина 2024, Долдугаар сарын
Anonim
EV3 ашиглан автомат сохор онгойлгогч
EV3 ашиглан автомат сохор онгойлгогч
EV3 ашиглан автомат сохор онгойлгогч
EV3 ашиглан автомат сохор онгойлгогч

Унтлагын өрөөндөө галзуу хаалтны иж бүрдэл байдаг бөгөөд үүнийг өглөө эсвэл орой нээх, хаахаа мартдаг. Би нээлт, хаалтыг автоматжуулахыг хүсч байна, гэхдээ би хэзээ өөрчлөгдөхөө мэдэхгүй байна.

Алхам 1: Боломжит санаа эсвэл шийдэл

YouTube, Instructables, Thingiverse гэх мэт янз бүрийн сайтуудыг хайсны дараа хамгийн түгээмэл шийдэл бол stepper мотор эсвэл servo ашиглан хөшигийг шархлуулж, тайлах явдал байв. Би янз бүрийн давуу болон сул талуудтай 2 үндсэн сонголтыг олсон.

Санаа 1: Хөдөлгүүр ба араа дамар дотор байрладаг дамар хийх арга. Энэ нь цэвэрхэн, гоёмсог арга болох давуу талтай боловч хараагүй хүмүүст томоохон өөрчлөлт хийх шаардлагатай байдаг, утас нь ашиглагдахаа больсон, угсрахдаа угсрахад засвар үйлчилгээ хийхэд маш хэцүү байх болно.

Санаа 2: мотор ба араа нь утсан дээр байрладаг хүйн арга. Энэ нь илүү хялбар бөгөөд угсрахад хялбар байдаг давуу талтай. Гэсэн хэдий ч энэ нь муухай, том хэмжээтэй байж болох сул талтай бөгөөд үүнийг хэрэгжүүлэхдээ босгон дээр бэхлэх шаардлагатай болдог.

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

Алхам 2: Чуулган хийх

Чуулган хийх
Чуулган хийх
Чуулган хийх
Чуулган хийх

Би энэ төслийг өөрийн Lego mindstorms EV3 -ийг ашиглан хийсэн бөгөөд энэ нь төсөл ажиллах боломжтойг харуулах ёстой бөгөөд маш их тус болсон програм хангамжийг сайн мэддэг. Сохорууд нь Lego араа нь таарахгүй дамарыг жолоодохын тулд бөмбөгний гинжийг ашигладаг тул гаднаа нь "хөндлөн хэлбэртэй" стандарт нүхтэй, гадна талд нь зөв бөмбөг зайтай араа зохион бүтээх нь хамгийн зөв шийдэл гэж би шийдсэн. төв, дараа нь би дизайныг 3D хэвлэх болно. Энэ үед би шалгалт тохируулгын товчлуур хийж, цонхонд гэрлийн мэдрэгч, товчлуурыг хавсаргасан.

Алхам 3: Сохор араа зохион бүтээх

Сохор араа зохион бүтээх
Сохор араа зохион бүтээх
Сохор араа зохион бүтээх
Сохор араа зохион бүтээх
Сохор араа зохион бүтээх
Сохор араа зохион бүтээх
Сохор араа зохион бүтээх
Сохор араа зохион бүтээх

Би бүлүүрийг илүү нарийвчлан авч үзэхийг харахын тулд сохруудыг задлав. Буулгах явцад би 16 шүдтэй жижигхэн араа олсон бөгөөд энэ нь миний хайж байсан хэсэг байв. Арааны хуулбарыг хийсний дараа би Lego-тэй нийцтэй шаардлагатай цоорхойг нэмж, 3 тусдаа хэсгийг хэвлээд эцэст нь супер цавуугаар бэхлэв. Надад эхлээд Lego хэсгийг нийцтэй болгох асуудал тулгарч байсан, учир нь миний 3D принтерийн хувьд "x" нүхийг гаргах нарийвчлал байхгүй байсан ч хоёр талын дугуй нүхтэй холбоотой асуудал гараагүй. Тиймээс би "x" -ийг дугуй нүхээр сольсон бөгөөд энэ нь нарийн хэвлэгдсэн байв. Дараа нь бага хэмжээний туршилт хийсний дараа энэ нь сохор хүнээс авсан эргэлт ба жинг тэсвэрлэх чадвартай болохыг олж мэдэв. Би доорх арааны загвараа холбох болно, эсвэл та үүнийг Thingiverse дээрээс олж болно:

Алхам 4: Хараагүй хүмүүсийг кодлох

Хараагүй хүмүүсийг кодлох
Хараагүй хүмүүсийг кодлох

Тодорхой гэрлийн түвшинд хүрэх үед сохоруудыг автоматаар нээж, хаах кодыг хүсч байсан боловч хүссэн үедээ сохорыг нээх эсвэл хаах боломжтой дарах товчлууртай байсан. Би GitHub -аа кодын эцсийн хувилбартай энд холбосон:

Төслийн кодыг боловсруулахад хэдэн өдөр зарцуулсан, би гэрлийн мэдрэгчтэй зөв ажилладаг програмын үндсэн логиктой байсан ч түр зуур дарах товчлуур зөв ажиллаагүй байна. Энэ нь дарагдсан үед сохор хүмүүсийн байдлыг өөрчилсөн боловч сохор хүн байрандаа үлдэх болно гэсэн утгатай "түгжих" функц дутагдаж байсан бөгөөд энэ нь сохор хүн үүнийг өмнөх шигээ буцааж өгөх болно гэсэн үг юм. Би үүнийг доор тайлбарлах болно гэрэл мэдрэгч, мэдрэгч мэдрэгчийн утгыг уншдаг логик OR хаалгад холбосон "хүлээх хүртэл" блок ашиглан зассан.

Код нь мотор ба сохорыг шалгалт тохируулга хийхээс эхэлж, сохорыг бүрэн онгойлгож, доод талын мэдрэгчийг цохих хүртэл доошлуулснаар доод хэсэгт хүрэхийн тулд хэдэн улирал эргэхийг тоолох бөгөөд үүнийг "Эргэлт хэрэгтэй" гэж хадгална. хувьсагч Дараа нь сохор хүмүүсийн байрлалыг хянахад ашигладаг "BlindOpen" хувьсагчид "худал" гэж бичдэг. Энэ үед код нь 4 гогцоонд хуваагдана.

Эдгээр гогцоонуудын нэг нь "Buttonstate" гогцоо бөгөөд товчлуурын төлөвийг "ButtonPressed" нэртэй хувьсагч руу байнга нийтэлдэг. Энэ нь скрипт дээр олон товчлуурын блок байрлуулах шаардлагагүй болно.

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

Гурав дахь давталт нь 3 сонголтын тоон жагсаалтыг агуулдаг бөгөөд үндсэндээ сохор хүмүүст юу хийхээ хэлдэг, 0 = сохор, 1 = сохор, 2 = сохор нь зөв газарт байгаа тул юу ч хийхгүй. Гогцоо нь сохор хүний хийх ёстой зөв ажлыг зааж өгсөн "BlindShould" хувьсагчийг уншиж эхэлж, дараа нь уг үүргийг гүйцэтгэж, "BlindOpen" хувьсагчийг зөв сонголт болгон өөрчилж, дараа нь "BlindShould" хувьсагчийг солих хүртэл идэвхгүй болно. энэ нь давтагддаг. Энэ нь "RotationsNeeded" утга болон +/- 100% хүчийг ашиглан сохоруудыг бүрэн онгойлгох эсвэл хаах боломжийг олгодог.

Дөрөв дэх ба эцсийн давталт нь хамгийн төвөгтэй бөгөөд энэ нь бүх өгөгдлийг зохицуулж, сэлгэн залгах бүрт юу хийхээ шийддэг "Decider" давталт юм. Үүнийг логик дээр суурилсан "замын салаа зам" ашиглан хийдэг бөгөөд "товчлуур дарагдсан", "Гэрлийн түвшин", "Сохор нээлттэй" нь үнэн эсвэл худал асуулт юм. Бүх сэлгэмэл нь хатуу кодчилсон хариу үйлдэлтэй байдаг бөгөөд энэ нь 0 = сохор, 1 = сохор, эсвэл 2 = юу ч хийхгүй - энэ утгыг "BlindShould" хувьсагчид бичдэг бөгөөд үүнийг өмнөх давталтаар зохицуулдаг. Зарим хариултууд скриптийг дуусгахаас өмнө "ItIsLight" ба/эсвэл "ButtonPressed" хувьсагчийн аль нэгийг нь өөрчлөхийг хүлээх болно, энэ нь зөвхөн товчлуурыг идэвхжүүлсэн тохиолдолд л хийгддэг, эс тэгвээс энэ нь байрлалаа засахыг оролдох болно, учир нь сохор хүн эргэж ирнэ. анхны байдалдаа. Дараа нь энэ процессыг давтаж, хүчирхэг, харьцангуй энгийн автомат системийг бий болгодог бөгөөд үүнийг хялбархан нэмж, дибаг хийх боломжтой болно. Өө.

Алхам 5: Хүрч дуусгах

Мэдээллийг дуусгах
Мэдээллийг дуусгах

Үүний дараа би EV3 -ийн 9В цахилгаан тэжээлийг модон алчуур, эрэг ашиглан "батерей" болгон холбохоор шийдсэн нь энэ бүтээгдэхүүнийг батерейнд найдваргүй болгож, батерейг хоёр өдөр тутамд солихоос сэргийлсэн юм.

Алхам 6: Төслийн үнэлгээ

Төсөл ерөнхийдөө сайн болсон гэж бодож байна, би автомат хөшиг угсрах ажлын загварыг олж авсан бөгөөд үүнийг төслийн явцад олж мэдсэн бүх мэдээллээ авч, эцсийн хувилбар болгон хэрэгжүүлэх боломжтой болсон гэж би бодож байна. Би төхөөрөмжийг амжилттай кодчилсон бөгөөд хожим нь кодтой холбоотой томоохон асуудал гараагүй байна. Би төхөөрөмжийг харааны хувьд илүү сэтгэл татам болгохыг хүсч байсан боловч энэ нь үзэл баримтлалын нотолгоо бөгөөд ESP8266 -ийн эцсийн хувилбарыг гаргахдаа үүнийг сайхан харагдуулахын тулд би бага зэрэг хүчин чармайлт гаргах болно. Би төслийг дахин хийхдээ моторыг сохор дотор суухаар зохион бүтээнэ. Миний сурсан хамгийн том сургамж бол кодоо хэрэгжүүлэхээс өмнө логикоор дибаг хийж, сайтар бодож, баримтжуулж, туршиж үзэх явдал юм.

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