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


Төслийн тойм
Энэхүү төсөлд би Arduino дээр суурилсан DIY робот болох Отто роботыг програмчлах аргыг танд үзүүлэхийг хүсч байна. YAKINDU Statechart Tools-ийг ашиглан (арилжааны бус үнэ төлбөргүй) бид төрийн машиныг ашиглан Отто роботын зан байдлыг графикаар загварчилж, C/C ++ кодыг үүсгэж болно. Бид тэдний нэг жишээг ашиглан зан авирыг өөрийн хүссэн хэмжээнд хүргэх болно.
Төрийн машин гэж юу болохыг мэддэггүй, Википедиагийн ээдрээтэй нийтлэлийг тоймлохыг хүсдэггүй хүмүүст зориулж жижигхэн тайлбарыг энд оруулав.
Төрийн машин бол зүгээр л зангилаа ба тэдгээр зангилааны хоорондох зам юм. Танд эхлэх зангилаа байгаа бөгөөд үйл явдлуудаар дүрслэх боломжтой хамгаалагчдаасаа хамааран бусад зангилаа руу явах боломжтой. Эдгээр үйл явдлыг төрийн машин өөрөө эсвэл гаднаас (функц гэх мэт) босгодог.
Энэхүү хэрэгсэл нь өөрөө чирэх интерфэйс болон домэйны онцлог хэлийг ашигладаг. Би үүнийг танд зориулах болно, тиймээс та Оттогоо ажиллуулахын тулд тэдний бичиг баримтыг судалж үзэх шаардлагагүй болно. IDE-ийг тохируулах нь тийм ч хэцүү биш, учир нь бүх залгаасууд гэх мэтийг автоматаар суулгах ёстой.
Хангамж
Отто робот эсвэл Зови робот
Эдгээр роботууд хоёулаа ижилхэн ажилладаг бөгөөд ижил API ашигладаг. Отто робот бол DIY робот бөгөөд эд анги нь онлайнаар байрладаг бөгөөд хэрэв танд ийм принтер байгаа бол 3D принтерээр хэвлэхэд бэлэн болно. Өөр хувилбар бол Zowi робот бөгөөд үүнийг онлайнаар худалдаж аваад ашиглахад бэлэн болно.
YAKINDU Statechart хэрэгсэл
Төрийн машиныг загварчлахад бидний ашиглах хэрэгсэл. Та 30 хоногийн туршилтаар эхэлж, дараа нь арилжааны бус зорилгоор үнэгүй лиценз авах боломжтой.
Arduino залгаасын Eclipse C ++ IDE
IDE нь бидний хувьд үүнийг хийдэг тул бид үүнийг гараар татаж авах шаардлагагүй болно. Үүнийг энд жагсаах нь сайхан байх болно гэж би одоо хүртэл бодож байсан.
Алхам 1: Бүх зүйлийг тохируулах

IDE -ийг суулгасны дараа үүнийг ажиллуулж, компьютерынхаа аль ч хэсэгт ажлын талбарыг тохируулна уу (тохиргоо нь Eclipse -ийг анх удаа ашиглахтай ижил байна). Хөтөлбөрийг бүрэн эхлүүлсний дараа тавтай морилно уу хуудсыг дарж 'Файл -> Шинэ -> Жишээ …' дээр дараад 'YAKINDU Statechart Examples' -ийг сонгоод хэсэг хүлээгээд "Embedded Systems -> Zowi (C ++) хайна уу.) "жишээ.
ЧУХАЛ: Баруун дээд буланд байрлах 'Dependencies Install …' товчийг дарна уу! Энэ нь танд зориулж бүх зүйлийг суулгадаг тул номын сан, залгаас гэх мэт зүйлсийн талаар санаа зовох хэрэггүй болно. Жишээг татаж аваад "Embedded Systems -> Zowi (C ++)" жишээн дээрх зааврыг дагаж дараа дараагийн алхамаа үргэлжлүүлнэ үү.
Алхам 2: Оттотой хэрхэн харилцах талаар ойлгох
". Sct" файл руу ороод төрийн машиныг өөрийн хүссэнээр засаарай. Баруун талд байгаа бүх зүйлийг агуулсан цэс байна. Бид зөвхөн муж улсууд болон шилжилтийг л сонирхдог.
Зураг дээр би шилжилтийн талаар зарим зүйл бичсэнийг харж болно. "After X s" гэдэг нь өөрөө өөрийгөө тайлбарладаг бөгөөд "үргэлж" гэдэг нь муж улсаас кодоо дуусгасны дараа шууд тэнд очдог гэсэн үг юм. "Оролт /" гэдэг нь кодыг мужид орсны дараа шууд гүйцэтгэх ёстой гэсэн үг юм.
IDE нь төрийн машиныг Arduino -д нийцсэн C ++ дээр хөрвүүлдэг. Оттогийн онцлогийг ашиглахын тулд бид интерфэйс рүү нэвтрэхийн тулд бага зэрэг ажил хийх ёстой.
Дараах түлхүүр үгийг төрийн машинд ашиглах зүйлийг тодорхойлоход ашиглаж болно.
утгыг хадгалдаг, өөрчлөх боломжгүй тогтмолууд
хэмжигдэхүүнүүд байдаг бөгөөд тэдгээрийг өөрчлөх боломжтой
хэрэгжүүлэх C ++ виртуал аргуудад бий болох үйлдлүүд
интерфэйс:
const PIN_YL: integer = 2 const PIN_YR: integer = 3 const PIN_RL: integer = 4 const PIN_RR: integer = 5 const sound: integer = 2 const mouth_heart: integer = 13 const mouth_happyOpen: integer = 11 үйлдэл zowi_init (YL: бүхэл тоо, YR: integer, RL: integer, RR: integer) ажиллагаа zowi_home () ажиллагаа zowi_putMouth (mouthType: integer) үйлдэл zowi_sing (songName: integer) үйлдэл zowi_walk (алхам: бодит, T: бүхэл тоо, dir: бүхэл тоо) үйлдэл zowi_shakeLeg ()
Мэргэжлийн зөвлөгөө: Хэрэв та ямар нэг газар юу оруулахаа мэдэхгүй байгаа эсвэл алдаа гарсан мэт санагдаж байвал "ctrl+space" товчлуурыг дарж юу оруулах талаар зөвлөгөө аваарай.
Нэмж дурдахад та жишээнүүдийг анхаарч үзэх хэрэгтэй, тэд тэнд бас кодтой байна! Та мөн тэдгээрийг загвар болгон засварлахын тулд бүтэц болгон ашиглаж болно, энэ бол бидний одоогоор сонирхож буй цорын ганц хэсэг юм.
Алхам 3: Цоорхойг нөхөх

Загвар дахь зүйлийг өөрчилсний дараа та "zowiSCT.sgen -> Кодын олдвор үүсгэх" дээр хулганы баруун товчийг дарж болно. Энэ нь C ++ хэл дээрх виртуал функцийг бий болгодог бөгөөд үүнийг төрийн машинд "src-gen" фолдерт зарладаг бөгөөд үүнийг бид ердийн C ++ ашиглан хэрэгжүүлдэг.
Оттогоос бидний хүссэн функцийг авахын тулд эдгээр хоёр файлыг "src" фолдерт үүсгээрэй.
Эхлээд Impl.h
#ifndef SRC_IMPL_H_
#define SRC_IMPL_H_ #include "../src-gen/ZowiSCT.h" class Impl: public ZowiSCT:: DefaultSCI_OCB {public: Impl (); виртуал ~ Impl (); хүчингүй zowi_init (sc_integer YL, sc_integer YR, sc_integer RL, sc_integer RR); хүчингүй zowi_home (); vow zowi_putMouth (sc_integer mouthType); vow zowi_sing (sc_integer songName); vow zowi_walk (sc_real steps, sc_integer T, sc_integer dir); vow zowi_shakeLeg (); }; #endif / * SRC_IMPL_H_ * /
Дараа нь Impl.cpp
#"Impl.h" -ийг оруулна уу
#include "../Zowi/Zowi.h" Zowi zowi = шинэ Zowi (); Impl:: Impl () {} Impl:: ~ Impl () {} хүчингүй Impl:: zowi_home () {zowi.home (); } хүчингүй Impl:: zowi_init (sc_integer YL, sc_integer YR, sc_integer RL, sc_integer RR) {zowi.init (YL, YR, RL, RR); } хүчингүй Impl:: zowi_putMouth (sc_integer mouthType) {zowi.putMouth (mouthType); } хүчингүй Impl:: zowi_sing (sc_integer songName) {zowi.sing (songName); } void Impl:: zowi_walk (sc_real steps, sc_integer T, sc_integer dir) {zowi.walk (алхам, T, dir); } хүчингүй Impl:: zowi_shakeLeg () {zowi.shakeLeg (); }
Алхам 4: Отто бүжиг хийх
Бүтээгдэхүүндээ сэтгэл хангалуун байгаа бол зүүн дээд буланд байгаа алх дээр дараад процесс дуусахыг хүлээнэ үү. Дараа нь алхны баруун талд байгаа ногоон сумыг дарж Отто бүжиглэж буйгаа үзээрэй!
Хэрэв та хүсвэл YAKINDU Statechart Tools -ийн бусад жишээг үзээрэй
Зөвлөмж болгож буй:
Машинтай ухаалаг хогийн сав: 5 алхам

Автомашинтай ухаалаг хогийн сав: Энэ бол хэт авианы мэдрэгч, машин, товчлууртай ухаалаг хогийн сав тул та үүнийг дарахад урагшаа хөдөлдөг. Энэхүү төслийг https://www.instructables.com/id/DIY-Smart-Dustbin-With-Arduino/ -аас санаа авсан болно. Энд миний хийсэн хэд хэдэн хэсгүүд байна: 4 дугуй
Телевизор, дизель машинтай компьютер: 5 алхам

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

Төрийн машиныг ашиглах Arduino HMI: Энэхүү зааварчилгаанд би YAKINDU Statechart хэрэгслүүдийг ашиглан Arduino -д зориулсан 16х2 хэмжээтэй LCD товчлуурын бамбай ашиглан энгийн бөгөөд өргөтгөх боломжтой HMI -ийг хэрхэн ашиглахыг харуулах болно. Хүний цогц машин
Төрийн машин ба SPI өргөтгөгчтэй Arduino дээр олон ажил хийх: 3 алхам

Төрийн машин ба SPU өргөтгөгчтэй Arduino дээр олон ажил хийх: Өнгөрсөн долоо хоногт би ардуино ашиглан салют буудуулах системийг бий болгохыг хүсч байсан. Түймрийг унтраахад 64 орчим гаралт шаардлагатай байв. Үүнийг хийх нэг арга бол IC өргөтгөгчийг ашиглах явдал юм. Тиймээс 2 шийдэл боломжтой:- I2C өргөтгөгч, гэхдээ та үүнийг хийхдээ инвертер хэрэгтэй болно
Alexa Dragonboard, Android програм ба кофены машинтай хэрхэн харьцах вэ: 7 алхам

Alexa Dragonboard, Android програм ба кофены машинтай хэрхэн харьцах вэ: Энэхүү заавар нь кофены машиныг Alexa Dragonboard болон Android програмтай холбох, нэгтгэх, ашиглахад шаардлагатай алхмуудыг хангаж өгдөг