Мазмуну:

RGB LED менен клавиатура модулу пианино: 5 кадам (сүрөттөр менен)
RGB LED менен клавиатура модулу пианино: 5 кадам (сүрөттөр менен)

Video: RGB LED менен клавиатура модулу пианино: 5 кадам (сүрөттөр менен)

Video: RGB LED менен клавиатура модулу пианино: 5 кадам (сүрөттөр менен)
Video: Сенсорное пианино Pimoroni Piano HAT для Raspberry Pi. Железки Амперки 2024, Июль
Anonim
Image
Image
Керектүү материалдар
Керектүү материалдар

Intro

Саламатсыздарбы айымдар жана мырзалар, менин эң биринчи көрсөтмөмө кош келиңиздер! Бүгүн мен сизге кантип фортепиано түзүүнү үйрөтөм, анын негизги компоненттери клавиатура модулу жана пьезо-зумер жана DO-RE-MI ж.б.у.с.

Көбүнчө баскыч модулунун максаты - бул ардуино RFID менен айкалышып, баалуу буюмдар үчүн коопсуз кутучаны түзүү. Бул учурда мен клавиатураны алмаштырдым, бир нерсени коргондун ордуна, мен жөнөкөй кубанычты жана музыканы сүйлөөнү чечтим.

Идея түшүнүгү

Бул чыгарма идеясынын концепциясы, мен кичинекей кезимде музыка классында ксилофонду ойноп жүргөндө, бактылуу эс тутумунан келип чыгат. Менин денемдеги кубанычтын жана толкундоонун эң жогорку чеги болчу, демек, ар бир бала оңой канааттанды, менин канааттануум ксилофонду ойноп жатты.

Изилдөө

Сиздин оюңуздагы лампа күйгөндөн кийин, кичине изилдөө керек. Вебди бир аз карап чыккандан кийин, мен башында ойлогон оюма туш келдим! А клавиатура модулу фортепиано айланды, кимдир бирөө ушул эле долбоордун видеосун бул жерде жараткан. Алдын ала ойлонуп, мен долбоорду андан ары өркүндөтө турган өзүнчө компонент кошушум керек болчу, бирок аны кызыктуу кылып, аны өзүмдүкү деп атай алам.

1 -кадам: Керектүү материалдар

Керектүү материалдар
Керектүү материалдар
Керектүү материалдар
Керектүү материалдар
Керектүү материалдар
Керектүү материалдар

Материалдар тизмеси

  • Piezo Buzzer 1x ▶
  • 4x4 баскыч модулу 1x ▶
  • Arduino Uno 1x ▶
  • USB 2.0 кабелдик түрү A/B 1x ▶
  • Үн сенсорунун модулу 1x ▶
  • RGB LED 1x ▶
  • 330 ом резистору 3x ▶
  • Эркек-ургаачы секирүүчү зым 8x ▶
  • Эркектен эркекке секирүүчү зым 4х ▶
  • 3 пин Эркектен ургаачы секирүүчү зым 1x ▶

Материалдардын тизмеси жогорудагы сүрөттөр менен иреттелген.

2 -кадам: Курулуш убактысы

Курулуш убактысы!
Курулуш убактысы!
Курулуш убактысы!
Курулуш убактысы!
Курулуш убактысы!
Курулуш убактысы!
Курулуш убактысы!
Курулуш убактысы!

4x4 баскычтоп модулу жана Piezo Buzzer

Теория

4x4 баскычтоп модулу жана пьезо сигналында ушунчалык жеке пин киргизүү бар болгондуктан, мен колдонулган компоненттерди эки жупка бөлүүнү чечем. Адатта киргизүү катары колдонулган баскычтопко басым жасоо. SunFounder 4*4 Matrix Keypad Module- бул параллелдүү 16 баскычтан турган матрицанын коддолгон эмес клавиатурасы, ар бир саптын жана мамычанын ачкычтары сырттагы пиндер аркылуу туташат- Y1-Y4 пин, саптарды көзөмөлдөөнүн жанында белгиленгендей, X1- X4, мамычалар.

Максаты

Бул компоненттердин бүтүндөй долбоордун максаты - колдонуучуга герц жыштыгында пьезо сигналынын жараткан белгилүү бир үнүнө баскычты басууга мүмкүнчүлүк берүү.

Matrix Module Pin - Arduino Pin

  • 4 - 2
  • 3 - 3
  • 2 - 4
  • 1 - 5
  • 5 - 6
  • 6 - 7
  • 7 - 8
  • 8 - 13

Piezo Buzzer - Ардуино Пин

Кара - GND

Кызыл - күч

Бул конструкциядагы эң татаал милдетим - ар бир зым кайда туташтырылганын билүү. Жогоруда мен сизге зымдардын жайгашуу жолун тез жана оңой көрсөтөм, эгер жогорудан ылдыйга чейин ээрчип жүрсөңүз, учуңуз шашпаңыз жана ар бир пин туура уячасына туура салынганын текшериңиз.

*Кеңеш - бул ар бир зымдын башынан аягына чейин жайгашкан жерин ээрчүү.

Белгилүү бир компоненттин зымдарынын бардык Tinkercad эскиздери түстүү түрдө коддолгон, ошондуктан кылдаттык менен аткарыңыз

3 -кадам: Үн сенсорунун модулу жана RGB LED

Үн сенсорунун модулу жана RGB LED
Үн сенсорунун модулу жана RGB LED
Үн сенсорунун модулу жана RGB LED
Үн сенсорунун модулу жана RGB LED
Үн сенсорунун модулу жана RGB LED
Үн сенсорунун модулу жана RGB LED

Үн сенсорунун модулу жана RGB LED

Теория

Үн сенсорунун модулу үн сиз тандаган чекиттен ашканын аныктоого мүмкүндүк берет. Үн микрофон аркылуу аныкталат жана LM393 оп -ампине берилет. Үн деңгээли белгиленген чекти ашкандан кийин, модулдагы LED жарыктандырылат жана чыгаруу.

Максаты

Бул компоненттердин бүтүндөй долбоордун максаты - үн сенсорунун модулунун үнүн/көлөмүн окуусун алуу жана ал аркылуу RGB LED диапазону үнгө тиешелүү туура түстү иштетет.

Үн сенсорунун модулу - Arduino Pin (3 Pin Jumper Wire колдонуңуз)

  • Чыгуу - A0 аналогдук пин
  • GND - Ар кандай ачык GND пин оюгу
  • VCC - 3V

RGB Common Anode (+) LED - Arduino Pin

  • Кызыл - 9
  • Күч - 5V
  • Жашыл - 10
  • Көк - 11

330 Омдук резистор аркылуу зым өткөрүүнү унутпаңыз. Шилтеме катары жогорудагы сүрөттү колдонуңуз.

Бул конструкциядагы эң татаал милдетим - ар бир зым кайда туташтырылганын билүү. Жогоруда мен сизге жана зым жайгашкан жерлерге кантип тез жана оңой жетүүнү камсыздайм, жогорудан ылдыйга чейин, кеңеш - бул сиздин убактыңызды алуу жана келечектеги мүчүлүштүктөрдү болтурбоо үчүн ар бир пин туура уячасына туура салынганын текшерүү.

*Кеңеш ар бир зым тигил же бул жакка киргизилген жерди карманыш керек

Белгилүү бир компоненттин зымдарынын бардык Tinkercad эскиздери түстүү түрдө коддолгон, андыктан ээрчип алыңыз

4 -кадам: Код

Code

Бул код бардык компоненттерге жаңы аныкталган функцияны колдонуу менен бирге иштөөгө мүмкүндүк берет, анын ичинде көптөгөн контролдоо элементтери камтылган, анын ичинде көптөгөн өзгөрмөлүү өзгөрмөлөр бар, бул компоненттер RGB жетектеген жана rgb түсүн колдонуу менен түсүн өзгөртүү үчүн жана пьезо сигналын жана үн баскычтын басылышына жараша болот.

Бул коддун ичинде болушу керек баскычтоп китепканасы

Шилтеме бул жерде:

Жүктөлгөндөн кийин, жаңы китепкананы arduinoго кошуңуз, андан кийин аны активдештирүү үчүн керектүү бирдиктүү кодду киргизиңиз.

Код учурунда болгон кыйынчылыктар, жаңы аныкталган функцияларды кайда жайгаштыруу керек болчу, анткени мен сыноо жана ката аркылуу анын циклда эмес, орнотууда болушу керек экенин түшүндүм.

Code

#кошуу // Баскычтоп китепканасы

int greenPin = 11; // RGB Green Pin санарип пин 9га туташкан

int redPin = 10; // RGB Red Pin санарип пин 9га туташкан

int bluePin = 9; // RGB Blue Pin санариптик пинге туташкан 9 int speakerPin = 12; // санарип пинге туташкан динамик 12 const байт ROWS = 4; // төрт катар const байт COLS = 4; // төрт коло const const int soundPin = A0; // үн сенсору A0го тиркелет

char баскычтары [ROWS] [COLS] = {

{'a', 'b', 'c', 'd'}, {'e', 'f', 'g', 'h'}, {'i', 'j', 'k', ' l '}, {' m ',' n ',' o ',' p '}}; // Ариптакта модулунун визуализациясы

байт rowPins [ROWS] = {2, 3, 4, 5}; // баскычтоптун сап пинуттарына туташуу

байт colPins [COLS] = {6, 7, 8, 13}; // баскычтоптун мамычанын пинуттарына туташуу

Баскычтоп баскычы = Баскычтоп (makeKeymap (баскычтар), rowPins, colPins, ROWS, COLS); // Ачкычтарды жаратат

жараксыз орнотуу () {

pinMode (SpeakerPin, OUTPUT); // SpeakerPinди чыгуучу кылып коёт

pinMode (redPin, OUTPUT); // кызыл пинди pinMode чыгаруу үчүн коёт (greenPin, OUTPUT); // жашыл төөнөгүчтү pinMode (bluePin, OUTPUT) кылып коёт; // көк пинди чыгуучу кылып коёт

Serial.begin (9600);

} void setColor (int red, int green, int blue) // RGBге RGB коду аркылуу түстү көрсөтүүгө уруксат берүү үчүн жаңы аныкталган функция {#ifdef COMMON_ANODE red = 255 - кызыл; жашыл = 255 - жашыл; көк = 255 - көк; #endif analogWrite (redPin, red); analogWrite (greenPin, жашыл); analogWrite (bluePin, blue); }

бош сигнал (кол коюлбаган char speakerPin, int frekansInHertz, long timeInMilliseconds) {// үн чыгаруучу функциялар

int x; long delayAmount = (long) (1000000/frekansInHertz); long loopTime = (long) ((timeInMilliseconds*1000)/(delayAmount*2)); үчүн (x = 0; x

void loop () {

char key = keypad.getKey (); int маани = analogRead (soundPin); // A0 Serial.println маанисин окуу (маани); // маанини басып чыгаруу

if (key! = NO_KEY) {

Serial.println (ачкыч); } if (key == 'a') {bip (speakerPin, 2093, 100); setColor (218, 112, 214); } if (key == 'b') {bip (speakerPin, 2349, 100); setColor (218, 112, 214); } if (key == 'c') {bip (speakerPin, 2637, 100); setColor (218, 112, 214); } if (key == 'd') {bip (speakerPin, 2793, 100); setColor (218, 112, 214); } if (key == 'e') {bip (speakerPin, 3136, 100); setColor (218, 112, 214); } if (key == 'f') {bip (speakerPin, 3520, 100); setColor (218, 112, 214); } if (key == 'g') {bip (speakerPin, 3951, 100); setColor (218, 112, 214); } if (key == 'h') {bip (speakerPin, 4186, 100); setColor (218, 112, 214); } if (key == 'i') {bip (speakerPin, 2093, 100); setColor (230, 230, 0); } if (key == 'j') {bip (speakerPin, 2349, 100); setColor (180, 255, 130); } if (key == 'k') {bip (speakerPin, 2637, 100); setColor (130, 255, 130); } if (key == 'l') {bip (speakerPin, 2739, 100); setColor (130, 220, 130); } if (key == 'm') {bip (speakerPin, 3136, 100); setColor (0, 255, 255); } if (key == 'n') {bip (speakerPin, 3520, 100); setColor (0, 220, 255); } if (key == 'o') {bip (speakerPin, 3951, 100); setColor (0, 69, 255); } if (key == 'p') {bip (speakerPin, 4186, 100); setColor (255, 0, 255); }}

5 -кадам: Акыркы ойлор

Image
Image

Акыркы ойлор

Бул долбоордун акыркы ойлору анын максаты - оюнчук болуу, көңүлдүү жана жөнөкөй кубаныч тартуулоо. Бул долбоор толук жана иштеп жаткандыктан, мен ишенем, бул курулуш жана дагы бир компонент менен улантылышы мүмкүн, мисалы, жазуу элементи, же көчүрүү/симон дейт элементи, же конкреттүү ырды ойнотуу үчүн жазылган ноталар менен.

Мен баскычтоп модулу жөнүндө сиздин пикириңизди билгим келет, сиз ойлогон кайсы компоненттер кошулушу мүмкүн эле. Сиз муну кандайдыр бир долбооруңузда колдоносузбу? Сураныч, төмөндөгү комментарийлер бөлүмүнө өз оюңузду жазыңыз.

Сураныч, бул ардуино долбоору сизге жакса, бөлүшүүнү унутпаңыз.

Сунушталууда: