Բովանդակություն:

Magic Answers Ball- ը Arduino Pro Mini- ով և TFT էկրանով ՝ 7 քայլ
Magic Answers Ball- ը Arduino Pro Mini- ով և TFT էկրանով ՝ 7 քայլ

Video: Magic Answers Ball- ը Arduino Pro Mini- ով և TFT էկրանով ՝ 7 քայլ

Video: Magic Answers Ball- ը Arduino Pro Mini- ով և TFT էկրանով ՝ 7 քայլ
Video: 1. Q Light Controller + Սկսել QLC +- ով: Արշավներ եւ գործառույթներ 2024, Նոյեմբեր
Anonim
Magic Answers Ball- ը Arduino Pro Mini- ով և TFT էկրանով
Magic Answers Ball- ը Arduino Pro Mini- ով և TFT էկրանով
Magic Answers Ball- ը Arduino Pro Mini- ով և TFT էկրանով
Magic Answers Ball- ը Arduino Pro Mini- ով և TFT էկրանով
Magic Answers Ball- ը Arduino Pro Mini- ով և TFT էկրանով
Magic Answers Ball- ը Arduino Pro Mini- ով և TFT էկրանով

Քիչ առաջ ես և աղջիկս առանձնացրինք Magic 8 գնդակը, որպեսզի նա կարողանա փոխարինել քսան պատասխանն իր ընտրությամբ: Սա նվեր էր իր ընկերոջ համար: Դա ինձ ստիպեց մտածել, թե ինչպես դա անել ավելի մեծ մասշտաբով: Կարո՞ղ ենք ունենալ 20 -ից ավելի պատասխան: Էլեկտրոնային տարբերակով մենք կարող ենք:

Այսպիսով, սա կբնութագրի, թե ինչպես ես ապամոնտաժեցի Mattel Magic 8 գնդակը (ներողություն, Mattel) և օգտագործեցի կլոր TFT էկրան ՝ անհամար լրացուցիչ պատասխաններ ցույց տալու համար (ամենափոքր micro-SD քարտը, որը ես գտա, 8 ԳԲ էր, ուստի այն իսկապես չափազանց մեծ է): ինչի համար է այն օգտագործվում) Գնդակը օգտագործում է Sparkfun Wake-on-shake տախտակը ՝ արձագանքը հրահրելու և մարտկոցը խնայելու համար գնդակը հետագայում անջատելու համար: Լիցքավորման տախտակն օգտագործվում է մարտկոցի լիցքավորումը USB միացումից թույլ տալու համար:

Պարագաներ

Մասեր:

Arduino Pro Mini 328 - 3.3 Վ/8 ՄՀց

SparkFun Wake on Shake

Լիթիում իոնային մարտկոց - 400 mAh

Կազմակերպիչ 12 հատ TP4056 Լիցքավորման մոդուլ 5V Micro USB 1A 18650 Լիթիումի մարտկոցի լիցքավորման տախտակ պաշտպանական լիցքավորման մոդուլով (ձեզ հարկավոր է միայն դրանցից մեկը, բայց 12 տուփը 9 դոլարից պակաս էր)

DAOKI 5Pcs Micro SD Storage Board (կրկին ձեզ հարկավոր է միայն մեկը, բայց 5 տուփը դեռ 9 դոլարից պակաս էր)

DFRobot 2.2 դյույմանոց TFT LCD ցուցադրման մոդուլ

Kingston 8 ԳԲ microSD (հնարավոր է, որ դրանցից մի հին ընկած լինի ձեր տան շուրջը)

Perma-Proto Quarter-size Breadboard PCB (կարող եք նաև պարզապես օգտագործել այն, ինչ ձեզ դուր է գալիս)

Կախարդական 8 գնդակ

FTDI Basic breakout 3.3V (գուցե դուք արդեն ունեք դրանցից մեկը, եթե նման նախագիծ եք կատարել Arduino Pro Mini- ի կամ նմանատիպ տախտակի հետ)

4 Pin բնակարան ՝ 2.54 մմ JST XH արական/իգական Pin Header Dupont Wire Connector Kit (ըստ ցանկության, բայց խորհուրդ է տրվում մարտկոցը միացնելու համար)

Այլ հիմնական պարագաներ

Sugru Moldable սոսինձ (կարող է օգտագործվել կպչուն ժապավեն և տաք սոսինձ, բայց ինձ դա ավելի է դուր գալիս)

Սկոտչ

Երկկողմանի փրփուր ժապավեն

Մետաղալար

Գործիքներ:

Sոդման երկաթ

Ձեր ընտրությամբ պտտվող գործիք (այսինքն ՝ Dremel)

Կահույքի սեղմիչ

Քայլ 1: Կտրեք կախարդական 8 գնդակը կիսով չափ

Կտրեք կախարդական 8 գնդակը կիսով չափ
Կտրեք կախարդական 8 գնդակը կիսով չափ
Կտրեք կախարդական 8 գնդակը կիսով չափ
Կտրեք կախարդական 8 գնդակը կիսով չափ

Նախ պետք է Magic 8 գնդակը կիսել կիսով չափ: Ես իմը ամրացրեցի աշխատանքային սեղանին ՝ հարթ կողմը ներքև, օգտագործելով կահույքի սեղմիչ: Օգտագործելով Dremel- ը `հիմնական կտրող սկավառակով ամրացված, կտրեք գնդակի կարի երկայնքով: Դուք պետք է կտրեք խորը, այնքան, որքանով կտրող սկավառակը թույլ կտա: Դանդաղ քայլեք: Նույնիսկ ամբողջ ճանապարհը կտրելուց հետո, վերջնական բաժանումը կատարելու համար գուցե անհրաժեշտ լինի օգտագործել հարթ գլխով պտուտակահան կամ դանակ: Կա մի գլան, որը պահում է «կախարդական» հեղուկը և իկոզաեդոնը (քսան կողմի ձև, այո, ես դա պետք է նայեի) ներսում: Պարզապես դեն նետեք այն կամ օգտագործեք այն այլ նախագծերում: Եթե դուք իսկապես օգտագործում եք այն այլ նախագծում, ասեք ինձ, թե ինչ եք արել, այնպես որ ես կիմանամ, թե ինչ անել իմի հետ:

Ձեզ կմնա երկու կես, ինչպես ցույց է տրված նկարներում: Ես դա արել եմ հիմա երեք անգամ, իսկ ամենավերջին անգամ ՝ սպիտակ շրթունքը ավելի հարթ էր, քան սրածայր, ուստի ձեր գնդակը կարող է մի փոքր այլ տեսք ունենալ, քան նկարի վրա եղածը:

Արտաքին եզրին (հալված և կարծրացած պլաստմասսա) դեռ պլաստիկ խարամ է մնալու: Արգելափակեք այն ձեռքերով, եթե կարող եք. գործիքի օգտագործումը ռիսկի է ենթարկում գնդակը ավարտին հասցնելը, և խարամը բավականին հեշտությամբ դուրս է գալիս:

Քայլ 2. Պատրաստեք գնդակը

Պատրաստեք գնդակը
Պատրաստեք գնդակը
Պատրաստեք գնդակը
Պատրաստեք գնդակը
Պատրաստեք գնդակը
Պատրաստեք գնդակը

Գոյություն ունի երկու փոփոխություն, որոնք մենք պետք է կատարենք գնդակի պլաստիկ կեսերի մասով:

Նախ, բաց կեսին, որի վրա պատկերված է «8» -ը, մենք պետք է սափրենք այնքան մեծ տարածք, որ մեր USB լիցքավորման տախտակը կարողանա նստել USB պորտը դուրս ցցված վիճակում: Ես օգտագործեցի իմ Dremel- ը `կցված կոպիտ հղկող թմբուկով: Դուք ցանկանում եք, որ այն հնարավորինս բարակ լինի, առանց մաքրվելու: Այնուհետև կտրեք մի փոքր բացվածք, որը բավականաչափ մեծ է, որպեսզի USB պորտը թույլ տա դուրս գալ դեպի դուրս: Ես USB- պորտը չափելու համար օգտագործեցի տրամաչափ, բայց անհրաժեշտության դեպքում, հավանաբար, կարող եք դա անել: Կրկին ես բացումը կատարելու համար օգտագործեցի «Դրեմելը» փոքր կտրող կցորդով: Առաջին երկու նկարները ցույց են տալիս բացումը և դրա տեսքը USB տախտակի հետևում:

Երկրորդը, մյուս կեսում, այն երկու կողմերում անցքով և սպիտակ պլաստմասե շրթունքով, պատրաստում են տեղ ՝ ցուցադրման նստելու համար: Հենց բացման ներսում, որտեղ կցուցադրվի էկրանը, բացման ներսում կան պլաստմասե սրածայրեր և ռետինե (?) Եզր: Հեռացրեք եզրը և մի կողմ դրեք: Մենք դա հետաձգելու ենք ավելի ուշ, բայց մենք ցանկանում ենք, որ դա ամեն ինչ չլինի այս քայլի համար: Էկրանը մի կողմում ունի ուղղանկյուն արտահոսք, որը թույլ չի տա, որ այն հարթ նստի բացման մեջ, եթե այդ գագաթներից մի քանիսը չհանվեն: Կրկին օգտագործելով Dremel- ի վրա ավազի կոպիտ թմբուկը, հնարավորինս սափրեք դրանք: Մտեք այն անցքից, որտեղ ցուցադրումը կլինի լավագույն անկյունի համար: Ամբողջական լինելուց հետո այն պետք է նման լինի նկարներին: Ուշադրություն դարձրեք, նկարները ցույց են տալիս ցուցադրումը տեղում, բայց դեռ մի ամրացրեք այն:

Քայլ 3: Պատրաստեք պատասխաններ Micro-SD քարտի վրա

Այս քայլը մի փոքր ավելի բարդ է, քան դուք կարող եք մտածել: Եթե չեք ցանկանում ստեղծել ձեր սեփական պատասխանների ցանկը, անցեք այս քայլի վերջին պարբերությանը:

Նպատակն այն է, որ մենք կարող ենք գնդակին տալ տողերի ցանկացած ցուցակ, որոնք պետք է օգտագործվեն որպես հնարավոր պատասխաններ, և դրանք կկենտրոնացվեն էկրանի վրա `առանց բառերի միջնամասի ընդմիջումների: Մենք չենք ցանկանում այս մշակումը կատարել միկրոկառավարիչի վրա, և մենք ուզում ենք ստատիկ գրանցման չափսերով ֆայլ, որպեսզի կարողանանք արագ գտնել որևէ կոնկրետ տող:

Չնայած էկրանը կլոր է, այն գործնականում վիրտուալ ուղղանկյուն էկրան է, որի շրջանակում տեսանելի են միայն պիքսելներ: Theուցադրումը կարող է ցույց տալ բազմակի չափի տեքստ, բայց մենք օգտագործում ենք միայն ամենափոքր տարբերակը, որը 6 x 8 պիքսել է: Օգտագործելով այս չափը, կան 315 նիշ, որոնք էկրանը կարող է դնել էկրանին (21 նիշ մեկ տողում 15 տող), բայց տեսանելի է միայն 221 -ը, և յուրաքանչյուր տող ունի տարբեր թվով տեսանելի նիշ: Տեսնո՞ւմ եք խնդիրը:

Ես գրել եմ Java ծրագիր ՝ չձևափոխված պատասխանների ֆայլ վերցնելու և դրանք ամբողջովին կենտրոնացված գրառումների վերածելու համար, որոնք հեշտությամբ կարող են ցուցադրվել կլոր TFT- ով: (հղում ՝ «FormatToPicksFileFullyCentered.java» ֆայլը ներբեռնելու համար):

Առանց ամբողջ ծածկագրի բացատրության, ընդհանուր գաղափարն այն է, որ մենք հետ ենք շարժվում հետընթաց կենտրոնից (ish) և տեղադրելով բացատներ `համոզվելու համար, որ բառերը չենք խախտում տեսանելի տողերի միջով, այնուհետև նույնը անում ենք կենտրոնական հարձակվող: Վերջապես, մենք շրջանցում ենք բոլոր տողերը և յուրաքանչյուր տող կենտրոնացնում ամբողջ 21 նիշ տողերի ներսում ՝ ստեղծելու ճշգրիտ 316 բայթ գրառում (315 այբբենական թվեր գումարած նոր տողի նիշ): Կոդը իրականում աշխատում է երեք տառատեսակների միջոցով ՝ x 3, x 2 և x 1, որպեսզի տեսնեք, թե որն է ամենամեծ տառատեսակը, որը կարող է օգտագործվել և դեռ տեղավորվում է տեքստի մեջ: Կենտրոնացումը մի փոքր անջատված է x 2 և x 3 տառատեսակների համար, կներեք: Carefulգույշ եղեք մեկից ավելի բայթ խլող նիշերից, դրանք կարող են դեն նետել ելքային ֆայլը:

Պատճենեք «picks.txt» ֆայլը միկրո-SD քարտի վրա:

Եթե դուք չեք ցանկանում անցնել ձեր սեփական ընտրանքների ցուցակը ստեղծելու դժվարության միջով, ես ներառել եմ իմ ընտրածների ցուցակը, որոնք կարող եք պարզապես պատճենել SD քարտի վրա և օգտագործել: Այս պահին ես չէի կարող.txt ֆայլը վերբեռնել հրահանգների վրա, ուստի այստեղ կա հղում, որտեղից կարող եք ներբեռնել picks.txt ֆայլը:

Քայլ 4. Վերբեռնեք կոդը Arduino Mini- ում

Վերբեռնեք կոդը Arduino Mini- ում
Վերբեռնեք կոդը Arduino Mini- ում
Վերբեռնեք կոդը Arduino Mini- ում
Վերբեռնեք կոդը Arduino Mini- ում
Վերբեռնեք կոդը Arduino Mini- ում
Վերբեռնեք կոդը Arduino Mini- ում

Նախ, եթե նախկինում երբեք չեք օգտագործել Arduino Pro Mini- ն, ապա չեք կարող պարզապես միացնել USB մալուխը և ներբեռնել: դուք պետք է օգտագործեք FTDI տախտակ և լարերը միացրեք մինի համապատասխան կապումներին: Ես դրա մասին այստեղ ձեռնարկ չեմ տա, համացանցում շատ բան կա: Ինձ համար ես չէի ցանկանա մշտական միակցիչ միացնել միկրոկառավարիչի տախտակին, որը միայն մեկ անգամ կօգտագործվեր ծածկագիրը ներբեռնելու համար, ուստի ես ստեղծեցի մի փոքրիկ հոլովակ, որը կարող է օգտագործվել մինի ծրագրավորման համար ՝ առանց զոդման (տես նկարները): Սա ոգեշնչված էր Fiddy- ի նման արտադրանքով, բայց ես 3D տպիչին հեշտ մուտք չունեմ, ուստի ես ինքս պատրաստեցի կարտոֆիլի չիպսերից: Եթե մարդիկ հետաքրքրված են, ես դրա համար ուսանելի կդարձնեմ:

Անցեք ծածկագրին: Այս օրենսգրքում կան մի քանի հետաքրքիր հատվածներ, բայց դրանք հիմնականում ուղիղ են:

