Բովանդակություն:
- Քայլ 1: Մասեր և գործիքներ
- Քայլ 2: Պատյան 3D տպագրություն
- Քայլ 3: Ամեն ինչ միասին դնել + սխեմատիկ
- Քայլ 4: Խրոցակներ:
- Քայլ 5: Կոդ
- Քայլ 6: Նշումներ
- Քայլ 7: Փոփոխություն
Video: Arduino Guitar Jack Key Key Holder With Jack Recognition & OLED: 7 Steps
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Ներածություն:
Այս հրահանգը մանրամասն կներկայացնի Arduino- ի վրա հիմնված Guitar Jack plugin ստեղնը
Սա իմ առաջին հրահանգն է, այնպես որ խնդրում եմ համբերեք ինձ, քանի որ ես կարող եմ փոփոխություններ / թարմացումներ կատարել ճանապարհին
Քայլ 1: Մասեր և գործիքներ
Մասերի մեծ մասը, որոնք ես գնել եմ Amazon.co.uk- ից կամ eBay- ից, ոմանք արդեն հասցրել էի ոտքով հարվածել: Ահա այն ցանկը, ինչ ձեզ հարկավոր կլինի:
Amazon- ի հղումները բոլորը Affiliate- ի հղումներ են, հնարավոր է, որ դուք կարողանաք ավելի էժան գտնել այլուր.
Ես ուզում էի այս շինությունը պահել բավականին էժան և բյուջետային: Soանկության դեպքում կարող եք օգտագործել ավելի մեծ TFT էկրան, ինչպես նաև այլ Arduino: Մի օգտագործեք NANO, քանի որ այն կործանվի հիշողության բարձր օգտագործման պատճառով: Կոդն օգտագործում է Pro Micro- ի RAM- ի մոտ 72% -ը և կայուն է, սակայն փորձարկումից NANO- ն կփլուզվի և կսառչի:
(Ավելի մանրամասն ՝ օրենսգրքի քայլում):
ՄԱՍՆԵՐ
1x Arduino Pro Micro -
1x 0.96 OLED դեղին և կապույտ էկրանով -
4x WS2812 «պիքսելներ» -
1x DS3231 RTC -
4x 1/4 Mono Jack (Կամ այնքան, որքան ցանկանում եք) - Amazon (ոսկի) կամ Amazon (արծաթ) կամ eBay.co.uk
1x Mixed Resistor Pack -
4x 1/4 կիթառի խցիկներ -
1x Micro USB մալուխի երկարացման մալուխ -
4x M3 պտուտակներ
Գործիքներ և նյութեր
- oldոդման երկաթ (սա այն է, ինչ ես գնել եմ `TS100 - քանի որ այն գալիս էր լրացուցիչ խորհուրդներով
- erոդող
- տաք սոսինձ ատրճանակ (https://amzn.to/2UTd9PN)
- Լար (https://amzn.to/2VK2ILU)
- Մետաղալարեր/մերկացուցիչներ (https://amzn.to/2KzqUzp)
- 3D տպիչ կամ 3D տպագրության ծառայություն
ԸՆՏՐՈԹՅՈՆ - Այս տարրերն ընտրովի են ՝ կախված նրանից, թե ինչպես եք ընտրում ամեն ինչ միացնել
- Veroboard/Stripboard (https://amzn.to/2KzMFPE)
- Պտուտակային տերմինալային միակցիչներ (2 բևեռ | 3 բևեռ | 4 բևեռ)
- PCB վերնագրեր (https://amzn.to/2X7RjWf)
Քայլ 2: Պատյան 3D տպագրություն
Ես իմը տպել եմ իմ Creality CR-10S- ով ՝ օգտագործելով Black PLA+ (https://amzn.to/2X2SDtE)
Ես տպել եմ 0,2 շերտի բարձրության վրա, 25% լցվածով:
Քայլ 3: Ամեն ինչ միասին դնել + սխեմատիկ
Ինչպես եք ընտրում ձեր Arduino- ն միացնելը, լիովին ձեզնից է կախված: Ես անձամբ ընտրեցի ինձ, այսպես ասած, «վահան» դարձնել: Վահանը պատրաստելու համար ես կանացի վերնագրերը կպցրել եմ veroboard- ին ՝ Pro Micro- ին համապատասխանելու համար, այնուհետև ես ավելացրել եմ +5v և GND ռելսեր ՝ հակառակ ծայրերում: Ես օգտագործել եմ jumper մետաղալար ` +5v- ն իմ այժմյան 5v 'երկաթուղուն միացնելու համար, և նույնն արել եմ GND- ի համար: Այնուհետև ես ավելացրեցի իմ 4x 100k դիմադրիչները, որոնց մի ծայրը բոլորի համար միացված էր +5v- ին, իսկ մյուս կողմը համապատասխանաբար միանում է A0, A1, A2 և A3- ին: Այնուհետև ես ավելացրել եմ պտուտակային տերմինալներ անալոգային կապերի A0, A1, A2 և A3, ինչպես նաև կապում 2 (SDA), 3 (SCL) և 4
Չափեք ձեր էլեկտրագծերը և կտրեք համապատասխան երկարությունների: Սկսեցի WS2812 Pixel LED- երից `ԱՌԱԻՆ WS2812 LED- ը միանում է Arduino- ից +5v- ին, Arduino- ից GND- ին, իսկ DIN- ը կապում է Pin 4 -ին: Դրանից հետո մնացած 3 -ը շղթայված են միասին ՝ շղթայելով բոլոր 5v> 5v- ին, GND> GND կապում և մեկ Pixel- ից DOUT, միանում է հաջորդի DIN- ին: Soldոդվելուց հետո դրանք նրբորեն սեղմեք վերևի քառակուսի անցքերի մեջ, իսկ տեղում տաք սոսինձ պահեք, ինչպես նաև հետույքը պատահական միացումներից կամ շորտերից պաշտպանելու համար:
LED- ներից հետո ես պտուտակեցի Guitar Jack վարդակները: Յուրաքանչյուրի մի կապը միանում է GND- ին, այնուհետև յուրաքանչյուրի 2 -րդ կապը համապատասխանաբար միանում է A0, A1, A2 & A3- ին: Այսպիսով, դա Socket 1, A0, Socket 2 A1, Socket 3 A2 և Socket 4 դեպի A3:
Հաջորդը ես 4 լար լարեցի OLED միացումներին և հնարավորինս կտրեցի ցանկացած ավելորդ զոդ: Դուք ցանկանում եք ձեր լարերը կցել էկրանի հետևից, այնպես որ դուք կպչում եք էկրանի առջևի մասին:
Ուշադրություն դարձրեք քորոցներին: Որոշ OLED- ներ ունեն GND դրսից, այնուհետև VCC, ոմանք ունեն VCC դրսից, այնուհետև GND
Soldոդումից հետո, որքան հնարավոր է կտրեք կամ հարթեցրեք զոդման միացումը, նրբորեն սեղմեք էկրանը դրա գտնվելու վայրի վրա: Դիզայնով դա մի փոքր խստորեն տեղավորվում է, բայց տեղյակ եղեք, որ տպագրության տարբեր հանդուրժողականությունները կարող են ազդել դրա վրա, ուստի գուցե ստիպված լինեք մի փոքր հետամշակում կատարել `այն համապատասխանեցնելու համար: Տեղ հասնելուց հետո 4 անկյուններից յուրաքանչյուրում տեղադրեք տաք սոսինձ `այն տեղում պահելու համար:
Միացրեք ամեն ինչ ՝ սխեմատիկին և նկարներին համապատասխանելու համար, իսկ ուրախանալուց հետո կարող եք տեղում տաք սոսնձել նաև Pro Micro և RTC ժամացույցները, այնուհետև USB երկարաձգումը միացրեք Pro Micro- ին:
Ես օգտագործեցի միկրո USB ընդլայնում, որպեսզի ա) USB- ը կարող է օգտագործվել էներգիա ապահովելու համար, բայց ավելին ՝ բ) այնպես, որ անհրաժեշտության դեպքում հնարավոր լինի վերախմբագրել Pro Micro- ն ՝ առանց ամեն ինչ իրարից հեռացնելու
Ուրախ լինելուց հետո գործը միացրեք 4 պտուտակով
Քայլ 4: Խրոցակներ:
Ինչպես է դա աշխատում, այն է, որ բոլոր նպատակների համար դիզայնի մի մասը գործում է որպես «օմմետր»: Օմմետրը էլեկտրական դիմադրության չափման գործիք է: Բազմաչափերի մեծամասնությունն ունի այս գործառույթը, որով դուք ընտրում եք սանդղակը, այնուհետև չափում եք ռեզիստորը `դրա արժեքը գտնելու համար: Գործող սկզբունքն այն է, որ դուք միացնում եք ՀԱՅՏՆԻ ռեզիստորը +ve- ին, որն այնուհետև միացված է ԱՆՀԱՅՏ ռեզիստորին, որը միանում է -ve- ին: 2 դիմադրիչների միջև միացումը միանում է Arduino անալոգային քորոցին, որպեսզի կարողանա կարդալ լարումը և հաշվարկել դիմադրությունը:
Այն աշխատում է լարման բաժանարարի պես և հաշվարկում անհայտ ռեզիստորի դիմադրությունը:
Որպես դիմադրության R1 և R2 լարման բաժանարար ցանց, Vout = Vin * R2 / (R1 + R2) - Մենք օգտագործում ենք 100k մեր հայտնի (R1) դիմադրության համար: Սա մեզ տալիս է «լարման անկում»
Այստեղից մենք այժմ կարող ենք մշակել անհայտ (R2) դիմադրության դիմադրությունը, R2 = Vout * R1 / (Vin - Vout) - որտեղ R1- ը մեր 100k (100, 000 ohm) դիմադրողն է
Օգտագործելով տարբեր ռեզիստոր յուրաքանչյուր վարդակից, որը ցանկանում եք օգտագործել, այնուհետև կարող եք համապատասխանաբար կարգավորել ծածկագիրը ՝ կախված օգտագործվող բույնից:
Ես օգտագործում եմ 4 վարդակ: Ես նախընտրեցի օգտագործել
Հայտնի դիմադրություն (x4) - 100k
Jack Plug 1 - 5.6k
Jack Plug 2 - 10k
Jack Plug 3 - 22k
Jack Plug 4 - 39k
Դուք, իհարկե, կարող եք ընդլայնել սա և կոդավորել այնքան, որքան ցանկանում եք:
Քայլ 5: Կոդ
Նախ, ձեզ հարկավոր կլինի Arduino IDE, որը հասանելի է այստեղից ՝
Դուք նաև պետք է համոզվեք, որ ունեք նաև Arduino գրադարաններ.
Adafruit NeoPixel ՝
u8g2:
Adafruit RTCLib ՝
Adafruit SleepyDog (ըստ ցանկության) ՝
Նշում «Arduino» ճիշտ տախտակ ընտրելու մասին: Սկզբնապես ես սկսեցի այս նախագիծը Arduino Nano- ի միջոցով, քանի որ դրանք սուպեր էժան են մոտ 3–4 ֆունտ ստեռլինգով Մեծ Բրիտանիայում, կամ ընդամենը 1,50 ֆունտ ստերլինգ, եթե գնում եք AliExpress– ից (բայց դեմ չեք 30-50 օր սպասելուն): Nano- ի խնդիրն այն է, որ դրա SRAM- ը 2 ԿԲ է (2048 բայթ): Այս ուրվագիծը օգտագործում է 1728 բայթ դինամիկ հիշողություն Գլոբալ փոփոխականներով: Դա SRAM- ի 84% -ն է, իսկ տեղական փոփոխականների համար թողնում է ընդամենը 320 բայթ: Սա անբավարար էր և կհանգեցներ, որ Նանոն փակվի և սառչի:
Pro Micro- ն (Լեոնարդո) ունի 2.5K SRAM (2560 բայթ), ինչը նշանակում է, որ տեղական փոփոխականների համար կա 694 բայթ անվճար (էսքիզը օգտագործում է Pro Micro- ի SRAM- ի 72% -ը): Առայժմ դա լիովին համարժեք և կայուն էր իմ օգտագործման համար: Եթե դուք մտադիր եք օգտագործել բազմաթիվ վարդակներ, ապա կարող եք ցանկություն ունենալ ավելի շատ SRAM- ով ինչ -որ բան օգտագործել:
Ինչ վերաբերում է Flash- ի պահպանմանը, այս ուրվագիծը օգտագործում է 30k- ի 88% -ը (25252 բայթ) (ATMega328p [Nano] և ATMega32u4 [Pro Micro] երկուսն էլ ունեն 32k, բայց 2k- ը վերապահված է բեռնիչին)
Տարիների ընթացքում ես գրել եմ Arduino- ի էսքիզներ, բայց ես հոբբի եմ, ուստի հիշեք, որ կոդի որոշ հատվածներ կարող են անարդյունավետ լինել, կամ կարող են լինել «դա անելու ավելի լավ եղանակներ» սցենարներ: Ասածս այն է, որ այն ինձ մոտ հիանալի է աշխատում և ես գոհ եմ դրանից: Ես օգտագործել եմ գրադարաններ, որոնք ՊԵՏՔ է աշխատեն տախտակների մեծ մասի վրա ՝ լինի դա AVR (առավել հիմնական Arduino's), թե SAMD21 (ես ունեմ մի բուռ Cortex M0 սարք)
Ես ուզում էի ցուցադրել այլ գրաֆիկա ՝ հիմնված օգտագործվող խցիկի վրա նույնպես: Եթե ցանկանում եք ինքներդ պատրաստել, սա հիանալի պարզ ուղեցույց է, թե ինչպես ստեղծել C զանգված, որպեսզի պատկերները օգտագործվեն այս ցուցադրման միջոցով.
sandhansblog.wordpress.com/2017/04/16/interfacing-displaying-a-custom-graphic-on-an-0-96-i2c-oled/
Համոզվեք, որ PROGMEM- ը օգտագործեք ձեր գրաֆիկայի համար: Օրինակ ՝
static const unsigned char YOUR_IMAGE_NAME PROGMEM = {}
Ըստ նախագծման, էկրանը «լրանում է ժամանակը» 5 վայրկյանից հետո և կվերադառնա ժամանակի ցուցադրմանը:
Կարգավորումների մեծ մասը կարելի է գտնել Settings.h- ում, մասնավորապես, հարակից վարդակների անունները կոդավորված են այստեղ ՝
#սահմանեք PLUG1 «ԲԱՅՆԵՐ»
#սահմանեք PLUG2 «P2» #սահմանեք PLUG3 «P3» #սահմանեք PLUG4 «P4» #սահմանեք ԸՆԴՀԱՆՈՐ «Ա NA»
Variables.h- ի ներսում կան նաև կոդի որոշ կարևոր մասեր
բոց R1 = 96700.0;
բոց R2 = 96300.0; բոց R3 = 96500.0; բոց R4 = 96300.0;
Սրանք են դիմադրության ԳԻՏԵԼԻ արժեքները, օմ -ով, 4 դիմադրողներից յուրաքանչյուրի համար:
R1- ը միացված է A0- ին, R2- ին `A1- ին, R3- ին` A2- ին, իսկ R4- ին `A3- ին:
Advisանկալի է չափել ձեր 100k դիմադրիչները ՝ օգտագործելով բազմիմետր և օգտագործել դիմադրության ճշգրիտ արժեքը: Վերցրեք դիմադրության չափումը, երբ ամեն ինչ միացված է: (Բայց միացված չէ):
Մալուխների համար ռեզիստորներ ընտրելիս համոզվեք, որ դրանց միջև լավ օհմ բաց կա, և դրանք կոդավորելիս տվեք ինքներդ ձեզ ավելի լավ և ցածր տիրույթ, քան ձեր ընտրած ռեզիստորը: Ահա այն, ինչ ես օգտագործել եմ իմ ծածկագրում.
բոց P1_MIN = 4000.0, P1_MAX = 7000.0; // 5.6 Կ
բոց P2_MIN = 8000.0, P2_MAX = 12000.0; // 10K բոց P3_MIN = 20000.0, P3_MAX = 24000.0; // 22K բոց P4_MIN = 36000.0, P4_MAX = 42000.0; // 39 Կ
Դրա պատճառն անալոգային ընթերցման և լարման աննշան տատանումների և այլնի հաշվառումն է
Այսպիսով, ինչ է տեղի ունենում, եթե հայտնաբերված դիմադրությունը 4000 ohms- ից 7000 ohms- ի միջև է, մենք ենթադրում ենք, որ դուք օգտագործել եք 5.6k ռեզիստոր և, հետևաբար, ծածկագիրը դա կտեսնի որպես Jack Plug 1. Եթե չափված դիմադրությունը 8000 ohms- ի միջև է 12000 ohms, ենթադրությունն այն է, որ դա 10k դիմադրություն է և Jack Plug 2 է և այլն:
Եթե Ձեզ անհրաժեշտ է կարգաբերում կատարել (Մի թողեք «մեկնաբանության մեջ« արտադրության մեջ »քանի որ սերիական վրիպազերծումը օգտագործում է թանկարժեք խոյ), պարզապես մեկնաբանությունների համար նշեք ձեր պահանջվող տողերը Կարգավորումների վերևում:
//#սահմանել SERIAL_DEBUG
//#սահմանել WAIT_FOR_SERIAL
Մեկնաբանելու համար պարզապես հեռացրեք //… տողը հետադարձ մեկնաբանելու համար նորից // ավելացրեք // տողի առջևի մասում:
SERIAL_DEBUG- ը հնարավորություն է տալիս սերիական կարգաբերում և այնպիսի բաների օգտագործում, ինչպիսիք են (օրինակ)
Serial.println (F («բարև աշխարհ»));
WAIT_FOR_SERIAL- ը լրացուցիչ քայլ է, ինչը նշանակում է, որ մինչև սերիական մոնիտորը չբացեք, ծածկագիրը չի շարունակվի: Սա օգնում է ապահովել, որ բաց չթողնեք որևէ կարևոր սերիական հաղորդագրություն: - ԵՐԲԵՔ ԹՈ LՅԼ ՉԵՆՔ ԱՅՍ ԱՌԱԱՐԿՎԱ
Եթե WAIT_FOR_SERIAL- ը միացված թողնեք, ապա չեք կարողանա ձեր բանալին օգտագործել «իրական աշխարհում» որևէ միջավայրում, քանի որ այն չի կարող սպասել Arduino IDE սերիական մոնիտորին, մինչև այն կարողանա շարունակել ուրվագծի հիմնական օղակը: Ձեր վրիպազերծումն ավարտելուց հետո համոզվեք, որ այս տողում նորից մեկնաբանություն եք թողնում և վերբեռնում եք ձեր ուրվագիծը արտադրության/ավարտի համար:
SERIAL_DEBUG տարբերակը օգտագործելիս իմ կոդը պարունակում է հետևյալը.
#ifdef SERIAL_DEBUG
Serial.print (F ("ACTIVE JACK =")); Serial.println (ACTIVE_JACK); int len = sizeof (SOCKET_1234_HAS_PLUGTYPE_X)/sizeof (SOCKET_1234_HAS_PLUGTYPE_X [0]); (int i = 0; i <len; i ++) {Serial.print (F ("SOCKET_1234_HAS_PLUGTYPE_X [")); Serial.print (i); Serial.print (F ("] =")); Serial.println (SOCKET_1234_HAS_PLUGTYPE_X ); } Serial.println (); if (INSERTED [socket]) {Serial.print (F ("Plug in socket")); Serial.print (վարդակից+1); Serial.print (F ("ունի resitance:")); Serial.println (դիմադրություն); } #endif
Վերջին Serial.print տողը ձեզ կասի, թե որն է դիմադրությունը, օհմերում, վերջին տեղադրված խցիկի նկատմամբ: Այսպիսով, դուք կարող եք նաև օգտագործել այս ուրվագիծը ՝ որպես օմմետր ՝ ճարմանդ խրոցակի դիմադրությունը ստուգելու համար:
Քայլ 6: Նշումներ
Կարծում եմ, որ ես լուսաբանել եմ ամեն ինչ, բայց խնդրում եմ մեկնաբանել, և ես ամեն ինչ կանեմ, երբ կարողանամ կարդալ և պատասխանել:)
Ներողություն եմ խնդրում ինչ -որ չափով վատ տեսաերիզի համար. Ես եռոտանի, վերակոդավորման տեղադրման կամ, այսպես ասած, համապատասխան աշխատանքային տարածք չունեմ, այնպես որ սա նկարահանվել է (վատ) հեռախոսը մի ձեռքում պահելով և մյուսով փորձելով ցուցադրել այն:
Շնորհակալություն կարդալու համար:
Խորհուրդ ենք տալիս:
Micro: bit MU Vision Sensor for beginners - Label Values and Number Card Recognition: 6 Steps
Micro: bit MU Vision Sensor for Beginners - Label Values and Number Card Recognition: Սա իմ երկրորդ ուղեցույցն է MU տեսողության տվիչի: Այս նախագծում մենք ծրագրավորելու ենք միկրո: բիթը `տարբեր պիտակների արժեքների միջոցով տարբեր թվային քարտեր ճանաչելու համար
Arduino & Breadboard Holder: 5 քայլ (նկարներով)
Arduino & Breadboard Holder. Եթե երբևէ խաղայիք Arduino- ի հետ, ապա կիմանայիք, որ այն կարող է բավականին խառնաշփոթ լինել, հատկապես, եթե շատ լարեր եք օգտագործում, և վերջերս ես աշխատում էի Arduino- ի մասնակցությամբ նախագծի վրա և այն հասավ կետ, երբ ես պետք է ինչ -որ բան անեի դրա համար: Ա
Crutch Holder Project: 6 Steps
Crutch Holder Project. Ողջույն, ես կրքոտ ասեղնագործ եմ և DIYer, և ոչ վաղ անցյալում գնել եմ 3D տպիչ, ուզում էի այն օգտագործել `օգնելու ինձ շրջապատող մարդկանց: Տատիկս տառապում է արթրիտով և ստիպված է լինում փայտեր օգտագործել շրջելու համար, և ես հաճախ էի տեսնում նրան
Tinkerer's Baseplate - Arduino + Breadboard (ներ) + Periphery Holder: 5 Steps
Tinkerer's Baseplate - Arduino + Breadboard (ներ) + Periphery Holder. ..) 3 մմ լազերային կտրված բազայի վրա: Եթե ձեզ ավելի շատ տարածք է պետք, կա նաև
Էպիկական! Guitar Hero - Double Neck Guitar Fail: 7 Steps (With Pictures)
Էպիկական! Guitar Hero - Double Neck Guitar … Fail: 2015 -ին լրանում է Guitar Hero- ի փոփ մշակույթի երևույթի 10 -ամյակը: Հիշու՞մ եք, այն տեսախաղը, որն ավելի հայտնի դարձավ, քան երաժշտական գործիքը, որին միայն աղոտ կերպով հաջողվեց ընդօրինակել: Իր տասնամյակը նշելու ավելի լավ միջոց, քան