你能想像你甚至可以在水果上彈鋼琴嗎? Seeeduino XIAO 可以幫助你! 簡單的步驟,簡單的材料,人人都能做出來。 播放音樂 Seeeduino 肖 現在! 和我們一起建立這個項目,讓自己成為朋友中的音樂之王!

工作原則

內置 Q-Touch 功能 Seeeduino XIAO 使您能夠檢測 GPIO 的微小容量變化,您可以將每個 GPIO 分配為一個鍵並播放特定的音調,然後您就可以打開 GPIO Seeeduino XIAO 作為您的樂器鍵盤,您可以彈奏自己喜歡的歌曲!

你需要準備的東西:

硬件連接

樂譜

代碼

#include "Adafruit_FreeTouch.h"
#define SPEAKER 2
Adafruit_FreeTouch qt_1 = Adafruit_FreeTouch(A0, OVERSAMPLE_4, RESISTOR_50K, FREQ_MODE_NONE);
Adafruit_FreeTouch qt_2 = Adafruit_FreeTouch(A1, OVERSAMPLE_4, RESISTOR_50K, FREQ_MODE_NONE);
Adafruit_FreeTouch qt_3 = Adafruit_FreeTouch(A6, OVERSAMPLE_4, RESISTOR_50K, FREQ_MODE_NONE);
Adafruit_FreeTouch qt_4 = Adafruit_FreeTouch(A7, OVERSAMPLE_4, RESISTOR_50K, FREQ_MODE_NONE);
Adafruit_FreeTouch qt_5 = Adafruit_FreeTouch(A8, OVERSAMPLE_4, RESISTOR_50K, FREQ_MODE_NONE);
Adafruit_FreeTouch qt_6 = Adafruit_FreeTouch(A9, OVERSAMPLE_4, RESISTOR_50K, FREQ_MODE_NONE);
Adafruit_FreeTouch qt_7 = Adafruit_FreeTouch(A10, OVERSAMPLE_4, RESISTOR_50K, FREQ_MODE_NONE);
int BassTab[] = {1911, 1702, 1516, 1431, 1275, 1136, 1012}; //bass 1~7

void setup() {
  Serial.begin(115200);
  pinMode(SPEAKER, OUTPUT);
  digitalWrite(SPEAKER, LOW);
  //  while (!Serial);
  Serial.println("FreeTouch test");
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);

  if (! qt_1.begin())
    Serial.println("Failed to begin qt");
  if (! qt_2.begin())
    Serial.println("Failed to begin qt");
  if (! qt_3.begin())
    Serial.println("Failed to begin qt");
  if (! qt_4.begin())
    Serial.println("Failed to begin qt");
  if (! qt_5.begin())
    Serial.println("Failed to begin qt");
  if (! qt_6.begin())
    Serial.println("Failed to begin qt");
  if (! qt_7.begin())
    Serial.println("Failed to begin qt");
}

int qt_Threshold = 850;

void loop() {
  int qt1 = 0;
  int qt2 = 0;
  int qt3 = 0;
  int qt4 = 0;
  int qt5 = 0;
  int qt6 = 0;
  int qt7 = 0;

  qt1 = qt_1.measure();
  Serial.print(qt1);
  Serial.print(",");

  qt2 = qt_2.measure();
  Serial.print(qt2);
  Serial.print(",");

  qt3 = qt_3.measure();
  Serial.print(qt3);
  Serial.print(",");

  qt4 = qt_4.measure();
  Serial.print(qt4);
  Serial.print(",");

  qt5 = qt_5.measure();
  Serial.print(qt5);
  Serial.println();

  qt6 = qt_6.measure();
  Serial.print(qt6);
  Serial.println();

  qt7 = qt_7.measure();
  Serial.print(qt7);
  Serial.println();

  if (qt1 >= qt_Threshold) {
    sound(1);
  }
  if (qt2 >= qt_Threshold) {
    sound(2);
  }
  if (qt3 >= qt_Threshold) {
    sound(3);
  }
  if (qt4 >= qt_Threshold) {
    sound(4);
  }
  if (qt5 >= qt_Threshold) {
    sound(5);
  }
  if (qt6 >= qt_Threshold) {
    sound(6);
  }
  if (qt7 >= qt_Threshold) {
    sound(7);
  }
}
void sound(uint8_t note_index)
{
  for (int i = 0; i < 50; i++)
  {
    digitalWrite(SPEAKER, HIGH);
    delayMicroseconds(BassTab[note_index]);
    digitalWrite(SPEAKER, LOW);
    delayMicroseconds(BassTab[note_index]);
  }
}

Seeeduino XIAO

Seeeduino XIAO 是 Seeeduino 家族中最小的成員。 它搭載功能強大的 ATSAMD21G18A-MU,這是一款低功耗微控制器。 這個小板子處理性能好,功耗低。 它的小尺寸使其非常適合構建可穿戴項目。

格羅夫盾 為了 Seeeduino XIAO

即插即用 樹林 擴展板用於 Seeeduino XIAO . 它充當了一座橋樑 Seeeduino XIAO 樹林 系統。 借助板載電池管理芯片和電池焊盤,您可以輕鬆地為您的電池供電 Seeeduino XIAO 用鋰電池充電。

樹林 – 揚聲器加

樹林 Speaker Plus 包括一個強大的放大器驅動板和一個精美的揚聲器。 您可以將揚聲器更換為您喜歡的其他揚聲器,因為它採用分離式可更換揚聲器設計。 並且在板載電位器的幫助下,您可以輕鬆調節輸出音量。

在本文中,我們探討瞭如何使用 Seeeduino XIAO 的 Q-Touch 功能製作水果鋼琴。 如果您有任何問題,請隨時提問 faqdesk.net 在下面的評論部分。