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

Эргэлтийн тэнхлэг бүхий объектын хянах камерын гулсагч. RoboClaw DC мотор хянагч ба Arduino дээр 3D хэвлэсэн ба барьсан: 5 алхам (зурагтай)
Эргэлтийн тэнхлэг бүхий объектын хянах камерын гулсагч. RoboClaw DC мотор хянагч ба Arduino дээр 3D хэвлэсэн ба барьсан: 5 алхам (зурагтай)

Видео: Эргэлтийн тэнхлэг бүхий объектын хянах камерын гулсагч. RoboClaw DC мотор хянагч ба Arduino дээр 3D хэвлэсэн ба барьсан: 5 алхам (зурагтай)

Видео: Эргэлтийн тэнхлэг бүхий объектын хянах камерын гулсагч. RoboClaw DC мотор хянагч ба Arduino дээр 3D хэвлэсэн ба барьсан: 5 алхам (зурагтай)
Видео: 富裕層御用達 新型アルファード TOYOTA ALPHARD Z 内装 外装 装備 2024, Долдугаар сарын
Anonim
Image
Image
Тоног төхөөрөмжийн дизайн + бүтээх + 3D хэвлэх
Тоног төхөөрөмжийн дизайн + бүтээх + 3D хэвлэх

Fusion 360 төслүүд »

Видео бүтээх сонирхлоо DIY-тэй хослуулахаас хойш энэ төсөл бол миний хамгийн дуртай төслүүдийн нэг юм. Би объектыг ажиглахын тулд гүйлгэж байхдаа камер дэлгэцээр хөдөлж буй киноны кинонуудыг үргэлж харж, дуурайхыг хүсч байсан. Энэ нь 2D видеонд маш сонирхолтой гүнзгий эффект нэмдэг. Холливудын тоног төхөөрөмжид хэдэн мянган доллар зарцуулахгүйгээр үүнийг давтахыг хүсч, би өөрөө ийм камерны гулсагч хийхээр шийдсэн юм.

Энэхүү төслийг бүхэлд нь 3D хэвлэх боломжтой хэсгүүд дээр бүтээсэн бөгөөд код нь алдартай Arduino самбар дээр ажилладаг. CAD файлууд болон код гэх мэт бүх төслийн файлуудыг доороос татаж авах боломжтой.

CAD/ 3D хэвлэх файлуудыг эндээс авах боломжтой

Arduino Code файлыг эндээс авах боломжтой

Төсөл нь 2 араатай сойзтой тогтмол гүйдлийн мотор ба Basic Micro Roboclaw Motor хянагчийн эргэн тойронд хийгддэг. Энэхүү мотор хянагч нь сойзтой DC моторыг гайхалтай байрлалын нарийвчлал, тонн эргүүлэх хүч, 360 градус эргүүлэх чадвартай дээд зэргийн төрлийн servo болгон хувиргаж чаддаг. Энэ тухай дараа дэлгэрэнгүй.

Үргэлжлүүлэхээсээ өмнө энд холбосон видео хичээлийг эхлээд үзээрэй. Энэхүү заавар нь танд энэ төслийг хэрхэн яаж хийх талаар ерөнхий ойлголт өгөх бөгөөд энэхүү зааварчилгааны гарын авлага нь би энэ төслийг хэрхэн бүтээсэн талаар илүү дэлгэрэнгүй авч үзэх болно.

Материалууд-

  • Бүх эд ангиудыг холбоход ашигладаг 2х 1 метрийн урттай m10 урсгалтай саваа
  • Эд ангиудыг урсгалтай саваагаар холбох 8х M10 самар
  • Гулсагчийг гулгахад зориулагдсан 2х 95 см урт 8мм гөлгөр ган саваа
  • Төмөр бариул дээр жигд гулсах гулсагч 4x lm8uu холхивч
  • Хөдөлгүүрийг бэхлэх зориулалттай 4х 10мм урттай м3 самар
  • Эргэлтийн тэнхлэгт 2 х скейтбордын холхивч (22мм гадна диаметр, 8мм дотоод диаметр)
  • Сул зогсолтын талд 1х15 мм хэмжээтэй холхивч
  • 1х 4см урттай m4 боолт m4 цоож самартай, сул зогсолтыг 3d хэвлэсэн хэсэгт бэхлэх зориулалттай.
  • Гулсагч моторын 4мм дотоод диаметр бүхий 20 шүдтэй араа. Таны DC мотор хангалттай эргүүлэх хүчээр тоноглогдсон байх ёстой тул яг дамар нь тийм ч чухал биш юм. Энэ нь таны бүстэй ижил давирхай байгаа эсэхийг шалгаарай
  • 2 метрийн урттай GT2 бүс. Дахин хэлэхэд та дамрынхаа шүдтэй таарч байвал ямар ч бүс хэрэглэж болно.

Электроник

  • 2 * Шифрлэгдсэн DC мотор кодлогчтой (нэг нь хажуугийн хөдөлгөөнийг хянадаг бол нөгөө нь эргэлтийн тэнхлэгийг хянадаг). Миний хэрэглэж байсан нэгийг энд оруулав. Энэ талаар дэлгэрэнгүй мэдээллийг гарын авлагын Электроникийн хэсгээс авах боломжтой
  • RoboClaw DC мотор хянагч. (Би 15Amp хос хянагч ашигласан, учир нь энэ нь хоёр моторыг нэг хянагчаар удирдах боломжийг надад олгосон юм)
  • Ямар ч Arduino. Би Arduino UNO ашигладаг байсан
  • Батерей/ Эрчим хүчний эх үүсвэр. (Би 7.4V 2 эсийн LiPo батерей ашигласан)
  • Дэлгэц (Цэсийг харуулахын тулд. U8G -тэй нийцтэй ямар ч дэлгэц ажиллах болно, би энэ 1.3 инчийн OLED дэлгэцийг ашигласан)
  • Rotatry кодлогч (Цэс дэх сонголтуудыг удирдах, тохируулах зориулалттай)
  • Физик товчлуур (гулсагчийн хөдөлгөөнийг идэвхжүүлэх зориулалттай)

Алхам 1: Тоног төхөөрөмжийн дизайн + Бүтээх + 3D хэвлэх

Электроник
Электроник

Дараа нь электроник руу шилжье. Электроник бол энэ төсөл маш уян хатан байдаг.

Энэ төслийн гол цөм болох DC сойзтой 2 мотороос эхэлье.

Би хэд хэдэн шалтгааны улмаас сойзтой DC мотор сонгосон.

  1. Сойзтой мотор нь stepper мотортой харьцуулахад утсыг ажиллуулахад илүү хялбар байдаг
  2. Сойзтой DC мотор нь тогтмол гүйдлийн хөдөлгүүрээс хамаагүй хөнгөн бөгөөд энэ нь эргэлтийн тэнхлэгт хөдөлгүүрт чухал ач холбогдолтой бөгөөд учир нь хөдөлгүүр нь камераар хажуу тийш хөдөлдөг бөгөөд үүнийг аль болох хөнгөн болгох нь камерын үндсэн гулсагч хөдөлгүүр дээр хэт ачаалал өгөхөөс урьдчилан сэргийлэхэд чухал ач холбогдолтой юм.

Би энэ DC моторыг сонгосон. Энэхүү мотор нь камерын ийм хүнд ачааг хөдөлгөхөд шаардлагатай маш их эргэлтийг надад өгсөн. Цаашилбал, өндөр араа нь оргил эргэлтийн хурд нь удаан байсан бөгөөд энэ нь би илүү удаан хөдөлгөөн хийх боломжтой гэсэн үг бөгөөд гаралтын босоо амыг 360 градус эргүүлэхэд хөдөлгүүрийн кодлогч 341.2 гэсэн утгатай тул өндөр араа нь байрлалын нарийвчлалыг дээшлүүлдэг.

Энэ нь биднийг RoboClaw хөдөлгөөн хянагч руу авчирдаг. Roboclaw моторын хос DC мотор хянагч нь таны Arduino -аас энгийн кодын командыг ашиглан энгийн зааварчилгааг авч, моторыг зориулалтын дагуу ажиллуулахын тулд бүх хүнд боловсруулалт, цахилгаан дамжуулалтыг хийдэг. Arduino нь PWM, аналог хүчдэл, энгийн цуваа эсвэл пакет цувралаар дохиог Roboclaw руу илгээх боломжтой. Пакет сериал бол байршлыг хянахад шаардлагатай мэдээллийг Робоклаваас буцааж авах боломжийг олгодог тул явах хамгийн сайн арга юм. Би дараагийн алхамд (програмчлал) Roboclaw -ийн програм хангамж/програмчлалын хэсэгт илүү гүнзгий орох болно.

Үндсэндээ Roboclaw нь RoboClaw -ийн байрлалыг хянах чадвартай учраас DC сойзтой моторыг кодлогчтой өөрчилж болно. Гэсэн хэдий ч уламжлалт servo -ээс ялгаатай нь одоо таны сойзтой DC мотор нь илүү их эргэлт, илүү өндөр мотортой тул байрлалын нарийвчлал сайтай байдаг бөгөөд хамгийн чухал нь таны DC мотор 360 градусаар тасралтгүй эргэх чадвартай бөгөөд аль нь ч үүнийг хийж чадахгүй.

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

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

Алхам 3: Камерын гулсагчийг програмчлах

Камерын гулсагчийг програмчлах
Камерын гулсагчийг програмчлах
Камерын гулсагчийг програмчлах
Камерын гулсагчийг програмчлах

Кодлох нь энэ төслийн хамгийн хэцүү сорилт байсан. Анхнаасаа би гулсагчийг дэлгэцээс удирдах боломжтой байхыг хүсч байсан. Энэ төслийг аль болох олон дэлгэцтэй нийцүүлэхийн тулд Arduino -д зориулсан U8Glib номын санг ашиглах шаардлагатай болсон. Энэхүү номын сан нь 32 гаруй дэлгэцийг дэмждэг. Гэсэн хэдий ч U8Glib номын сан нь дэлгэц дээрх цэсийг зурахдаа зургийн давталт ашигласан бөгөөд энэ нь камерын өнцгийг тооцоолох үйл ажиллагаанд шаардагдах камерын байрлалын талаархи мэдээллийг нэгэн зэрэг цуглуулах Arduino -ийн чадвартай зөрчилдөж байгаа юм.). U8Glib2 нь бүтэн хуудасны буфер сонголт гэж нэрлэгддэг зүйлийг ашиглах замаар зургийн давталтын өөр хувилбартай боловч номын сан нь хэт их санах ой зарцуулсан бөгөөд Arduino Uno -ийн санах ойн хязгаарлалтыг харгалзан кодын бусад хэсгийг багтаахад хэцүү болгосон. Энэ нь би U8G -тэй гацсан байсан бөгөөд гулсагч хөдөлж, Arduino нь Roboclaw -аас байрлалын мэдээлэл цуглуулах шаардлагатай болсон үед дэлгэцийг шинэчлэхээс урьдчилан сэргийлэх замаар асуудлыг шийдвэрлэх шаардлагатай болсон гэсэн үг юм. Дэд цэс рүү орсны дараа би зургийн гогцоонд орох тул гулсагчийг цэсийн циклээс гадагш хөдөлгөж эхлүүлэхийн тулд гулсагчийг ажиллуулахаас өөр аргагүй болсон. Би мөн тусдаа физик товчлуураар гулсагчийн хөдөлгөөнийг идэвхжүүлж энэ асуудлыг тойрч гарсан.

Дараа нь эргэлтийг хянах элементийн талаар ярилцъя. Энэ хэсгийг нэгтгэх нь маш төвөгтэй мэт боловч үнэндээ маш энгийн. Үүний хэрэгжилт нь миний Arduino код доторх 'motor ()' функцын дор байна. Эхний алхам бол 2 хэмжээст сүлжээ хийж, хянахыг хүсч буй объектоо хаана байрлуулахаа шийдэх явдал юм. Үүний үндсэн дээр та одоогийн байршилдаа гурвалжин зурж болно. Та одоогийн байршлаа моторын кодлогч утгаас авах боломжтой. Хэрэв та хянаж буй объектын байршлыг см/мм -ээр тохируулахыг хүсвэл кодлогчын утгыг см/мм -ийн утга руу хөрвүүлэх шаардлагатай болно. Үүнийг камерын гулсагчийг 1 см -ээр хөдөлгөж, кодлогчийн утгын өсөлтийг хэмжих замаар л хийж болно. Та энэ утгыг encoder_mm хувьсагчийн доор кодын дээд хэсэгт оруулах боломжтой.

Цааш үргэлжлүүлэхийн тулд бид урвуу тангенс функцийг ашиглан камерыг таны объект руу чиглүүлэх өнцгийг олж авах болно. Урвуу тангенс нь гурвалжны эсрэг ба зэргэлдээ талыг авдаг. Гурвалжны эсрэг тал нь таны гулсагчнаас объект хүртэлх зайтай тул хэзээ ч өөрчлөгдөхгүй. Гэсэн хэдий ч камерын гулсагчийн хажуу тал өөрчлөгддөг. Энэ зэргэлдээ талыг тухайн объектын x байрлалыг авч, одоогийн байрлалаа хасах замаар тооцоолж болно. Слайдер нь хөдөлгөөний хүрээний дагуу шилжих тусам кодлогчын утга дээр Arduino -г шинэчлэх болно. Arduino нь энэхүү кодлогчийн утгыг см/мм х байрлалын утганд дахин дахин хөрвүүлж, хажуугийн уртыг тооцоолж, эцэст нь объект руу чиглүүлэхийн тулд камерын өнцгийг үргэлж тооцоолох ёстой.

Одоо манай Arduino камерын өнцгийг динамикаар боловсруулж байгаа тул бид энэ өнцгийг эргүүлэх мотор руу шилжих байрлалын утга болгон хувиргах ажлыг хийж чадна. Энэ нь RoboClaw -ийн энэ төслийн хамгийн том онцлог шинж чанар юм. Roboclaw -д байр суурийн утгыг өгснөөр энэ нь үндсэндээ DC сойзтой моторыг servo шиг ажиллахад хүргэдэг. Манай хөдөлгүүр нь servo -ээс ялгаатай нь илүү их эргэлт, илүү өндөр нарийвчлалтай бөгөөд 360 градус эргүүлэх чадвартай.

Roboclaw -ийг тодорхой байрлалд шилжүүлэх Arduino код дараах байдалтай байна.

roboclaw. SpeedAccelDeccelPositionM1 (хаяг, "хурд", "хурдатгал", "удаашрах", "таны очихыг хүссэн байрлал", 1);

Моторын байрлалын утгыг камерын өнцөгт тааруулахын тулд камерын хавтанг 180 градусаар гараар хөдөлгөх шаардлагатай болно. Камерын хавтанг 0 градусаас 180 градус руу шилжүүлэхээс кодлогчын утга хэр өөрчлөгдсөнийг харна уу. Энэ нь танд кодлогчийн хүрээг өгөх болно. Та энэ хүрээг Arduino камерын өнцгийг байршлын утгатай харьцуулсан хөдөлгүүрийн функцэд оруулах боломжтой. Үүнийг кодонд тайлбарласан тул олоход хялбар байх ёстой *****

RoboClaw надад хурдатгал, удаашрал, PID утга зэрэг бусад хүчин зүйлсийг тааруулах чадварыг өгсөн. Энэ нь эргэлтийн тэнхлэгийн хөдөлгөөнийг зөөлрүүлэх боломжийг олгосон бөгөөд ялангуяа өнцгийн өөрчлөлт маш бага байсан бөгөөд "D" PID утга өндөргүй эргэлт нэмэгдсэн. Та мөн Roboclaw-ийн ширээний програмаар дамжуулан PID утгуудаа автоматаар тохируулах боломжтой.

Алхам 4: Камерын гулсагчийг ажиллуулах

Камерын гулсагчийг ажиллуулах
Камерын гулсагчийг ажиллуулах

Одоо бид гулсагчийг ажиллуулж хөгжилтэй хэсэг рүүгээ орлоо Цэс нь 4 үндсэн табтай. Дээд таб нь хурдыг хянах зориулалттай. Цэсийн дунд эгнээнд хянагдсан объектын X & Y байрлалыг мм -ээр тохируулах, мөн гулсагчийг манай объектыг эргүүлэх, хянах, эсвэл эргүүлэхгүйгээр энгийн гулсах хөдөлгөөн хийхийг хүсч байгаа эсэхийг тохируулах табууд орно. Эргэдэг кодлогчыг мушгих нь цэсийн янз бүрийн сонголтыг удирдах боломжийг бидэнд олгодог. Аль нэг сонголтыг тохируулахын тулд сонголт руу очоод эргэдэг кодлогч дээр дарна уу. Нэг дарсан бол эргэлтэт кодлогчыг эргүүлэх нь цэсийг цэвэрлэхээс илүү тодруулсан дэд цэсийн утгыг өөрчлөх болно. Хүссэн утгад хүрсний дараа та эргэлтэт кодлогч дээр дахин дарж болно. Одоо та үндсэн цэс рүү буцаж очоод өөр өөр табуудын хооронд шилжих боломжтой. Та бэлэн болмогц дэлгэцийн дэргэдэх go товчлуурыг дарахад л гулсагч бүх зүйлийг хийх болно!

Камерын гулсагчийг ашиглаж дууссаны дараа камер нь "гэрийн" байрлалд байгаа эсэхийг шалгаарай. Үүний шалтгаан нь мотор кодлогч нь үнэмлэхүй кодлогч биш бөгөөд энэ нь Roboclaw/Arduino кодлогч хаана байгааг хэлж чадахгүй гэсэн үг юм. Тэд кодлогч хамгийн сүүлд ассанаас хойш хэр их өөрчлөгдсөнийг л хэлж чадна. Энэ нь та камерынхаа гулсагчийг унтраах үед гулсагч нь гулсагчийн байрлалыг "мартаж", кодлогчоо 0 болгож тохируулна гэсэн үг юм. Тиймээс, хэрэв та гулсагчаа нөгөө талаас нь унтраавал асаахад гулсагч ажиллах болно. ирмэгээс цааш хөдөлж, гулсагчийн хананд унахыг хичээ. Энэхүү кодлогчийн зан байдал нь камерын гулсах хөдөлгөөн бүрийн дараа камер эргэх өнцгөө дахин тохируулдаг. Эргэлтийн тэнхлэг нь хөдөлгөөнийхөө төгсгөлд сүйрэхээс өөрийгөө хамгаалж байна.

Та үүнийг ачаалах үед зогсоох цэгүүд болон байршуулах процедурыг нэмж засах боломжтой. Үүнийг 3d принтер ашигладаг.

Алхам 5: Эцсийн бодол + Ирээдүйн сайжруулалт

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

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

Эцэст нь хэрэв би 2.0 хувилбарыг хийсэн бол миний хийх зарим сайжруулалтууд энд байна

  1. Эргэдэг тэнхлэгийн хөдөлгүүрийн арааны харьцаа өндөр. Илүү өндөр хурдны харьцаа нь би илүү нарийвчлалтай жижиг хөдөлгөөн хийж чадна гэсэн үг юм. Ялангуяа камер нь таны объектоос хол байгаа бөгөөд камерын өнцөг маш удаан өөрчлөгдөж байгаа үед энэ нь маш чухал юм. Одоогийн байдлаар миний мотор хэт өндөр чиглээгүй байгаа бөгөөд энэ нь камерын гулсагч хэт удаан ажиллах эсвэл эргэлтийн өнцгийн өөрчлөлт маш бага байх үед бага зэрэг хөдлөхөд хүргэж болзошгүй юм. Өндөр 'D' PID утгыг нэмсэн нь үүнээс ангижрахад тусалсан боловч объектын нарийвчлалыг бага зэрэг бууруулсан.
  2. Модуль урт. Энэ бол маш хол зорилго боловч камерын гулсагч нь модульчлагдсан байх бөгөөд энэ нь та камерыг гулсуулахын тулд илүү урт урттай замыг хялбархан хавсаргаж өгөхийг хүсч байна. Энэ нь маш хэцүү, учир нь хоёр замыг хоёуланг нь төгс тохируулж, туузны системийг хэрхэн яаж ажиллуулахаа олж мэдэх шаардлагатай болно. Гэсэн хэдий ч энэ нь гайхалтай шинэчлэлт байх болно!
  3. Гаалийн хөдөлгөөн хийх товчлуур. Энэхүү камерын гулсагч дээр түлхүүр фрэймийн хөдөлгөөний тухай ойлголтыг оруулахыг хүсч байна. Keyframing бол видео болон аудио үйлдвэрлэлд ихэвчлэн хэрэглэгддэг техник юм. Энэ нь камер байрлал руу явж, хүлээж, дараа нь өөр байрлалд өөр хурдаар шилжих, хүлээх, дараа нь гуравдахь байрлал руу шилжих гэх мэт шугаман бус камерын хөдөлгөөнийг идэвхжүүлнэ.
  4. Bluetooth/ утасгүй утасны хяналт. Камерын гулсагчийн параметрүүдийг утасгүй тохируулах, камерын гулсагчийг байршилд хүрэхэд хэцүү газарт байрлуулах нь үнэхээр сайхан байх болно. Утасны аппликейшн нь сүүлийн догол мөрөнд дурдсанчлан түлхүүр фрэймийг нэгтгэх боломжийг нээж өгч магадгүй юм.

Энэ гарын авлагад зориулагдсан болно. Доорх сэтгэгдлүүдийн хэсэгт ямар ч асуулт асууж болно.

Илүү их контент, электроникийн хичээлийн талаар та миний YouTube сувгийг эндээс үзэх боломжтой.

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