Կարգավորման գործառույթում կա արժանապատիվ քանակությամբ կոդ, որը զբաղվում է լավ պատահական սերմ ստանալու հետ: Անկապ կապից անալոգային ընթերցման օգտագործման տիպիկ մեթոդը չի տալիս բավական բազմազան պատասխան իմ փորձին: Ես ստանում եմ մի թիվ 477 -ից 482 -ի միջև: Քանի որ Arduino- ի պատահական ֆունկցիան ունի մեկ և միայն մեկ հաջորդականություն, և սերմը որոշում է, թե որտեղից սկսել այդ հաջորդականությամբ, այսքան նեղ տիրույթը վերջում չի բերի բավարար հնարավոր պատասխաններ: Հիշեք, որ այս ծածկագիրը հիմնականում սկսվում է ամեն անգամ, երբ Wake-on-shake տախտակը անջատում և նորից միացնում է էլեկտրաէներգիան, ուստի սերմի որոշած հաջորդական հաջորդական դիրքը որոշիչ նշանակություն ունի: Այս հարցում օգնելու համար ես գրում եմ մի շատ փոքր ֆայլ SD քարտի վրա ՝ վերջին սերմը հետևելու համար և ավելացնում այն նոր արժեքին, որը գալիս է անկապ կապից:

Երբ loop գործառույթում ընտրվում է և կարդացվում է նիշերի զանգված, մենք չենք կարող պարզապես տպել ամբողջ տողը: Theուցադրման սահմանն այն է, թե որքան երկար կարող է լարը միաժամանակ կարգավորել: Այդ պատճառով մենք պետք է անցնենք յուրաքանչյուր տասնհինգ տողից և դրանք մեկ առ մեկ ուղարկենք ցուցադրման:

Պահանջվող արտաքին գրադարաններ

ST7687S գրադարան

DFRobot- ցուցադրման գրադարան

Քայլ 5: Լարացրեք բաղադրիչները

Լարացրեք բաղադրիչները
Լարացրեք բաղադրիչները
Լարացրեք բաղադրիչները
Լարացրեք բաղադրիչները

Timeամանակն է կատարել լարերի ամբողջ զոդումը: Ես հակված էի սխալվել մի փոքր ավելի երկար լարերի կողքին, քան ես իրականում պետք էի, բայց դա ի վերջո լավ ստացվեց:

Կցված սխեմատիկայում TFT էկրանը ներկայացված է միակցիչով, այլ ոչ թե ամբողջ դիսփլեյի նկարով (որի համար ես չկարողացա գտնել Fritzing մաս): Ես պիտակավորել եմ լարերը/կապումներն այն մասի վրա, թե ինչպես են դրանք պիտակավորված: Նմանապես, SD քարտը այն չէ, ինչ ես օգտագործել եմ, բայց ես նշեցի նշված մասի լարերը/կապերը:

