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

Гэртээ ганцаараа' хулгай дээрэм хийх/ Attiny13 ашиглан Steppermotor болон Servo жолоодох: 5 алхам
Гэртээ ганцаараа' хулгай дээрэм хийх/ Attiny13 ашиглан Steppermotor болон Servo жолоодох: 5 алхам

Видео: Гэртээ ганцаараа' хулгай дээрэм хийх/ Attiny13 ашиглан Steppermotor болон Servo жолоодох: 5 алхам

Видео: Гэртээ ганцаараа' хулгай дээрэм хийх/ Attiny13 ашиглан Steppermotor болон Servo жолоодох: 5 алхам
Видео: ГЭРТЭЭ ГАНЦААРАА - АНЗААРААГҮЙ ЗҮЙЛҮҮД 2024, Арваннэгдүгээр
Anonim
'Гэртээ ганцаараа' хулгай дээрэм хийх/ Attiny13 ашиглан Steppermotor болон Servo жолоодоорой
'Гэртээ ганцаараа' хулгай дээрэм хийх/ Attiny13 ашиглан Steppermotor болон Servo жолоодоорой
'Гэртээ ганцаараа' хулгай дээрэм хийх/ Attiny13 ашиглан Steppermotor болон Servo жолоодоорой
'Гэртээ ганцаараа' хулгай дээрэм хийх/ Attiny13 ашиглан Steppermotor болон Servo жолоодоорой

Энэ бол миний хийсэн хамгийн хачирхалтай төслүүдийн нэг байж магадгүй юм. Ихэнх хүмүүс "Гэртээ ганцаараа" киног санаж байх болно. МакКаули Калкин хулгайчдад өөрийгөө ганцаараа биш юм шиг дүр үзүүлэхийг оролдож, бичлэгийн тоглуулагч дээр картон дүрс хийж, өөр картон дүрс дээр утас тавиад хүмүүсийг дуурайж чаддаг. Би ихэвчлэн гэрээсээ хол байдаг тул байшингаа эзгүй хэвээр үлдээх талаар маш их ухамсартай ханддаг. Өмнө нь би "Гэрийн симулятор" номыг хэвлүүлж, санамсаргүй байдлаар гэрлийг тодорхой хэв маягаар унтраасан байдаг. хэн нэгэн байгаа юм шиг харагдаж байна. Би 'Хуурамч ТВ' нэмсэн нь зурагт тоглож байгаа юм шиг харагдаж байна. Эдгээр нь бүгд тусалдаг, гэхдээ хэрвээ оршихуйг дуурайх юм бол бодит хөдөлгөөнөөс илүү сайн зүйл байхгүй. Тиймээс надад хөдлөх зүйл хэрэгтэй байсан бөгөөд надад бичлэгийн тоглуулагч байхгүй байсан бөгөөд намайг хол байхад ажиллах боломжтой зүйлийг хүсч байсан тул надад илүү хатуу төлөв хэрэгтэй байв. Үүнийг 90 градус эргүүлэхийн тулд гэрлийг ээлжлэн хаадаг, харин гэрлийг хаадаггүй, би үүнийг хямдхан servo машинаар хийсэн боловч энэ нь хоёр асуудал үүсгэсэн: тэнхлэгт хэт том биш ч гэсэн картон зургийг нэмэхэд хэцүү байсан. Би үүнийг хийсэн. Илүү хүчирхэг servo -ийн үнэ огцом өссөн тул би "Steppermotor" гэж бодож эхлэв. Дулаан шингээгчтэй байсан тул хүнд жинтэй байсан нь хамгийн тохиромжтой мэт санагдаж байв. Steppermotor -ийг эргүүлэх програмыг Arduino дээр хялбархан бичсэн боловч миний картон зургийн хэмжээтэй адил хэмжээтэй байсан тул чирэх нь бага зэрэг асуудал үүсгэсэн хэвээр байв. хүний их бие (ойролцоогоор 80 см урт). Би картоныг чангалж, хүнд болгож, эсвэл жижиг болгох хэрэгтэй болсон. Сүүлийн үед би гэрэл рүү ойртуулж чадсан болохоор хамгийн сайн шийдэл байсан юм шиг санагдаж байсан. Мотор, дамар гэх мэт зүйлүүд миний толгойд орж ирсэн боловч би энэ санаагаа бүрэн орхисонгүй байгаа ч одоогоор картонон зураг дээр жижигхэн шинж чанар нэмж оруулахаар шийдсэн бөгөөд энэ нь хөдөлж буй толгой байв. Миний санаа бол дүрсийг 90 градус эргүүлэх, Тиймээс тэр бүрэн сүүдэрлэж, дараа нь толгой дохив. Энэ бол миний серво дахин орж ирсэн зүйл юм. Би картон дүрсийг эргүүлэхийн тулд бүхэл бүтэн ардуиног золиослохыг хүсээгүй. Контейнер дээр би дэргэдээ байсан Attiny13 -ийг энэ ажлыг яг адилхан хийж чадна гэж таамаглав. Энэ бол Attiny13 -ийн санал болгож буй зүйл юм. Би маш нягт байж чаддаг гэдгээ хүлээн зөвшөөрч байна, учир нь би хяналтаа тогтоохыг хүсч байсан тул тодорхой цаг хугацаанд, тодорхой хугацаанд ажиллахын тулд бүх төрлийн хувилбаруудыг бодож үзсэн. Үүнийг би дээр дурдсан 'Гэрийн симулятор' -аас авсан. Тиймээс би утас эсвэл утасгүй талаар бодож үзсэн боловч дараа нь Attin13 нь Manchestercode -тэй холбоотой хамгийн сайн санаа биш байсан бөгөөд надад хүлээн авагчийн зүү хэрэгтэй байсан бөгөөд хямд хүлээн авагчдын мэдрэмтгий чанар тийм ч сайн биш байсан. Тиймээс би зүгээр л арилжааны таймерын унтраалгын талаар аль хэдийн бодож байсан боловч дараа нь би өөрийгөө тэнэг хүн гэдгээ ойлгосон. Энэ нь өөрийн PSU -тэй байх ёстой тул ханын цамхаг авч, гэрийнхээ симулятороос аль хэдийн удирдаж болох алсын унтраалганд хийж яагаад болохгүй гэж.

Хямд үнэтэй ServoA SteppermotorA картон хайрцагAn Attiny13An 8 тээглүүртэй IC залгуур 17 ширхэг цооног бүхий 9 ширхэг туузан хавтан Зарим servo өргөтгөлийн утасA ULN2003A 16 зүү IC сокетA 10 к эсэргүүцэл Хуванцар хайчлах самбар (эсвэл бусад хөнгөн материал) 3 зүү эрэгтэй толгой (servo) 6 зүү эрэгтэй толгой (steppermotor хувьд) наалдамхай тууз (мэдээж)

Нэмэлт: Attiny програмчлах арга

Steppermotor -ийн талаархи ганцхан тайлбар. Би хуучин 55SI-25DAWC ашигладаг, гэхдээ хэрэв та үүнийг худалдаж авах шаардлагатай хэвээр байгаа бол маш хямд steppermotor/драйверын хослол байдаг: 28BYJ-48. Мотор нь 1.50 еврогийн үнэтэй боловч 2 еврогоор та жолоодлогын самбартай ижил мотор авах боломжтой. тиймээс энэ бол сайн наймаа юм

Алхам 1: "Гэртээ ганцаараа" картонон хүн бүтээх

"Гэртээ ганцаараа" картон хүн бүтээх
"Гэртээ ганцаараа" картон хүн бүтээх
"Гэртээ ганцаараа" картон хүн бүтээх
"Гэртээ ганцаараа" картон хүн бүтээх

Хайрцагнаас би 40х20 см, 18х18 хэмжээтэй хэсгийг хайчилж авав. Би хоёр хэсгийг толгой ба их бие болгон холбож, наалдамхай тууз ашиглан хоёр ширхэгийн хооронд багахан зай үлдээсэн боловч наалдамхай туузаар хучсан бөгөөд хүзүүндээ нугас үүсгэв. (Зургууд үүнийг маш тодорхой харуулав) Хуучин хайчлах самбараас би 20 см урт, хагас см орчим зузаан (хавтангийн зузаан), 1.5 см өргөн хэсгийг хайчилж авлаа. 1.5 см нь миний гишгүүрийн тэнхлэгт таарахад хангалттай байв. Хэрэв танд өөр stepper байгаа бол хайчилж авсан хэсэг нь гишгүүрийнхээ тэнхлэгт хангалттай өргөн байгаа эсэхийг шалгаарай. Миний тэнхлэгт тохирох нүхний цооног өрөмдөж дараа нь хуванцарыг картон сууринд наасан. "Хүзүүний" дор картонон хэсгүүдээс би сервондоо зориулж эзэмшигч барьсан. Мэдээжийн хэрэг үүнийг өнцөгт төмрөөр (эсвэл хуванцараар) хийж болно, гэхдээ картон биенд бэхлэхэд жаахан хэцүү байдаг тул би servo -ийг тааруулахын тулд картон ашигласан. Би хайчлах самбараас 11 x 0.6 x 0.6 хэмжээтэй хуванцараар хийсэн servo дээр гараа нэмж, Servo -д хавсаргасан. Дахин хэлэхэд, үүнийг хэрхэн яаж хийхийг харахын тулд миний алхам нь картон дүрс зөөхөд хангалттай хүнд байсан ч эргүүлэх хүч ба эргэлт нь моторыг тойрон алхаж эхлэв. 24 * 11 см хэмжээтэй хайчлах самбар. Би stepper моторыг холбохын тулд хоёр цооног өрөмдсөн бөгөөд хянагчийн хувьд хангалттай зайтай хэвээр байна. Хэдийгээр servo нь 180 градус эргэдэг ч гэсэн би гараа толгойгоо шууд босгосонгүй байрлуулсан. Ингэснээр servo нь 0 байрлал руу буцах үед амархан унадаг

Алхам 2: 'Гэртээ ганцаараа' хянагчийг бүтээх

'Гэртээ ганцаараа' хянагчийг бүтээж байна
'Гэртээ ганцаараа' хянагчийг бүтээж байна
'Гэртээ ганцаараа' хянагчийг бүтээж байна
'Гэртээ ганцаараа' хянагчийг бүтээж байна
'Гэртээ ганцаараа' хянагчийг бүтээж байна
'Гэртээ ганцаараа' хянагчийг бүтээж байна
'Гэртээ ганцаараа' хянагчийг бүтээж байна
'Гэртээ ганцаараа' хянагчийг бүтээж байна

Хянагч нь ULN2003 -т залгагдсан An Attiny13 юм. Хэдийгээр миний хувилбарт би самбарыг бусад төслүүдэд ашиглахад илүү уян хатан болгохын тулд арай илүү тээглүүр ашигласан боловч танд хэрэгтэй цорын ганц толгой бол 3 зүү эрэгтэй servo толгой, 6 зүү эрэгтэй толгой юм.

Алхам 3: "Гэртээ ганцаараа": Програм хангамж

EDIT 2019 Төсөл нь Attiny13 -ийн нэгэн цагт түгээмэл хэрэглэгддэг 'Smeezekitty' цөмийг үндэслэн хийгдсэн болно. MCUDude -ийн одоо ихэвчлэн ашигладаг MicroCore нь delayMicroseconds мэдэгдлийн хувьсагчтай холбоотой асуудалтай байгаа бололтой. Хэрэв та үүнийг ашиглаж байгаа бол "delayMicroseconds (300 + p * (2500 /180))" -г орлуулна уу. "саатал (5);"

Дээрх програм нь миний тусгай stepper -ийг хэрхэн жолоодохыг харуулж байгаа бөгөөд хэрэв танд anotehr stepper байгаа бол PORTB дээр бичигдсэн утгыг өөрчлөх шаардлагатай болж магадгүй юм. Attiny13 нь ой санамж багатай, бас хэт олон тээглүүр өгдөггүй тул програм нь зарим нарийн төвөгтэй байдлыг алддаг. PORTB руу шууд бичих нь зөв, гэхдээ энэ тохиолдолд PB4 ба PB5 дээр "0" гэж бичих болно. PB5 нь тийм ч их асуудал биш боловч та PB4 -ийг ашиглахыг хүсч магадгүй юм. Миний хувьд энэ бол миний servo -ийг тавьсан газар бөгөөд энэ нь үнэхээр асуудал үүсгэдэггүй, учир нь би тэдгээрийг нэгэн зэрэг ашигладаггүй.

Гэсэн хэдий ч, хэрэв та 328 гэх мэт өөр микроконтроллер ашиглахыг хүсч байгаа бол PB4, PB5, PB6, PB7 руу бичихээс зайлсхийхийг хүсч байвал маскыг зөвхөн 0-3 бит рүү бичихийн тулд ашиглаарай. Үүнийг хийх маск бол B00001111.

Хэрэв та 0 ба 2 битүүдийг тохируулахыг хүсвэл дараах байдлаар явна уу.

PORTB = 5 -ийн оронд: PORTB = (PORTB & ~ mask) | гэж бичнэ үү (B00000101);

Үүнийг хэтэрхий нууцлаг гэж үздэг хүмүүсийн хувьд:

Энэ нь юуны түрүүнд NOT масктай PORTB -ийн утга бөгөөд OR -ийн үр дүн бөгөөд бидний бичихийг хүсч буй утга бөгөөд үүнийг PORTB руу буцааж өгдөг.

Тиймээс PORTB = 00010000 гэж бодъё, бид үүнд 00000101 гэж бичихийг хүсч байна, учир нь энэ нь PB4 -ийг арилгах болно.

Гэсэн хэдий ч хэрэв бид тайлбарласны дагуу хийвэл дараахь зүйл болно.

PORTB = (PORTB & 11110000) | 00000101

PORTB = (00010000 & 11110000) | 00000101

PORTB = 00010000 | 00000101

PORTB = 00010101

Бид үнэ цэнээ бичээд PB4 -ийг хадгалсан

Тиймээс, яагаад бид эхлээд AND PORTB-ийг орлуулахын оронд хүссэн үнэ цэнээ шууд OR PORTB хийж болохгүй гэж?

Учир нь энэ нь PB4 ба PB5-ийг хадгалж чадна … гэхдээ аль нэгэнд нь '1' тэмдэг орсон бол PB3-PB0-ийг мөн хэвээр нь хадгална.

Мэдээжийн хэрэг, хэрэв бид үүнийг урвуу гэж тодорхойлсон бол маскыг эргүүлэх шаардлагагүй болно, гэхдээ үүнийг хийх нь ердийн практик юм.

Алхам 4: 'Гэртээ ганцаараа' Хулгайн аюулаас урьдчилан сэргийлэх: Хэрэглэх

Ажиллаж байгааг харахын тулд видеог үзээрэй (-90 градус эргэсэн, харамсалтай байна)

Энэхүү төхөөрөмжийн зорилго нь хөшиг эсвэл наалт дээр хөдлөх сүүдэр шидэх явдал юм. Тиймээс энэ нь хөнгөн хөшигний тусламжтайгаар хамгийн сайн ажилладаг. Төхөөрөмж өөрөө гаднаас харагдахгүй байх ёстой. Үүний цаана гэрлийн эх үүсвэр байгаа эсэхийг шалгаарай, би энэ төхөөрөмжийн ханын хавтангийн тэжээлийг тэжээгддэг сүлжээний залгуур дахь алсын унтраалга руу RF дохио илгээж үүнийг зохицуулдаг, гэхдээ та таймер ашиглаж болно.

Алхам 5: "Гэртээ ганцаараа" юу ч тус болоогүй ……

Энэ видео нь миний том биетэй, энгийн servo -тэй хийсэн өмнөх туршилтуудынхаа нэгийг харуулж байна. Мэдээжийн хэрэг сайн загвар биш юм

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