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

Arduino-Raspberry Pi ձայնային նախատիպ. 9 քայլ (նկարներով)
Arduino-Raspberry Pi ձայնային նախատիպ. 9 քայլ (նկարներով)

Video: Arduino-Raspberry Pi ձայնային նախատիպ. 9 քայլ (նկարներով)

Video: Arduino-Raspberry Pi ձայնային նախատիպ. 9 քայլ (նկարներով)
Video: Հակոբ Սուլուկյան, Մովսես Խաչատրյան 2024, Նոյեմբեր
Anonim
Arduino-Raspberry Pi ձայնային տախտակի նախատիպ
Arduino-Raspberry Pi ձայնային տախտակի նախատիպ

Arduino- ի և Raspberry Pi- ի միջոցով ստեղծված ձայնային տախտակի նախատիպը պետք է լինի 4 տարբեր ձայների կամ աղմուկների հնչեցման պարզ միջոց ՝ միաժամանակ ունենալով կոճակով ձայնային հավաքածուները փոխելու և LCD էկրանով ներկայիս ձայնը ցուցադրելու հնարավորություն:

*Խնդրում ենք նկատի ունենալ. Codeրագրի ծածկագիրը 99% -ով ամբողջական է, բայց ֆունկցիոնալ չէ:

Raspberry Pi- ն վերահսկում է 16x2 LCD էկրանը և պտտվող կոդավորիչը, մինչդեռ Arduino- ն կարդում է ուժի նկատմամբ զգայուն դիմադրիչների (FSR) անալոգային մուտքերը և ազդանշան է ուղարկում Arduino- ին `ձայն հնչեցնելու համար: Մենք երկուսս էլ երբեք այս դասին նախորդող Arduino կամ Pi չէինք օգտագործել, բայց մեր պրոֆեսորը մեզ տվեց բոլոր անհրաժեշտ գործիքներն ու ուղեցույցը ՝ այս նախագիծը հեշտությամբ կոդավորելու և կառուցելու համար: TinkerCad- ը ՝ AutoDesk- ի 3D մոդելավորման անվճար առցանց գործիքը, օգտագործվել է մեր նախագիծը մոդելավորելու համար:

Նախագծի ամենադժվար հատվածը գտել էր միջոց, որը կհասցներ Arduino- ին և Raspberry Pi- ին հաղորդակցվել սերիական հաղորդակցության հետ: Մենք ի սկզբանե ցանկանում էինք օգտագործել Pi- ն նախագծի ամբողջականության համար, բայց մեզ անհրաժեշտ էր Arduino- ն `FSR- ների անալոգային ազդանշանը կարդալու համար: Մենք հեշտությամբ կարողացանք Arduino- ից ուղարկել բառերի կամ թվերի տողեր և ցուցադրել դրանք Pi- ով, բայց խնդիրը ծագեց, երբ մենք փորձեցինք այդ արժեքները կարդալ Python- ում և դրանք կիրառել պայմանական հայտարարությունների մեջ `դրանք մշակելու համար:

Պահանջվող հմտություններ

  • C/C ++ - ի պարզ ընկալում Arduino կոդավորման համար
  • Rasthberry Pi- ի կոդավորման համար Python- ի պարզ իմացություն
  • Գիտելիքներ այն մասին, թե ինչպես է միացվում սեղանի սեղանը
  • 3D մոդելավորման հիմնական հմտություններ
  • Programրագրավորում, էլեկտրագծեր և ինչ -որ կոկիկ ինչ -որ բան սովորելու և ընդլայնելու ցանկություն

Մասերի ցուցակ

1 x Ազնվամորի Pi 3

1 x Elegoo Uno OR Arduino Uno

1 x 830 Tie Breadboard

1 x GPIO Breakout Board (RSP-GPIO)

1 x ժապավենային մալուխ Breakout Board- ի համար

4 x Փոքր ուժի զգայուն դիմադրիչներ

1 x Հիմնական 16x2 բնույթի LCD էկրան

1 x Պտտվող կոդավորիչի մոդուլ

24 x Արականից իգական լարեր

10 x Արականից արական լարեր

4 x 10k դիմադրիչներ

1 x 10k պոտենցիոմետր

1 x Garden փրփուրի ծնկի բարձ (դոլարային խանութ)

Քայլ 1. Փորձարկեք FSR- ն Arduino- ի հետ

Փորձարկեք FSR- ն Arduino- ի հետ
Փորձարկեք FSR- ն Arduino- ի հետ

Մենք նախ որոշեցինք փորձել FSR- ն Arduino- ի հետ: FSR- ները անալոգային ազդանշան են ուղարկում, և, հետևաբար, մենք ստիպված էինք օգտագործել Arduino- ն, քանի որ Pi- ն անալոգային չի ստանում առանց այլ սխեմաների: Մենք ցանկանում էինք փորձարկել շեմերը `համոզվելու համար, որ մամուլը լավ ճնշման տակ է: Մենք պարզեցինք, որ այն 1000 -ից մոտ 150 -ն է: Arduino IDE- ի սերիական գծագրիչը շատ օգտակար էր այս քայլին:

Քայլ 2. Մշակեք խորհրդի պլանները

Մշակեք խորհրդի պլանները
Մշակեք խորհրդի պլանները
Մշակեք խորհրդի պլանները
Մշակեք խորհրդի պլանները

Հետո մենք կազմեցինք և չափեցինք խորհրդի պլանները: Մենք ցանկանում էինք ունենալ 4 բարձիկ ՝ ձայները նվագարկելու համար, LCD էկրանին տեղ ՝ ընթացիկ ձայնային խումբը ցուցադրելու համար, և պտտվող կոդավորիչ ՝ ձայնային խումբը փոխելու համար:

Քայլ 3. Մոդելավորեք խորհուրդը TinkerCad- ում

Մոդելավորեք խորհուրդը TinkerCad- ում
Մոդելավորեք խորհուրդը TinkerCad- ում
Մոդելավորեք խորհուրդը TinkerCad- ում
Մոդելավորեք խորհուրդը TinkerCad- ում
Մոդելավորեք խորհուրդը TinkerCad- ում
Մոդելավորեք խորհուրդը TinkerCad- ում

Theրագրերը մշակվելուց հետո մենք տախտակը մոդելավորեցինք առցանց, անվճար 3D մոդելավորման վեբ կայքի հիման վրա, որը կոչվում է TinkerCad Autodesk: Մենք բարձր խորհուրդ ենք տալիս ձեզանից նրանց, ովքեր չեն ցանկանում տոննա գումարներ ծախսել 3D մոդելավորման մեծ ծրագրերի վրա, քանի որ այն հեշտ է օգտագործել, ամպի վրա հիմնված և ունի լիարժեք աջակցություն 3D տպագրությանը:

Այն մոդելավորվելուց հետո մենք ստիպված էինք այն բաժանել 2 մասի, որպեսզի այն տեղավորվի տպիչի վրա: Այն իսկապես լավ տպագրվեց, բայց իմ սխալն այն էր, որ LCD էկրանի բնիկը շատ լավ չէր չափված (մի՛ արեք այդ սխալը): Մենք վերբեռնել ենք ձախ և աջ կողմերը: STL ֆայլեր, եթե ցանկանում եք դրանք ստուգել:

Քայլ 4: Փորձարկեք LCD էկրանը

Փորձարկեք LCD էկրանը
Փորձարկեք LCD էկրանը

Մենք արդեն օգտագործել էինք Arduino- ի էկրանը, և դա շատ հեշտ էր կարգավորել: Այնուամենայնիվ, ավելի դժվար էր այն գործարկել Pi- ի հետ: Google- ում մի քանի անսարքությունների վերացման և լարերի հետ շփման արդյունքում մենք վերջապես այն գործի դրեցինք: Խնդրում ենք վերջում տեսնել Python- ի վերջնական կոդը ՝ տեսնելու, թե ինչպես է այն աշխատում: Մենք օգտագործել ենք մի քանի կայք, որոնք կօգնեն մեզ կապել այն և գրել կոդը: Ստուգեք դրանք.

learn.adafruit.com/drive-a-16x2-lcd-direct…

www.raspberrypi-spy.co.uk/2012/07/16x2-lcd…

Քայլ 5. Ստուգեք պտտվող ծածկագրիչը LCD էկրանով

Ստուգեք պտտվող ծածկագրիչը LCD էկրանով
Ստուգեք պտտվող ծածկագրիչը LCD էկրանով

Հետո մենք ուզում էինք տեսնել, թե արդյոք մենք կարող ենք ստիպել LCD էկրանին փոխել տեքստը, երբ կոդավորիչը պտտվել է: Կոդավորիչը չունի որոշակի քանակությամբ անկյուններ կամ պտույտներ, ուստի ծածկագրում մենք հաշվել ենք, թե քանի անգամ է այն պտտվել ժամացույցի սլաքի կամ հակառակ ուղղությամբ և այն համարել 3 -ի: Եթե այն անցնի, այն կվերադառնա 0, և եթե այն 0 -ից ցածր լիներ, այն կվերադառնա մինչև 3 -ը: Այդ թվերը կարող են սահմանվել այնքան ձայնային հավաքածուների համար, ինչպիսին ձեզ դուր է գալիս, բայց մենք երբևէ միայն մեկ ձայնային հավաքածուի փորձարկում ենք կատարել: Համոզվեք, որ ձեր հնչյունները գտնվում են նույն թղթապանակում/վայրում, որտեղ կատարվում է հիմնական Python կոդը:

Քայլ 6. Հավաքեք խորհուրդը

Հավաքեք խորհուրդը
Հավաքեք խորհուրդը
Հավաքեք խորհուրդը
Հավաքեք խորհուրդը
Հավաքեք խորհուրդը
Հավաքեք խորհուրդը

FSR- ները սահում են չորս տարբեր անցքերի տակ: Մենք կենտրոնացրեցինք դրանք և ամրացրեցինք դրանք: Մենք խորհուրդ ենք տալիս կպչուն ժապավեն կամ գուցե նույնիսկ սոսնձում, քանի որ պարզ սկոտչը սարսափելի էր 3D տպված նյութին կպչելիս: Դոլարների խանութ կատարած արագ ուղևորությունից հետո մենք գտանք փափուկ, բայց փխրուն այգու ծնկի բարձ, որը կարող էինք կտրել չորս մասի և օգտագործել որպես տախտակի կոճակներ: Մենք դրանք կտրեցինք այնպես, որ նրանք կարողանային ամուր տեղավորվել իրենց բծերում, որպեսզի նրանք կարողանային մնալ տեղում, բայց նաև անհրաժեշտության դեպքում հեշտությամբ հեռացվեին:

Քայլ 7: Ամրագրեք ամեն ինչ

Wire It All Up
Wire It All Up
Wire It All Up
Wire It All Up

Տախտակը հավաքելուց և FSR- ները, կոդավորիչը և էկրանը տեղում դնելուց հետո մենք ամեն ինչ լարեցինք: Դուք կարող եք օգտագործել 2 տախտակ, բայց մենք կարողացանք ամեն ինչ տեղավորել մեկի վրա: Նկարը խառնաշփոթ է թվում, բայց մենք սխեմատիկ դիագրամ ենք կազմել Fritzing կոչվող անվճար ծրագրում: Նկատի ունեցեք, որ դուք կարող եք փոխել այն կապերը, որոնց ցանկանում եք կցել ամեն ինչ, սակայն դիագրամը համապատասխանում է մեր ծածկագրին:

Քայլ 8: Ավարտեք ամեն ինչի կոդավորումը

Սա բարդ մասն էր: Ինչպես նշվեց ներածության մեջ, մենք չկարողացանք ավարտել այս հատվածը: Կոդը 99% -ով է, բայց մի մասը, որը չաշխատեց, Arduino- ից Pi- ի սերիական հաղորդակցությունն էր: Մենք կարող էինք տեղեկատվությունը հեշտությամբ ուղարկել, երբ Arduino- ն Pi- ին միացրեցինք USB մալուխով, բայց Pi- ն ոչինչ չկարողացավ անել, բացի այդ տեղեկատվությունը էկրանին ցուցադրելուց: Մենք ցանկանում էինք, որ կարողանանք ասել, թե որ կոճակը սեղմված է և հնչեցնել որոշակի հնչողություն, սակայն հաղորդակցության միջոցով եկող տվյալները չեն կարող դրվել պայմանական հայտարարության մեջ ՝ ստուգելու, թե ինչ կոճակ է սեղմված:

Խնդրում ենք տեսնել կից կոդը, նշումները մեկնաբանվել են Python կոդի մեջ Pi- ի համար: Arduino ծածկագիրը պետք է լինի 100%:

Քայլ 9: Եզրափակեք

Եզրափակել
Եզրափակել

Ընդհանուր առմամբ, այս նախագիծը երկուսիս համար ՄԵ H ուսուցման փորձ էր, և մենք հույս ունենք, որ այս գրառումը կարող է ապագա ուսանողներին, ուսուցիչներին կամ ասեղնագործներին որոշակի ոգեշնչում տալ սեփական նախագծի համար և նրանց ուղղորդել ՝ սովորելով մեր սխալներից: Աղաղակեք մեր ռոբոտաշինության հիանալի պրոֆեսորին, ով անչափ օգնեց մեր դասաժամին և մեզ հնարավորություն տվեց մի տոննա զվարճանալ և շատ բան սովորել COMP- ի ավագ դասարանում: Շնորհակալություն կարդալու համար:)

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