جدول المحتويات:

اردوينو المسرع: 4 خطوات
اردوينو المسرع: 4 خطوات

فيديو: اردوينو المسرع: 4 خطوات

فيديو: اردوينو المسرع: 4 خطوات
فيديو: كيفية الجري لمسافات طويلة بدون توقف؟ | تقنيات الجري 2024, شهر نوفمبر
Anonim
Image
Image

عند تعلم آلة موسيقية جديدة كطفل ، هناك الكثير من الأشياء الجديدة التي يجب التركيز عليها. مواكبة الإيقاع الصحيح هو واحد منهم. إن عدم العثور على بندول مسرع كامل وظيفيًا ومريحًا يعني أفضل عذر لبدء البناء مرة أخرى مع أطفالي. في منشور Instructables هذا ، ستجد الوصف الوظيفي ، وقائمة الأجزاء مع روابط وأسعار متجر الويب ، ومخطط الأسلاك للتجميع ، وكود مصدر Arduino الكامل.

الخطوة 1: الوصف الوظيفي

قائمة الاجزاء
قائمة الاجزاء

سيكون من الجيد أن يكون لديك جهاز بندول مع الوظائف التالية لاستخدامه في المنزل أو في مدرسة الموسيقى بسهولة.

  • عامل شكل مدمج ليناسب الأماكن الصغيرة فوق أو بجانب الآلات الموسيقية ،
  • تعمل بالبطارية وقوية ومحمولة لتحملها ،
  • سهولة الإعداد حتى للأطفال ، يتم عرض قيمة BPM دائمًا ،
  • نبضات قابلة للتعديل في الدقيقة بمقبض دوار ، حتى 240 نبضة في الدقيقة
  • اللباقة المسموعة مع التحكم في مستوى الصوت ،
  • الوضع الصامت لممارسة سماعة الرأس طوال الليل ،
  • ردود الفعل المرئية للنبضات (1/4 ، 2/4 ، 3/3 ، 4/4 ، 6/8 ، إلخ) حتى 8 مصابيح LED ،
  • مع أو بدون لهجة رائدة ، مع ملاحظات مرئية ومسموعة.

عند التبديل ، سيبدأ وضع المسرع عند 60 نبضة في الدقيقة يظهر على الشاشة الصغيرة ويترك السرعة يتم ضبطها بواسطة المقبض الدوار بين 10 و 240. تُظهر Neopixels الإيقاع في مصابيح LED زرقاء بينما يدق الجرس. سيؤدي الضغط على المقبض إلى التبديل للتغلب على وضع الضبط وستشير مصابيح LED الخضراء إلى بنية الإيقاع المحددة. سيزيد المقبض الدوار أو ينقص بنية الإيقاع (2/2 ، 3/3 ، 4/4 ، 6/8 ، إلخ). أعلى من 8 مصابيح LED ، يتم تدوير المزيد في اتجاه عقارب الساعة ، وسيتم تشغيل العلامة الأولية ، وسيشير مؤشر LED الأول إلى ذلك باللون الأحمر. سيكون لللهجة الرائدة ردود فعل مسموعة أيضًا. يمكن إيقاف تشغيله بالتناوب في عكس اتجاه عقارب الساعة. سيؤدي الضغط على المقبض إلى التبديل من وضع ضبط الإيقاع إلى وضع المسرع.

الخطوة 2: قائمة الأجزاء

سوف تحتاج قضية. يمكن شراء أي شكل أو حجم ، ولكن كان لدينا علبة معدنية سوداء لطيفة لمفتاح VGA يدوي قديم تم التخلص منه من صديق. بقية الأجزاء مذكورة أدناه.

  • بطارية 9 فولت ، 1.50 دولار أمريكي
  • كابل موصل البطارية ، 0 ، 16 دولارًا أمريكيًا
  • Arduino Nano مع موصلات دبوس ، 2.05 دولار أمريكي
  • درع تمديد Nano IO ، 1 دولار أمريكي ، 05
  • مفتاح منزلق صغير للطاقة ، 0.15 دولار أمريكي
  • جرس بيزو ، 86 دولارًا أمريكيًا
  • Adafruit Neopixel WS2812 8 بت ، 1 دولار أمريكي ، 01
  • شاشة OLED 128 × 64 ، 1 دولار أمريكي ، 53
  • جهاز تشفير دوار ، 0 دولار أمريكي ، 50
  • كابلات دوبونت F / F ، 0 دولار أمريكي ، 49

السعر الإجمالي للمكونات أقل من 10 دولارات أمريكية ، -

الخطوة 3: مخطط الأسلاك

الاسلاك الرسم البياني
الاسلاك الرسم البياني

استخدم لوحة تمديد Nano IO حتى لا تهتم بلحام وصلات GND و VCC المتعددة. ستكون هناك حاجة إلى الحد الأدنى من اللحام لرؤوس Nano pin وموصلات وحدة Neopixel. يسمح استخدام أسلاك Dupont بتوصيلات مستقرة لبقية الأسلاك كما هو موضح في الرسم التخطيطي. يتم توصيل بطارية 9V بـ GND و VIN ، والأخيرة من خلال مفتاح منزلق الطاقة. تحتوي وحدة التشفير الدوار على زر تبديل متكامل ، يظهر بشكل منفصل في الرسم التخطيطي لتسهيل فهم كيفية توصيلها. الجزء الدوار (CLK و DT) متصل بـ PIN2 و PIN3 على التوالي ، لأن هذه هي دبابيس NANO الوحيدة القادرة على معالجة المقاطعة. يتم توصيل Rotary GND بـ Nano's GND PIN بالطبع. زر التبديل المدمج متصل بـ PIN4. الجرس بيزو متصل بـ PIN5 و GND. وحدة Adafruit Neopixel متصلة بـ PIN7 و VIN و GND إلى Nano's 5V و GND على التوالي. يتم توصيل شاشة OLED الصغيرة بواجهة ناقل I2C ، وهي PIN A4 و A5 لـ SDA و SDL. يذهب VCC و GND إلى Nano's 5V و GND بالطبع. هذا يخلص لدينا الأسلاك Dupont.

الخطوة 4: كود مصدر اردوينو

كود مصدر اردوينو
كود مصدر اردوينو

// المسرع ، اللكنة الرائدة ، اللباقة المرئية والمسموعة - 2019 Peter Csurgay

#include #include #include #include #include "TimerOne.h" #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 // Reset pin # (أو -1 في حالة مشاركة دبوس إعادة تعيين Arduino) عرض Adafruit_SSD1306 (SCREEN_WIDEIGHT) & الأسلاك ، OLED_RESET) ؛ #define pin_neopixel 7 #define NUMPIXELS 8 #define BRIGHTNESS 32 Adafruit_NeoPixel pixels = Adafruit_NeoPixel (NUMPIXELS، pin_neopixel، NEO_GRB + NEO_KHZ800) ؛ #define IDLE_11 0 #define SCLK_01 1 #define SCLK_00 2 #define SCLK_10 3 #define SDT_10 4 #define SDT_00 5 #define SDT_01 6 int state = IDLE_11 ؛ #define CLK 2 #define DT 3 #define pin_switch 4 #define pin_buzzer 5 int bpm = 60 ؛ int bpmFirst = 0 ؛ // LED قيد التشغيل في البداية ، إيقاف التشغيل عند الراحة … int تك = 4 ؛ رائد منطقي = خطأ ؛ عدد نقاط البيع = 0 ؛ انحناء كثافة العمليات = 0 ؛ int prevVal = 0 ؛ إعداد باطل () {pixels.begin () ؛ pinMode (pin_buzzer ، الإخراج) ؛ Timer1.initialize (1000000 * 60 / نبضة في الدقيقة / 2) ؛ Timer1.attachInterrupt (buzztick) ؛ pinMode (CLK ، INPUT_PULLUP) ، pinMode (DT ، INPUT_PULLUP) ؛ pinMode (pin_switch ، INPUT_PULLUP) ؛ attachInterrupt (digitalPinToInterrupt (CLK) أو rotaryCLK أو أختر) ؛ attachInterrupt (digitalPinToInterrupt (DT) ، rotaryDT ، أختر) ؛ if (! display.begin (SSD1306_SWITCHCAPVCC، 0x3C)) {// Address 0x3D for 128x64 for (؛؛)؛ // لا تتابع ، حلقة للأبد} display.clearDisplay ()؛ display.display () ، } حلقة باطلة () {if (digitalRead (pin_switch) == LOW) {delay (100)؛ بينما (digitalRead (pin_switch) == منخفض) ؛ تأخير (100) ؛ Timer1.detachInterrupt () ، showGreenTacks () ، while (digitalRead (pin_switch) == HIGH) {if (curVal> prevVal) {تك + = 1 ؛ إذا (تك> 8) {إذا (الرائدة تك) تك = 8 ؛ else {leadTack = true؛ تك = 1 ؛ }}} else if (curValprevVal) {bpm + = 2؛ إذا (نبضة في الدقيقة> 240) نبضة في الدقيقة = 240 ؛ } else if (curVal = 100) display.print ("")؛ آخر display.print ("")؛ عرض الطباعة (نبضة في الدقيقة) ؛ display.display () ، } buzztick void () {if (bpmFirst == 0) {int volume = 4؛ إذا (leadTack && pos == 0) الحجم = 8 ؛ لـ (int i = 0 ؛ i

موصى به: