
Агуулгын хүснэгт:
2025 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2025-01-23 15:00

Энэ бол миний сүүлийн жилийн диссертацийн төслийн хүрээнд ашиглахаар боловсруулсан 28BYJ-48 шатлалт моторын хяналтын схем юм. Би өмнө нь ийм зүйл хийж байгаагүй, олж мэдсэн зүйлээ байршуулах болно гэж бодож байсан. Энэ нь өөр хэн нэгэнд туслах болно гэж найдаж байна!
Энэхүү код нь үндсэндээ stepper моторт аналоги joystick -ийн өнцгийн байрлалыг "хуулбарлах" боломжийг олгодог, өөрөөр хэлбэл хэрэв та джойстикийг урагш түлхвэл мотор "хойд зүг" рүү чиглүүлдэг. джойстикийг баруун тийш түлхэхэд хөдөлгүүр ижил чиглэлд эргэх болно.
Үүнийг хэрэгжүүлэхийн тулд хэрэв та джойстикийг суллах, өөрөөр хэлбэл өнцгийн байрлалгүй бол мотор "гэрийн" чиглэл рүү буцах шаардлагатай болсон. Гэрийн чиглэл зүүн тийш харсан бөгөөд мотор (эсвэл гаралтын босоо аманд бэхэлсэн заагч / төхөөрөмжийг түрээслүүлнэ үү) асаахад энэ чиглэл рүү харсан байх ёстой.
Хангамж
Arduino Uno эсвэл үүнтэй төстэй
талх, холбогч утас сонгох (эрэгтэй, эрэгтэй, эрэгтэй эмэгтэй)
5V цахилгаан хангамж
Аналог джойстик модуль (хамгийн тохиромжтой нь товчлуурын товчлууртай тул "гэрийн" байрлалыг хялбархан амраадаг.
28BYJ-48 stepper мотор, ULN2003 stepper жолооч
Үзэг, цаас, блю-так (эсвэл моторт холбох өөр заагч төхөөрөмж!)
Алхам 1: Алхам 1: Тохируулах
Stepper моторыг stepper драйвертай холбож, тээглүүрийг дараах байдлаар холбоно.
IN1 - Arduino зүү 8
IN2 - Arduino зүү 9
IN3 - Arduino зүү 10
IN4 - Arduino зүү 11
5V тэжээлийн эх үүсвэрээ талхны тавцан дээрх тэжээлийн шугамд холбож, ULN2003 5v оролтыг тэжээлийн төмөр замд холбоно уу. газрын төмөр замыг Arduino дээрээ газартай холбоно уу.
джойстикийн хувьд дараах байдлаар холбоно уу.
Шилжүүлэгч зүү - Arduino pin 2
X тэнхлэг - Arduino A0 (Аналог нь 0)
Y тэнхлэг - Arduino A1
+5V - Arduino 5V гаралт
GND - Arduino GND
Эцэст нь талхны тавцангийнхаа газрыг нөгөө Arduino GND зүүтэй холбоно уу
Алхам 2: Алхам 2: Дүрмийг тайлбарлах
Би татаж аваад ашиглахад зориулж Arduino кодыг бүрэн орууллаа. Гэхдээ энд холбогдох хэсгүүдийг тайлбарлахын тулд би чадах бүхнээ хийх болно.
Энэ кодын онол бол joystick -ийн эзэлж буй орон зайг график болгон хуваасан бөгөөд төвд 0, 0 байх ёстой. Гэсэн хэдий ч джойстик оролт нь төв хэсэгт (ойролцоогоор) 512 дээр байрладаг тул энэ хоёр функцийг даван туулахын тулд X ба Y тэнхлэгээс уншсан утгыг "тэглэх" болно. Таны хэрэглэж буй тэжээлийн хангамжаас хамааран ZeroX ба ZeroY функцуудын утгыг өөрчлөх шаардлагатай болж магадгүй бөгөөд ингэснээр таны joystick нь амарч байхдаа 0 гэсэн найдвартай уншилт өгөх болно.
X, Y утгыг уншихад эхлээд math.h номын сан дахь atan2 () функцийг ашиглан радиан болгон хөрвүүлдэг. Энэ функцийг тайлбарлах нь энэ зааварчилгааны хамрах хүрээнээс гадуур байгаа боловч үүнийг анхаарч үзээрэй - энэ бол геометрийн маш энгийн заль мэх юм!
Эцэст нь радаас илүү градусаар ажилладаг байсан бидний амьдралыг хөнгөвчлөхийн тулд atan2 () -ээр тооцоолсон рад -ийн утгыг градус болгон хөрвүүлдэг.
Циклийн дээд талд кодын жижиг хэсэг байгаа бөгөөд энэ нь "гэрийн" байршлыг шилжүүлэхийн тулд джойстик дээрх түр зуурын товчлуур дээр дарах боломжийг олгодог. Кодыг туршиж үзэхэд энэ нь үнэхээр хэрэгтэй байсан, гэхдээ зарим тохиолдолд энэ нь хэрхэн ашигтай болохыг би харж байгаа тул үүнийг орхисон.
Одоо кодын үндсэн хэсгийг авч үзье! Бид джойстик X, Y координатыг 10м -ийн хоцрогдолоор хоёр удаа тусгаарлаж, дараа нь ижил эсэхийг шалгаснаар эхэлдэг. Жойстик хааяа хааяа нэг уншилт гаргадаг болохыг олж мэдсэн бөгөөд энэ бага зэрэг саатал нь хөдөлгүүрийн эргэлтийг зогсооход хангалттай байсан юм.. Энэ нь бас санаатай оролтод саад болохгүй мэт санагдах хангалттай богино хугацаа юм.
Кодын үлдсэн хэсэг нь өөрөө тайлбартай бөгөөд би үүнийг баримтжуулахын тулд чадах бүхнээ хийсэн; IF -ийн хэд хэдэн мэдэгдэл нь одоогийн джойстикийн өнцгийг хөдөлгүүрийн өнцөгтэй харьцуулж, моторыг тэр өнцөгт шилжүүлнэ. 28BYJ-48 нь нэг градус тутамд 5.689 алхамтай байдаг тул шаардлагатай хөдөлгөөнийг энэ сондгой тоогоор үржүүлдэг.
Хамгийн их тайлбарыг шаарддаг кодын нэг хэсэг бол миний "боодолтой хэргийг" гэж нэрлэсэн зүйл юм. Тэр ч байтугай джойстик ба мотор ойролцоогоор. +175 °, тэгээд дараа нь джойстик -175 ° руу шилжсэн (джойстик дээр ердөө 10 градусын хөдөлгөөн, баруун хойд зүгээс баруун зүг рүү урагш), мотор буруу чиглэлд 350 ° -аар хөдөлнө! Үүнийг тайлбарлахын тулд тусгай хэргийг бичсэн болно.
Мотор ба джойстик нь эсрэг талын шинж тэмдэгтэй эсэхийг шалгах замаар эхэлнэ. Түүнчлэн джойстик ба моторын үнэмлэхүй (өөрөөр хэлбэл эерэг утгууд) нийлбэр 180 ° -аас дээш байгааг шалгадаг.
Хэрэв эдгээр мэдэгдэл хоёулаа үнэн бол функц нь хөдөлгүүрийг цагийн зүүний дагуу (хөдөлгүүрийн утга сөрөг) эсвэл цагийн зүүний эсрэг (хэрэв хөдөлгүүрийн утга эерэг байвал) хөдлөх шаардлагатай эсэхийг шалгадаг.
Хөдөлгүүрийн өнцөг ба джойстик өнцгийн үнэмлэхүй утгыг нэгтгэн 360 ° -аас хасахдаа зайг тодорхойлох боломжтой. Эцэст нь хөдөлгүүрийн өнцгийг (одоо джойстикийн өнцгийг тусгасан болно) шинэчилж байна.
Алхам 3: ДУУСГАА

Тиймээс хийх ёстой зүйл бол кодыг Arduino дээрээ байршуулж ажиллуулах явдал юм! Төсөл хэрхэн ажилладаг талаар сайн мэдэхийн тулд дээрх видеог үзнэ үү. Энэ нь камерын gimbals, робот гар болон бусад олон програмуудад ашигтай байх болно!
Хэрэв та кодыг ашиглаж байгаа бол надад мэдэгдээрэй, хэрэв та кодыг сайжруулах боломжтой зүйл олж харвал таны санал хүсэлтийг сонсоход таатай байна.
Зөвлөмж болгож буй:
Микроконтроллергүй Stepper Motor удирдлагатай Stepper Motor!: 6 алхам

Микроконтроллергүй Stepper Motor удирдлагатай Stepper Motor!: Энэхүү хурдан зааварчилгаанд бид stepper мотор ашиглан энгийн stepper мотор хянагч хийх болно. Энэ төсөл нь нарийн төвөгтэй хэлхээ эсвэл микроконтроллер шаарддаггүй. Тиймээс илүү их зүйлийг нуршилгүй эхлүүлцгээе
Хэт авианы мэдрэгч нь объектуудын байрлалын өөрчлөлтийг авах боломжтой: 3 алхам

Хэт авианы мэдрэгч нь объектын байрлалын өөрчлөлтийг авах боломжтой: Үнэт зүйлээ аюулгүй байлгах нь чухал бөгөөд хэрвээ та бүтэн өдрийн турш цайзаа хамгаалж байвал доголон болно. Бөөрөлзгөнө pi камерыг ашиглан та хоромхон зуур зураг авах боломжтой. Энэхүү гарын авлага нь видео бичлэг хийх эсвэл зураг авахад тань туслах болно
8Ch PWM -ийг импульсийн байрлалын модуляцид хэрхэн хөрвүүлэх вэ: 4 алхам

8Ch PWM-ийг импульсийн байрлалын модуляцид хэрхэн хөрвүүлэх вэ: Бид радио удирдлагатай загвар (эсвэл RC загвар) -д зориулсан радио хүлээн авагчийн гаралтын дохионы 2 форматыг авч үзэх болно. Хүлээн авагчийн уламжлалт бөгөөд хамгийн түгээмэл дохио нь ХОУХ бөгөөд ихэвчлэн ХОУХ нь нэг сувагт нэг утас л шаарддаг. PPM дохиолол одоо хийгдэж байна
Stepper Motor удирдлагатай Stepper Motor - Эргэдэг кодлогч болох Stepper мотор: 11 алхам (зурагтай)

Stepper Motor удирдлагатай Stepper Motor | Эргэдэг кодлогч болох Stepper мотор: Хэд хэдэн алхамтай моторууд хэвтэж байгаад ямар нэгэн зүйл хийхийг хүсч байна уу? Энэхүү зааварт гарын авлагад Arduino микроконтроллер ашиглан stepper моторыг өөр нэг stepper моторын байрлалыг хянахын тулд эргэдэг кодлогч болгон ашиглацгаая. Тиймээс цааш нь хэлэлгүйгээр, явцгаая
DC моторын байрлалын хяналт: 5 алхам

DC моторын байрлалыг хянах: Энэхүү заавар нь моторын байршлыг дотоод сүлжээгээр хэрхэн удирдахыг харуулах болно. Одоо та сүлжээнд холбогдсон ухаалаг гар утас эсвэл iPad ашиглаж, моторын локал вэб серверийн хаягийг эндээс бичиж болно, бид моторын байршлын дискийг эргүүлэх замаар удирдах боломжтой