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

Arduino тоглоомын хянагч нь таны эв нэгдлийн тоглоомд хариу үйлдэл үзүүлдэг гэрэл: 24 алхам
Arduino тоглоомын хянагч нь таны эв нэгдлийн тоглоомд хариу үйлдэл үзүүлдэг гэрэл: 24 алхам

Видео: Arduino тоглоомын хянагч нь таны эв нэгдлийн тоглоомд хариу үйлдэл үзүүлдэг гэрэл: 24 алхам

Видео: Arduino тоглоомын хянагч нь таны эв нэгдлийн тоглоомд хариу үйлдэл үзүүлдэг гэрэл: 24 алхам
Видео: Контроллер температуры мобильного телефона с модулем WIFI DT 06 | Программирование LDmicro-Roboremo 2024, Арваннэгдүгээр
Anonim
Arduino тоглоомын хянагч нь таны эв нэгдлийн тоглоомд гэрэл тусгадаг
Arduino тоглоомын хянагч нь таны эв нэгдлийн тоглоомд гэрэл тусгадаг

Эхлээд би энэ үгийг үгээр бичсэн. Энэ бол би анх удаа зааварчилгааг ашиглаж байгаа зүйл юм, ийм үед би кодыг бичээрэй гэж хэлээрэй.

Энэ төсөлд би 2 ардуиног ашиглан 2 тусдаа бит код ажиллуулдаг, учир нь үүнийг ганцхан програмтай ажиллахад асуудал гардаг.

Эдгээр нь Юно ба Леонардо нар юм

Энэ төслийг хэрэгжүүлэхэд танд хэрэгтэй зүйл бол энэ юм.

· 7 товчлууртай

· 23 холбогч утас

· 1 arduino Leonardo + usb кабель

· 4 резистор · 4 LED

· 1 arduino uno + USB кабель

· 2 талхны самбар

Алхам 1: Хяналтын товчлууруудыг Arduino руу холбоно уу

Хяналтын товчлууруудыг Arduino руу холбоно уу
Хяналтын товчлууруудыг Arduino руу холбоно уу

Энэ хэсгийг холбохын тулд танд юу хэрэгтэй вэ:

· 7 товчлууртай

· 14 холбогч утас

· 1 arduino Leonardo + usb кабель

· Талхны самбар

Товчлуурууд нь холбоход маш энгийн боловч зураг хэлбэрээр харуулахын тулд маш хурдан эмх замбараагүй байдал үүсгэж болзошгүй юм.

· Та эхлээд товчлууруудыг дээрх зураг дээр тэмдэглэсэн байрлалд байрлуулна уу.

· Хоёрдугаарт, та arduino Leonardo дээрх газрын үүрнээс үсрэгчийг талхны хасах эгнээнд холбохыг хүсч байна.

· Одоо та хасах эгнээний аль ч өнцгөөс товчлуурын баруун товчлууртай нийцсэн эгнээ рүү холбогч холбоно уу. энэ нь түүнд хүч өгөх болно.

· Дараа нь та товчлуурынхаа зүүн зүүтэй тохирч байгаа эгнээнээс холбогч утсыг Леонардогийн дижитал оролт руу залгахыг хүсч байна. Энд байгаа товчлууруудын хувьд би 2 - 3 - 4 - 5 - 6 - 7 - 8 үүрийг ашигласан

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

Алхам 2: Ардуино Леонардог кодлох:

Ардуино Леонардог кодлох
Ардуино Леонардог кодлох

Тиймээс би үүнд Леонардог ашиглаж байгаа шалтгаанаа хэлье. Учир нь энэ нь тодорхой чиптэй тул Uno нь компьютерийг USB оролтын төхөөрөмж гэж танихгүй. Яг л гар шиг болно. Энэ нь бидэнд энэ төслийн програмист болох бидний амьдралыг үнэхээр хөнгөвчлөх зүйлийг хийх боломжийг олгодог. Гарын эмуляци. Бид хянагч дээрх товчлуурыг дарж байхдаа гар дээрх зарим товчлуурыг дарж байна гэж компьютерийг хуурах болно.

Одоо би кодыг алхам алхамаар бодож үзэхийг танд хэлэх болно.

Нэгдүгээрт, дээд хэсэгт бид Keyboard.h. Энэ нь бидний кодонд ашиглах гарын функцийг ашиглах боломжийг бидэнд олгоно.

Алхам 3:

Зураг
Зураг

Дараа нь бид дижитал оролтын үүрийг тодорхойлох хэрэгтэй

Товчлуур бүрийн хувьд Леонардо.

Би бас дууриах гэж буй түлхүүрийнхээ нэрээр нэрлэсэн.

Алхам 4:

Зураг
Зураг

Тэндээс бид тохиргооны функц руу ордог. Энэ нь хэлдэг

arduino эхлэхэд юу хийдэг вэ.

Эхлээд бид Serial.begin гэж бичдэг бөгөөд энэ нь цуваа портыг нээж өгөгдлийн хурдыг 9600 bps болгож тохируулна

мөн бид бүгдийг оролт гэж нэрлэсэн голтой гэж тодорхойлдог.

Алхам 5:

Зураг
Зураг

Эцэст нь бид давталтынхаа функцийг бичдэг

товчлуурууд дарагдаж байгаа бөгөөд үүнд хэрхэн хариу өгөхийг arduino -д хэлж байна.

Эхлээд бид Keyboard.begin гэж бичдэг бөгөөд энэ нь гарын функцийг ашиглан биднийг хайх хэрэгтэй гэдгийг arduino -д хэлэх болно

Алхам 6:

Зураг
Зураг
Зураг
Зураг
Зураг
Зураг

Дараа нь товчлуур бүрийн хувьд иймэрхүү байдлаар if/else мэдэгдэл бичдэг

Энд миний arduino -д хэлсэн зүйл бол хэрэв хянагч дээр миний зүүн товчлуур дарагдсан бол компьютер биднийг "а" товчлуур дарж байна гэж бодоорой, хэрэв тийм биш бол бид түлхүүрээ орхисон гэж бодоорой.

Та үндсэндээ кодын блокыг хянагчийнхаа товчлуур бүрт давтана. хувьсагч бүрийн өөрчлөлт болон хувьсагчийн дууриах шаардлагатай түлхүүрүүд

Алхам 7:

Зураг
Зураг

Бидний компьютерт энд дарна гэж хэлсэн түлхүүрүүд нь W - A - S - D юм

Энэ нь компьютер тоглоом болон E-Q-дээрх хөдөлгөөний стандарт бөгөөд энэ кодон дахь "" товчлуурууд нь миний тоглоомыг авах, унтраах, галлахад ашигладаг товчлуурууд юм. Эдгээрийг тоглоом/хянагчдаа илүү тохиромжтой гэж бодож байгаа түлхүүр болгон өөрчилж болно.

Эцэст нь бид arduino -д Keyboard.end -ийг шалгахыг зогсоохыг хэлье

Алхам 8: Эв нэгдэл дэх кодлох хөдөлгөөн:

Эв нэгдэл дэх кодлох хөдөлгөөн
Эв нэгдэл дэх кодлох хөдөлгөөн

Юуны өмнө би үүнийг 2д тоглолтонд зориулж хийж байгаагаа хэлье

Таны үзэх гэж буй жишээнүүд үүнд зориулагдсан болно. Голчлон би вектор2 -ийг хаана ашигладаг вэ гэсэн үг, хэрэв та 3d дээр ажиллаж байгаа бол вектор3 -ийг ашиглах болно. Учир нь та 3d дахь хөдөлгөөний нэмэлт хэмжээсийн талаар санаа зовох хэрэгтэй болно.

Ардуино талд гарны эмуляцыг ашиглах болсон шалтгаан бол Юнитид бидний ашиглаж болох гар дээрх товчлууруудыг таних зориулалттай зүйл байгаа явдал юм.

Хэрэв та төслөө нэгдмэл байдлаар нээвэл Edit -> Project settings -> Input руу орно уу. Та байцаагчдаа оролтын менежерийг асааж байгааг харж болно. Хэрэв та Axes дээр дарвал та одоо бидний хийж байгаа шиг компьютер хянагчдад ашигладаг олон тооны оролтын нэр нээгдэж байгааг харж болно. Бидний ашиглах гэж буй 2 оролт нь хэвтээ ба босоо байдлаар хийгдсэн бөгөөд үүнийг та W-A-S-D гэж таамаглаж байна.

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

Алхам 9:

Зураг
Зураг

Та энэ тоглогчид 2 зүйл өгөхийг хүсч байна. 2d ба

a Rigidbody 2d, тэдгээрийг дээрх зураг шиг болгоорой.

Алхам 10:

Зураг
Зураг

Дараа нь та өөрийн төслийн хавтас руу орж a үүсгэхийг хүсч байна

C# скрипт. Би үүнийг PlayerMovement гэж нэрлэсэн.

Энэ скрипт дээр та 2 хувьсагчийг тодорхойлох болно. Миний MoveSpeed гэж нэрлэдэг олон нийтийн хөвөгч. Энэ нь таны хэр хурдан явахыг тодорхойлох болно. Мөн би RigidPlayer гэж нэрлэдэг хувийн Rigidbody2D. Энэ нь таны тоглогчдыг хайж олох болно.

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

Алхам 11:

Зураг
Зураг

Одоо Start () дээрээ та нэг л зүйл хийхийг хүсч байна

Таны RigidPlayer таны төлбөр төлөгч rigidbody 2d -ийг олох боломжтой эсэхийг шалгаарай. Та үүнийг дараах кодын мөрөөр хийдэг.

Алхам 12:

Зураг
Зураг

Дараа нь бид шинэчлэлт рүү шилждэг (). Энд бид хаашаа явж байна

тоглогчийг хөдөлгөх.

Бид үүнийг хэвтээ (AD) ба босоо (SW) сөрөг ба эерэг түлхүүрүүдийг хараад үүнийг тоглогчоо түлхэхийн тулд хатуу бие 2d дээрээ тавих гэж байгаа тул үүнийг тоон болгон ашиглах маш энгийн if хэллэгээр хийдэг. чиглэл. Энэ тоог moveSpeed хувьсагчаар үржүүлэх болно.

Алхам 13:

Зураг
Зураг

Эцэст нь та тоглогч хэзээ хөдлөхөө болихыг хүсч байна

та юу ч дардаггүй. Энэ нь танд таалагдаж байна:

Хэрэв та өөр 3 товчлуурыг өөр зүйлд ашиглахыг хүсч байвал if if ашиглан: if (Input. GetKeyDown (Keycode. Space))

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

Алхам 14: Гэрлийг Arduino руу залгаарай

Arduino руу гэрэл асаах
Arduino руу гэрэл асаах

·

Энэ хэсгийг холбохын тулд танд юу хэрэгтэй вэ:

· 9 холбогч утас

· 4 эсэргүүцэл

· 4 LED

· 1 arduino uno + USB кабель

· Талхны самбар

Гэрлийг холбох ажлыг Uno -ээр дамжуулан хийх болно.

Энэ нь дээрх зураг шиг харагдах болно.

Та резисторыг LED -ийн урт талд холбоно. Дараа нь та тоон зүү тооноос холбогчийг резистор руу холбоно уу. Энэ тохиолдолд би дижитал зүү 9 -10 -11 -12 -ийг ашигласан бөгөөд эдгээр тоонууд нь бид дэнлүүний код руу ороход хамааралтай болно.

Тэндээс та arduino Uno дээрх газрын үүрнээс холбогчийг самбар дээрх хар утсан дээрх зурган дээрх утсан дээр холбохыг хүсч байна.

Дараа нь та 4 холбогчийг LED тус бүрийн богино үзүүрт оруулахыг хүсч байна

Алхам 15: Arduino Uno -г кодлох

Arduino Uno -г кодлох
Arduino Uno -г кодлох

За, эхлээд бид хувьсагчаа дахин тодорхойлох болно

Тиймээс эхлээд бид гэрэлд ямар дижитал оролтыг ашиглаж байна. Тэгээд бид myCol нэртэй char хийх гэж байна [20]

Алхам 16:

Зураг
Зураг

Дараа нь тохиргоонд бид Serial.begin -ийг дахин хийхийг хүсч байна. Бидний бүх LED гаралтыг асааж, асаах үед бүгдийг нь унтраа.

Алхам 17:

Зураг
Зураг

Эцэст нь та өөрийн давталтын функцийг бичихийг хүсч байна.

Энэ нь Arduino -ийг хоёр үйл явдлын нэг болох хүртэл цувралаар орж ирж буй өгөгдлийг уншихад хүргэнэ. Аль нэг шугамын тэжээлийн тэмдэгт илэрсэн; Энэ нь lf -ээр тодорхойлогддог бөгөөд үүнийг 10 гэж тохируулсан бөгөөд эхний аргумент эсвэл тодорхой хэмжээний байтыг уншсан болно. Энэ бол гурав дахь аргумент бөгөөд энэ жишээг зөвхөн нэг байтаар тохируулсан болно. Өгөгдөл нь myCol хувьсагч дээр хадгалагддаг бөгөөд үүнийг char гэж тохируулсан бөгөөд 20 гэсэн хязгаартай байдаг. ReadBytesUntil хүртэл энэ бол хоёр дахь аргумент юм. Эсвэл үүнийг тайлбарлах өөр нэг арга бол Serial.readBytesUntil (terminatorCharacter, buffer, byteLimit);

If мэдэгдэл нь эв нэгдэл дохио өгөхөд тодорхой гэрэл асдаг эсэхийг шалгах болно. Энэ тохиолдолд би 4 өөр өнгийн гэрэлтэй болсон тул би ногоон гэрлийг g, цэнхэр LED -ийг асаах, улаан LED -ийг асаах, шар LED -ийг асаахын тулд эв нэгдлийг бий болгодог.

Алхам 18: Гэрлийг кодлох тал Эв нэгдэл:

Эв нэгдлийн талд кодлох гэрэл
Эв нэгдлийн талд кодлох гэрэл

Үүнийг хийхээс өмнө 2 зүйлийг анхаарч үзээрэй.

1. arduino кодлох програм дээрээ Tool -> Port -> руу очоод аль COM таны uno асаалттай байгааг шалгаарай. Миний хувьд түүний COM3 (энэ нь кодонд чухал байх болно)

2. эв нэгдэлтэйгээр Засварлах -> Төслийн тохиргоо -> Тоглогч руу очоод бусад тохиргоон дээр дарж Api нийцтэй байдлын түвшин рүү очоод. NET 2.0 дэд сүлжээнээс зүгээр л. NET 2.0 болгон солино уу.

За ингээд боллоо. Үүнд орцгооё.

Шат шатандаа хулганы баруун товчийг дараад хоосон болгох дээр дарна уу.

Энэ бол бидний хувьд нэг скриптийг хадгалахын тулд таны тоглоомонд байх хоосон тоглоомын объект байх болно. Би энэ объектыг Init гэж нэрлэсэн.

Алхам 19:

Зураг
Зураг

Дараа нь төслүүдийнхөө таб руу ороод шинэ C# скрипт үүсгээрэй

мөн үүнийг Илгээх гэж нэрлэдэг.

Таны хийх ёстой хамгийн эхний зүйл бол кодоо ашиглах хэсгүүдэд эдгээр мөрүүдийг бичих явдал юм.

System. IO. Ports ашиглах;

System. Threading ашиглах;

Ингэснээр бид SerialPort хувьсагчийг ашиглаж болно

Алхам 20:

Зураг
Зураг

Энэ скриптээр бид дараах хувьсагчдыг гаргах гэж байна. Би COM3 -ийг авсан гэдгийг анхаарна уу, энэ нь бидний энэ алхамын эхэнд хэлэлцсэн шиг өөр байж магадгүй юм. Хэрэв энэ нь 3 -ийг танд зориулж бичсэн тоогоор солино уу.

Алхам 21:

Зураг
Зураг

Эхлээд бид скриптийг ашиглахыг OpenConnection гэж хэлдэг

Бидний жаахан бичих функц

Шинэчлэлт нь юу юунаас илүү туршилт юм, гэхдээ хэрэв та үүнийг оруулахыг хүсч байвал эв нэгдэл рүү илгээсэн мессежүүдийг туршиж үзээрэй. Та үүнийг шударгаар үл тоомсорлож болно.

Алхам 22:

Зураг
Зураг

Энэ OpenConnection функцийг одоо ашиглаарай. Энэ бол зүгээр л том зүйл

if/else холболтыг нээлттэй байлгадаг бол үүнийг бичсэн шиг хуулаад өг, тэгвэл та зүгээр байх болно.

Алхам 23:

Зураг
Зураг

Одоо миний шалгасан arduino кодоос санаж байна уу

эв нэгдэл үүнд хүргэх болно гэсэн дохио юм.

за энд ийм зүйл болдог. Миний хувьд 4 гэрэл асаасан тул би маш энгийн 4 функц бичсэн. Тэд дуудсан үедээ arduino руу захидал илгээдэг. Ардуино энэ үсгийг авмагц тухайн үсэгтэй тохирох гэрлийг асаадаг.

Алхам 24:

Зураг
Зураг

Үүнийг яаж ингэж дуудах вэ гэж та гайхаж байж магадгүй юм

функц? Та үүнийг тоглоомондоо ашигладаг бусад c# скриптүүдийн аль нэг дээр энгийн мөрөөр хийх боломжтой. Илгээх. NameFunctionhere ();. Жишээлбэл, миний тоглоомонд тоглогч 4 өнгийн бөмбөрцөг цуглуулах үүрэгтэй. Тиймээс би бяцхан скрипт бичжээ, тэр нэг рүү ойртож, баруун товчлуур дээр дарахад тэр үүнийг авдаг бөгөөд энэ тохиолдолд шар бөмбөрцөг авсан гэсэн дохиог arduino руу илгээдэг. Үүнийг мэдэхийн тулд би шар өнгийн LED -ийг асаах ёстой.

Та энэ ганц мөрийн кодыг хүссэн газартаа байрлуулж болно. Хэрэв та тоглоом эхлэхэд асахыг хүсч байвал үүнийг эхлүүлэх функцэд оруулна уу. Түүнийг үхэхэд гэрэл асахыг хүсч байгаа нь тоглогчдын үхэлд зориулагдсан болно. Бага зэрэг туршиж үзээрэй. Дэлгэцийг эмх цэгцгүй цуглуулах ёстой бөмбөлгүүдийг хянахын тулд би гэрлийг тоглоомын гаднах төрлийн интерфэйсийн элемент болгохоор сонгосон.

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