Агуулгын хүснэгт:
- Алхам 1: Материал
- Алхам 2: Прототип хийх
- Алхам 3: Хэргийг лазераар огтлох
- Алхам 4: Зоосон машины товчлуурыг гагнах
- Алхам 5: Товчлууруудыг овоолж, тэдгээрийг самбар дээрээ холбоно уу
- Алхам 6: Тамыг кодлох
- Алхам 7: Бүх зүйл ажиллана
Видео: Зоосон машин тоглоомын товчлуурууд: 7 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Би саяхан Arduino -г ашиглан төслөө хийж эхэлсэн. Дизайнерын хувьд би тоглоом/интерактив төслүүддээ зориулж интерфэйс хийх дуртай.
Цуваа холболтыг ашиглах нь нэлээд төвөгтэй бөгөөд асуудал, алдаануудад өртөмтгий байдаг тул надад тулгарсан нэг асуудал бол би тоглоомоо удирдахын тулд гадны товчлууруудыг ашиглах боломжийг олгодог хурдан бөгөөд хялбар шийдлийг хүсч байсан юм.
Та ямар ч компьютер дээр шууд ашиглах боломжтой залгуур, тоглуулах төхөөрөмжийг хүсч байсан тул би Arduino Leonardo худалдаж авлаа. Энэ нь Uno -той бараг адилхан боловч цөөн хэдэн ялгаатай. Миний энэ төслийн давуу талыг ашиглах гол ялгаа нь HID байдлаар ажиллах чадвар юм. HID буюу хүний интерфэйс төхөөрөмж нь USB протокол бөгөөд төхөөрөмж бүрт тохируулсан драйвер суулгахгүйгээр гар болон компьютерийн хулганы оролтыг танай компьютер хүлээн зөвшөөрдөг.
Анхаарна уу: хэрэв та firmware -ийг энд үзүүлсэн шиг шинэчлэх юм бол Uno ашиглаж болно.
Алхам 1: Материал
Энэ төслийн хувьд танд хэрэгтэй болно:
1x HID чадвартай микроконтроллер (Arduino micro, Due & leonardo гэх мэт цөөн хэдэн хүмүүс байдаг, би Arduino Leonardo -г ашиглах болно)
1 x USB - arduino кабель (Леонардогийн хувьд энэ нь USB микро юм)
3x аркад товчлуур (би эдгээрийг худалдаж авсан)
1х гагнуургүй талхны хавтан
3х 10 к ом эсэргүүцэл
3x 220 ом эсэргүүцэл
Холбогч утас
Мэдээжийн хэрэг та илүү олон товчлуур нэмж, эсвэл бүх зүйлийг талхны тавцан дээр гагнаж, зүйлийг илүү байнгын болгох боломжтой.
Алхам 2: Прототип хийх
Тиймээс, би ашиглахыг хүссэн аркад товчлуур худалдаж авахаасаа өмнө үүнийг стандарт товчлууруудаар туршиж үзсэн. Товчлуурыг стандарт утсаар холбоорой, би 10K ом эсэргүүцэл ашигласан гэж бодож байна.
Леонардогийн ачаар програмчлал нь маш энгийн. Та Keyboard номын санг оруулах ёстой. Би кодынхоо үндэс болгон Arduino -ийн "Keyboard message" жишээг ашигласан.
Одоо та товчлууруудаа хэрхэн ажиллуулахыг хүсч байна. Танд үндсэндээ хоёр сонголт байна, ганц товчлуур дарах, түлхэх тохиолдолд үсгийн тасралтгүй урсгал. Энэ нь таны хүсч буй зүйлээс үнэхээр хамаарна.
Хэрэв та үсрэх, асаах/унтраах гэх мэт товчлуур дарагдсан бол ганцхан тохиолдлыг хийхийг хүсч байвал та ганц түлхэх аргыг сонгох болно. Энэ аргын тусламжтайгаар та товчлуурын төлөв байдлыг хардаг, энэ нь дээш эсвэл доошоо байна уу? Дараа нь та үүнийг өмнөх төлөвтэй харьцуулж үзвэл аль хэдийн дээш эсвэл доошоо байсан уу? Хэрэв өмнөх товчлуурын төлөв нь одоогийн товчлуурын төлөвтэй ижил байвал юу ч болохгүй. Гэхдээ хэрэв товчлуурын төлөв өөрчлөгдвөл таны товчлуурыг дарах эсвэл суллахад ямар нэгэн зүйл тохиолддог. Миний код дээр энэ нь товчлуур дарагдсан үед л үсгийг бичдэг, гэхдээ суллах үед биш харин та үүнийг өөрчилж болно.
#"Keyboard.h" оруулна уу
const int buttonLeft = A0; // товчлуурын оролтын зүү
const int buttonRight = A1; const int buttonUp = A2;
int previousButtonStateLeft = HIGH; // түлхэх товчлуурын төлөв байдлыг шалгах
int previousButtonStateRight = HIGH; int previousButtonStateUp = HIGH;
хүчингүй тохиргоо () {
// pushButton зүүг оролт болгох: pinMode (buttonLeft, INPUT); pinMode (buttonRight, INPUT); pinMode (buttonUp, INPUT); // гар дээрх хяналтыг эхлүүлэх: Keyboard.begin (); }
void loop () {
// товчлуурыг уншина уу: int buttonStateLeft = digitalRead (buttonLeft); // хэрэв товчлуурын төлөв өөрчлөгдсөн бол, ((buttonStateLeft! = өмнөх } // одоогийн товчлуурын төлөвийг дараагийн удаа харьцуулахын тулд хадгална уу: previousButtonStateLeft = buttonStateLeft;
// товчлуурыг уншина уу:
int buttonStateRight = digitalRead (buttonRight); // хэрэв товчлуурын төлөв өөрчлөгдсөн бол, ((buttonStateRight! = өмнөх } // одоогийн товчлуурын төлөвийг дараагийн удаа харьцуулахын тулд хадгална уу: previousButtonStateRight = buttonStateRight;
// товчлуурыг уншина уу:
int buttonStateUp = digitalRead (buttonUp); // хэрэв товчлуурын төлөв өөрчлөгдсөн бол, ((buttonStateUp! = өмнөх } // дараагийн товчлуурын төлөвийг дараагийн удаа харьцуулахын тулд хадгална уу: previousButtonStateUp = buttonStateUp; }
Хэрэв та зүүн эсвэл баруун тийш хөдөлгөөн хийхийг хүсч байгаа шиг товчлуур дарагдсан л бол ямар нэгэн зүйл тасралтгүй үргэлжлэхийг хүсч байвал өмнөх товчлуурын төлөвийг шалгахгүйгээр захидал бичээрэй. Галзуурахаас сэргийлж, товчлууруудынхаа үсрэлтийг эсэргүүцэхийн тулд бага зэрэг саатал нэмэхээ мартуузай. Энэ асуудлыг шийдэх илүү гоёмсог аргууд байдаг боловч энэ нь хялбар бөгөөд хурдан юм.
#"Keyboard.h" оруулна уу
const int buttonLeft = A0; // товчлуурын оролтын зүү
const int buttonRight = A1; const int buttonUp = A2;
хүчингүй тохиргоо () {
// pushButton зүүг оролт болгох: pinMode (buttonLeft, INPUT); pinMode (buttonRight, INPUT); pinMode (buttonUp, INPUT); // гар дээрх хяналтыг эхлүүлэх: Keyboard.begin (); }
void loop () {
// товчлуурыг уншина уу: int buttonStateLeft = digitalRead (buttonLeft); if (buttonStateLeft == HIGH) // хэрэв товчлуур дарагдсан бол {// мессеж бичих Keyboard.print ("a"); саатал (50); // Компьютерийг гүйцэх боломжийг олгохын тулд үсрэлт болон саатал}
// товчлуурыг уншина уу:
int buttonStateRight = digitalRead (buttonRight); if (buttonStateRight == HIGH) // хэрэв товчлуур дарагдсан бол {// мессеж бичих Keyboard.print ("w"); саатал (50); // Компьютерийг гүйцэх боломжийг олгохын тулд хойшлуулах}
// товчлуурыг уншина уу:
int buttonStateUp = digitalRead (buttonUp); if (buttonStateUp == HIGH) // хэрэв товчлуур дарагдсан бол {// мессеж бичих Keyboard.print ("d"); саатал (50); // Компьютерийг гүйцээхийн тулд үсрэлт, саатал}}
Таны хэрэгцээнд хамгийн сайн нийцэж байгаагаас хамааран та хоёуланг нь хоёуланг нь ашиглаж болно.
Алхам 3: Хэргийг лазераар огтлох
Энэ тохиолдолд би 3 мм хэмжээтэй mdf, 2 мм -ийн plexiglas оруулгатай. Сайхан, гэрэлтсэн болгохын тулд би хайрцгийн дотор талд LED оруулахыг хүссэн үедээ орууллаа.
Би хэмжээсээ томоор бичиж svg файлыг татаж авлаа. Би үүнийг Illustrator дээр нээгээд хүссэн нүхээ нэмж оруулав. Хэрэв танд Illustrator байхгүй бол энэ алхамд Inkscape ашиглаж болно.
Мэдээжийн хэрэг лазер таслагч ашиглах шаардлагагүй, учир нь энэ нь хэдхэн нүхтэй энгийн хайрцаг юм. Үүнийг илүү уламжлалт цахилгаан хэрэгсэл (эсвэл бүр гар багаж ашиглан) бүтээхэд хангалттай хялбар байх ёстой. Би маш залхуу, лазер таслагчтай байсан.
Алхам 4: Зоосон машины товчлуурыг гагнах
Зоосон машины товчлуур (эсвэл дор хаяж минийх) гурван хэсгээс бүрдэнэ. Хуванцар бүрхүүл, LED эзэмшигч (дотор нь LED -тэй), микро унтраалга. Микро унтраалга нь товчлуурын товчлуурын жинхэнэ хэсэг бөгөөд таны Arduino -тэй холбогдоход хэрэгтэй зүйл юм. Микро унтраалга дээр гурван терминал байдаг (металл битүүд нь утсаа гагнах болно). Дээд талд байгаа (эсвэл доод талд, таны хүссэн зүйл) бол газар юм. Нөгөө хоёр терминал нь Normal Open (NO) ба Normal Closed (NC) юм. NO гэдэг нь унтраалга дарагдсан тохиолдолд холболт үүснэ гэсэн үг юм. NC гэдэг нь хэрэв товчлуур дарагдсан бол холболт тасарна гэсэн үг юм. Бид энэ төсөлд NO -г ашиглах болно. Би зурган дээрх микро унтраалгаараа газар, NO, NC гэж тэмдэглэв.
Миний товчлуурууд гэрэлтдэг тул утсыг LED эзэмшигч рүү гагнана. Анод аль тал, катод аль нь болохыг (LED -ийн эерэг ба сөрөг талууд) мэдэхийн тулд утсандаа өнгөт код оруулахаа мартуузай.
Би гагнуургүй талхны хавтангаар ашиглахад хялбар болгох үүднээс толгойн зүүгээ утсандаа гагнав. Би утсыг толгойн зүүгээр гагнаж, илүү уян хатан болгохын тулд бага зэрэг дулаан багасгадаг хоолой тавьжээ.
Алхам 5: Товчлууруудыг овоолж, тэдгээрийг самбар дээрээ холбоно уу
Одоо таны аркад товчлууруудыг өөрийн хайрцагт хийх цаг болжээ. Хуванцар бүрхүүлээс түгжих бөгжийг аваад хайрцгийн нүх рүү оруулна уу. Товчлуурыг бэхлэхийн тулд түгжих бөгжийг нөгөө талаас нь шургуул. LED эзэмшигчийг зүүгээд эргүүлээд түгжихийн тулд эргүүлээрэй. Микро унтраалга дээр хөдөлж байгаарай (байрлуулахын тулд бие биетэйгээ зэрэгцэн орших бяцхан ноёд, нүхнүүд байдаг).
Шилжүүлэгчийг самбартай холбохын тулд та нэмж эсвэл оруулаагүй товчлууруудыг арилгана уу. Микро шилжүүлэгчийн газраас дамжуулж буй утсыг Arduino болон резисторийн газар руу холбоно уу. Микро унтраалгын NO -оос утсыг Arduino -ийн 5v руу холбоно уу.
LED утаснуудын хувьд сөрөг утсыг газардуулга ба эерэгийг 220OHM резистороор 5V -т холбоно. Хэрэв та ийм утсыг холбосон бол тэд үргэлж асаалттай байх болно. Та тэдгээрийг кодонд нэмж, хэрэв хүсвэл товчлууруудтай синхрончлон асаах, унтраах боломжтой болно.
Алхам 6: Тамыг кодлох
Тиймээс, та хуучин кодоо гоёмсог шинэ товчлууруудаа хавсаргасан бөгөөд энэ нь гэнэт ажиллахаа больжээ. Захидлууд нэг дор хоёроос гурван удаа гарч ирдэг бөгөөд энэ нь энгийн HTML5 тоглоомуудын хувьд ажиллахгүй байна. Тамыг тайлахыг урьж байна.
Эхлээд бүх зүйл. Прототип хийх явцад бидний бичсэн код? Энэ нь сайн ажилладаг, энгийн боловч гоёмсог биш юм. Хэрэв та илүү олон товчлуур нэмж оруулахыг хүсвэл кодын хэсгүүдийг хуулж буулгаж, доторх бүх утгыг өөрчлөх хэрэгтэй. Хэрэв та тэдгээрийн аль нэгийг мартсан бол алдаа засах там руу орно. Эндээс сэдэв илрүүлэх үү? Кодлох нь там, гэхдээ маш хөгжилтэй, асуудлыг шийдэх там.
Бид гоё, богино кодыг хүсч байна. Тиймээс бид бүх бие даасан товчлуурыг массив болгон өөрчлөх болно. Ийм байдлаар, хэрэв та илүү олон товчлуур нэмж оруулахыг хүсвэл товчлуурын хэмжээ, байрлах цэгүүд болон тэдгээрийн гаралтыг өөрчлөх шаардлагатай болно. Бид мөн гол оролтыг ASCII болгон өөрчилдөг, учир нь … энэ нь илүү сайн ажилладаг уу?
Одоо хэрэв та над шиг бол товчлуурыг ашиглах энгийн бөгөөд хялбар аргыг бичих бөгөөд энэ нь таны хүссэнээр ажиллахгүй болно. Тиймээс та шинэ хувилбар үүсгэж (хүүхдүүдийг санаарай, нөөцлөлтийг санаарай!), Өөр өөр зүйлийг туршиж үзээрэй, сайн ажиллахгүй байгаа илүү төвөгтэй код бичээд эцэст нь хэдэн цагийн өмнө бичсэн энгийн код руу буцаж очоод жижиг алдаа гарсныг анзаараарай. тэр даруй бүх зүйлийг засдаг.
Энэ аялалыг танд үлдээе, ажлын код энд байна:
Анхааруулга: Энэ текстийг маш энгийн кодыг хэдэн цагийн турш кодлож, алдаа зассаны дараа бичсэн болно. Сэтгэл дундуур байгаа шинж тэмдгийг үл тоомсорлож, доор байрлуулсан ажлын код дээр анхаарлаа хандуулаарай;)
#"Keyboard.h" -ийг оруулна уу#товчлуурыг тодорхойлохХэмжээ 3
int buttonPin = {
A0, A1, A2}; // Товчнууд хаана байна? int asciiLetter = {97, 100, 119}; // ASCII дахь үсэг, энд: a, d, w int buttonState [buttonAmount]; // Товчлуур дарагдсан эсвэл дарагдаагүй байна уу?
хүчингүй тохиргоо () {
for (int i = 0; i <buttonAmount; i ++) {// pinMode массиваар дамжих мөчлөг (buttonPin , INPUT); // бүх тээглүүрийг оруулна уу}}
void loop () {
for (int i = 0; i <buttonAmount; i ++) // массиваар дамжих {buttonState = digitalRead (buttonPin ); // Товчлуурууд юу хийж байна вэ? if (buttonState == HIGH) {// Хэрэв товчлуур дарагдсан бол Keyboard.press (asciiLetter ); // харгалзах үсгийг илгээх} өөр // хэрэв товчлуур дарагдаагүй бол {Keyboard.release (asciiLetter ); // захидал гаргах}}
}
Алхам 7: Бүх зүйл ажиллана
Залгуураа сайхан өнгөрүүлээрэй, захиалгат хянагчаа тоглуулаарай!
Хэрэв танд энэ заавар таалагдсан бол уралдаанд надад саналаа өгнө үү!
Зөвлөмж болгож буй:
Jammarduino DUE - Зоосон машин шүүгээнд зориулсан Жамма интерфэйс рүү DIY компьютер: 6 алхам
Jammarduino DUE - Зөөврийн машины кабинетийн Жамма интерфэйсээс DIY компьютер: Энэхүү зааварчилгаа нь Arduino DUE -ийг энгийн нягтралтай CRT болон jamma холбогчтой жинхэнэ компьютерийн машинтай хэрхэн холбохыг танд харуулах болно. видеоноос ирж буй видео дохиог нэмэгдүүлэхийн тулд
Зоосон машин: 3 алхам (зурагтай)
Зоосон машин: 20 жилийн өмнө би Run and Gun @ the Arcade тоглож байсан бөгөөд одоо өөрийн аркад хийхээр шийдсэн. Http://www.arcadewinkel.nl/ дээр дарж товчлуур худалдаж аваад БСХС -ийн модыг авсны дараа үүнийг эхлүүлж эхлэв. дизайн
Макей Макей Зоосон машин: 6 алхам
Макей Макей Зоосон машин: Бүгдээрээ сайн байцгаана уу! Энэхүү гарын авлагад та аркад маягийн хянагчийг хэрхэн бүтээж, утсаар холбож, ихэнх онлайн тоглоомуудтай ажиллах боломжтой аркад маягийн тоглоомын тохиргоо хийх болно. Энэ нь хөгжилтэй эсвэл K-8 оюутнуудтай хийх гайхалтай үйл ажиллагаа юм; Би хийсэн
Зоосон машин +: 8 алхам (зурагтай)
Зоосон машин +: Энэхүү зааварчилгаа нь эхний шатанд холбосон аркад машиныг шинэ, сайжруулсан, дэвшилтэт хувилбартай өөрчлөхөд туслах болно. Энэхүү зааварчилгаа нь дагаж мөрдөх ёстой удирдамж бөгөөд үүнийг нарийвчлан хуулах шаардлагагүй болно. Жишээлбэл, чанга яригч
Тоглоомын хариултын товчлуурууд: 8 алхам (зурагтай)
Тоглоомын хариултын товчлуурууд: Энэхүү схемийн тусламжтайгаар та өөрийн тоглоомын шоугаа хийх боломжтой болно. Та хайрцагны хоёр талд байгаа тоглуулагчийн аль нэг товчлуурыг дарахад түүний гэрэл асаж, нөгөө товчлуурыг идэвхгүй болгож, асуултанд хэн хариулсныг харуулах болно