Կա մեկ բաղադրիչ, որը ես այս փուլում միասին չեմ կպցրել `մարտկոցը: Փոխարենը, ես օգտագործեցի չորս փին միակցիչ ՝ հեռացված երկու միջին կապումներով (երկրորդ նկարը): Սա ինձ թույլ է տալիս ստուգել միացված բոլոր բաղադրիչները և այնուհետև անջատել մարտկոցը, մինչ ես ամեն ինչ ամրացնում եմ գնդակին:

Ի վերջո, ես օգտագործեցի քառորդ չափի մշտական տախտակի PCB ՝ էլեկտրաէներգիան և ընդհանուր կապերը ավելի դյուրին դարձնելու համար: Դուք դա կտեսնեք հավաքման նկարներում:

Ստուգեք, որ ամեն ինչ աշխատում է:

Քայլ 6. Կցեք բաղադրիչները գնդակին

Կցեք բաղադրիչները գնդակին
Կցեք բաղադրիչները գնդակին
Կցեք բաղադրիչները գնդակին
Կցեք բաղադրիչները գնդակին
Կցեք բաղադրիչները գնդակին
Կցեք բաղադրիչները գնդակին
Կցեք բաղադրիչները գնդակին
Կցեք բաղադրիչները գնդակին

Սկզբում տեղադրեք էկրանը և մի քանի Sugru օգտագործեք այն ամրացնելու համար (առաջին երկու նկարները): Մի մոռացեք այն եզրը, որը դուք ավելի վաղ հեռացրել եք: Դուք պետք է այն դարձնեք տեղում, նախքան էկրանը տեղում ամրացնելը:

Հաջորդը, ես նախատախտակը կպցրի գնդակի դատարկ կեսի հատակին: Ես իմ բոլոր զոդերը պահում էի տախտակի մի կողմում, այնպես որ ես դեռ ունեի տախտակի կեսը, որը կարող էի ամրացնել ժապավենով: Այնուհետև մարտկոցը կպցրեցի նախատախտակի նույն կեսի վրա (երրորդ պատկեր):

Երկու կեսերն այժմ միացված են լարերով: Պարզեք, թե որտեղ կավարտվի USB անցքը, երբ երկու կեսերը միասին դնեք: Եթե սպիտակ շրթունքների վրա ողնաշարը կպչում են, հիշեք, որ այն պետք է իջնի սպիտակ շրթունքների մի հատվածի կենտրոնում, քանի որ մենք կպահենք USB լիցքավորման տախտակը շուրթերի երկու պլաստիկ եզրերի միջև:

Փոքր երկկողմանի փրփուր ժապավենի մի փոքր կտորով ամրացրեք USB լիցքավորման տախտակը: Երկկողմանի ժապավենը չպետք է ծածկի լիցքավորման տախտակի ամբողջ ներքևը, քանի որ լարերը ամրացված ծայրը կախված կլինի սպիտակ շրթունքի կենտրոնական եզրից: Այսպիսով, ժապավենը պետք է ծածկի տախտակի ստորին մակերեսի մոտ երեք քառորդը: Սկզբում ժապավենը դրեք տախտակի ներքևի մասում, այնուհետև սեղմեք այն այն տեղում, որտեղ դուք որոշել եք: USB միակցիչը պետք է լինի գնդակի եզրին ՝ կպչելով պլաստիկի սև հատվածին ՝ առանց գնդակից դուրս գալու: Ի վերջո, տախտակի վերևում օգտագործեք մի քանի Sugru և ամրացրեք երկու կողմերում: Սա պարզապես լրացուցիչ ուժ է տալիս այն դեպքում, երբ մալուխը մղվում է USB պորտի մեջ:

Տեղադրեք միկրո-SD քարտը SD քարտի մոդուլի մեջ

Componentsանկության դեպքում կարող եք ամրացնել սպիտակ շրթունքների մյուս բաղադրիչները: Ես պարզապես խցկեցի մնացած բաղադրիչները էկրանի հետևում:

Քայլ 7: Միացրեք երկու կեսերը միասին

Երկու կեսերը միասին դրեք
Երկու կեսերը միասին դրեք
Երկու կեսերը միասին դրեք
Երկու կեսերը միասին դրեք

Կրկնակի ստուգեք, արդյոք դուք տեղադրել եք SD քարտը և արդյոք ստուգել եք բոլոր բաղադրիչները միասին:

Լավ, եթե պատրաստ եք, մի երկար օձ պատրաստեք Sugru սոսինձից և սպիտակ շրթունքով այն ամբողջ գնդակի կեսի եզրով շրջեք (առաջին նկարը): Սոսինձը պետք է դրվի անմիջապես այն հանգույցի վրա, որտեղ պլաստիկի սև և սպիտակ հատվածները միանում են: Սոսինձն այստեղ դնելը համոզված է, որ դուք ունեք ամուր կապ, միաժամանակ նվազագույնի հասցնելով սոսնձի քանակությունը, որը դուրս է գալիս ճեղքից երկու կեսերի միացումից հետո:

Սեղմեք երկու կեսերը միասին ՝ համոզվելով, որ USB պորտը կպչում է դրա համար նախկինում կտրված անցքից: Օգտագործելով կահույքի սեղմիչը, սեղմեք երկու կեսերը այնքան ամուր, որ կեսերը միասին պահեն, կարիք չկա այն ամուր սեղմել: Sugru սոսինձը մոտավորապես 24 ժամվա ընթացքում կամրանա:

Եթե դուք ունեք սոսինձ, որը դուրս է մղվել հոդից, ազատ զգացեք քերել այն մատով կամ հարթ կտորով/թղթե սրբիչով:

Խորհուրդ ենք տալիս: