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

مؤقت Stepper Pomodoro: 3 خطوات (بالصور)
مؤقت Stepper Pomodoro: 3 خطوات (بالصور)

فيديو: مؤقت Stepper Pomodoro: 3 خطوات (بالصور)

فيديو: مؤقت Stepper Pomodoro: 3 خطوات (بالصور)
فيديو: Pomodoro Technique 6 x 25 min - Study Timer 3h 2024, شهر نوفمبر
Anonim
Image
Image
الخطوة 1: دارة اللحام والتوصيل خارج الحاوية
الخطوة 1: دارة اللحام والتوصيل خارج الحاوية

The Stepper Pomodoro هو مؤقت مكتبي لمساعدة الشخص على إدارة قائمة المهام اليومية عن طريق تقسيم كل فترة عمل إلى مقاطع 30 دقيقة. ومع ذلك ، على عكس مؤقت بومودورو العادي ، فإنه لا يجعلك قلقًا من خلال إظهار مقدار الوقت المتبقي. بدلاً من ذلك ، يعرض الوقت تقريبًا عبر أي من الأوجه الثلاثة يتم تكتك. من خلال عدم إظهار الوقت المحدد ، فإنه يسمح لك بالتركيز فعليًا على المهمة التي تقوم بها ، بدلاً من التحقق باستمرار من الوقت المتبقي. هذا البومودورو مثالي لأولئك الذين يحتاجون إلى بنية خفيفة وغير مزعجة لإدارة مهامهم.

أدوات

• لحام حديد

• أدوات تقشير الأسلاك

• أداة القطع بالليزر (أو أداة الصنفرة حسب الطريقة التي تريد إنشاء أقراص المؤقت)

• المثقاب (لقد استخدمت مكبس حفر لعمل ثقوب كبيرة بما يكفي للقرص)

المواد

• 1 اردوينو أونو

• 1 لوح نصف الحجم

• 3 جسور H (استخدمت DRV8833 ، لقد وفر لي درع المحرك بعض الوقت والصداع)

• 3 محركات متدرجة (استخدمت NEMA 17 steppers)

• 1 زر

• 1 220-1 كيلو أوم المقاوم (أي داخل النطاق جيد)

• محول تيار متردد / تيار مستمر (كنت أستخدم 12 فولتًا ، وربما يكون كبيرًا جدًا بالنسبة لهذه الكمية من السائر)

• موزع الطاقة

• سلك USB A-B

• أسلاك اللوح

• جندى

• مواد حاوية الموقت

• أكريليك للموانئ

• مسامير أو دبابيس معدنية للعمل كذراع ثابت للموقت

الخطوة 1: الخطوة 1: لحام وتوصيل الدائرة خارج الحاوية

في هذه الخطوة ، بدأت بلحام جميع جسور H الخاصة بي معًا (إذا قمت بشراء درع المحرك ، فلن تحتاج إلى لحامها. بمجرد أن يكون لديك جسر H لكل خطوة ، يمكنك التحقق من كيفية توصيل أسلاك السائر.

إن NEMA 17s هي ما يُعرف باسم محركات السائر ثنائية القطب ، مما يعني أن لديهم مجموعتين (بدلاً من مجموعة واحدة) من الملفات داخل المحرك والتي تغير القطبية للسماح بالحركة الدقيقة للمحرك. عادةً ما يكون للخطوات ثنائية القطب أربعة أسلاك ، وعادةً ما تحتوي السائر القطبية على ستة أسلاك ، مما أدى إلى تعقيد التعليمات عبر الإنترنت قليلاً. ومع ذلك ، يمكنك توصيل عدة أمتار بسلكين ومعرفة ما إذا كانا متصلين أم لا. السائر NEMA 17 لها ترتيب الأسلاك الخاص بهم باللون الأحمر والأصفر والرمادي والأخضر ، مع كون الأحمر والرمادي أول زوج قطبي والأصفر والأخضر هما الزوج القطبي الثاني. إذا بدأ السائر في أي وقت في الوخز بدلاً من إكمال الحركة المتوقعة ، فالاحتمالات هي أن الأسلاك الخاصة بك غير مستقطبة بطريقة ما بشكل صحيح لتوأمها أو أن أحدها مفصول. يتم التحكم في كل خطوة من خلال أربعة دبابيس إخراج تتصل بجسور DRV8833 H. ترتيب الأسلاك لإدخال DRV8833 هو: IN1، IN2، Power، Ground، IN3، IN4. لأغراض الإخراج ، يتصل NEMA بالأربعة الوسطى من الدبابيس الستة بالترتيب: أحمر ، رمادي ، أصفر ، أخضر. الآن دعنا نربط الطاقة. لدي NEMAs الخاصة بي على المنافذ الرقمية 2-13.

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

أخيرًا ، حان الوقت لتوصيل الزر. سيحتاج جانب واحد من الزر إلى كل من الطاقة (مع المقاوم الخاص بنا) بالإضافة إلى دبوس الإخراج الملحوم (يمكن القيام بذلك أيضًا من اللوح). الدبوس الآخر سيكون أرضنا. يجب توصيل هذه الأسلاك الثلاثة: الطاقة مع المقاوم حتى 5 فولت ، والإخراج إلى A0 ، والأرضي جميعها على لوحة Arduino Uno نفسها.

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

الخطوة 2: الخطوة 2: تحميل الكود وتعديله حسب احتياجاتك

الخطوة الثانية: تحميل الكود وتعديله حسب احتياجاتك
الخطوة الثانية: تحميل الكود وتعديله حسب احتياجاتك

يوجد أدناه رمز زر بومودورو الخاص بي ، من أجل تخصيصه وفقًا للإعداد الخاص بك ، اتبع الخطوات التالية:

1. قم بتعيين عدد الخطوات لكل دورة لنوع السائر الشخصي الخاص بك (NEMA 17s بها 200 وهي مدرجة في العدد الصحيح الثابت المسمى stepsPerRevolution).

2. تعيين حيث يتم إدخال الزر الخاص بك في عدد صحيح ثابت buttonPin المتصل.

3. حدد المكان الذي يجب أن يخرج منه اردوينو الخاص بك لقيادة السائر (قد تختلف هذه الأجزاء أكثر بين أنواع الجسور H لأن العديد منها لديها مكتبات مختلفة يستخدمونها).

4. اضبط سرعة السائر في RPMs في.setSpeed (لقد قمت بتعيين سرعة 1 دورة في الدقيقة عند الدوران في اتجاه عقارب الساعة و 30 دورة في الدقيقة عند الدوران عكس اتجاه عقارب الساعة).

5. قم بتعيين عدد المرات التي تريد أن يدور فيها كل من السائر قبل أن يتحرك (يحسب السائر عشر دقائق ، لذلك يدورون عشر مرات عند 1 دورة في الدقيقة).

6 عيّن المدة التي ترغب في تدويرها للخلف.

#يشمل

const int stepsPerRevolution = 200 ؛ // ضبط ثابت لعدد الخطوات في كل ثورة كاملة لمحركات السائر الخاصة بي

const int buttonPin = A0 ؛ // إعداد ثابت لإدخال الزر الخاص بي

Stepper firstStepper (stepsPerRevolution ، 2 ، 3 ، 4 ، 5) ؛ // تهيئة مكتبة السائر على دبابيس معينة

الخطوة الثانية Stepper (stepsPerRevolution ، 6 ، 7 ، 8 ، 9) ؛ Stepper ThirdStepper (stepsPerRevolution ، 10 ، 11 ، 12 ، 13) ؛ Stepper firstStepperBack (stepsPerRevolution ، 2 ، 3 ، 4 ، 5) ؛ / / أعد تهيئة مكتبة السائر على هذه المسامير لتتمكن من إعادة تعيين rpm عند التنبيه بأن الوقت قد انتهى Stepper secondStepperBack (stepsPerRevolution، 6، 7، 8، 9) ؛ الخطوة الثالثة StepperBack (stepsPerRevolution ، 10 ، 11 ، 12 ، 13) ؛

عدد الدقائق: عداد = 0 ؛ // كثافة العمليات عد الثورات الكاملة من السائر

int timerState = منخفض ؛ // الحالة الحالية لمؤقت بومودورو (عالية = تشغيل ، منخفض = إيقاف / إعادة تعيين) int buttonState ؛ // القراءة الحالية من طرف الإدخال int lastButtonState = HIGH ؛ // القراءة السابقة من دبوس الإدخال

// المتغيرات التالية غير موقعة طويلة لأن الوقت ، يقاس بالمللي ثانية ،

// سيصبح عددًا أكبر بسرعة مما يمكن تخزينه في عدد صحيح. lastDebounceTime طويل بدون توقيع = 0 ؛ // آخر مرة تم فيها تبديل دبوس الإخراج بدون توقيع طويل debounceDelay = 50 ؛ // وقت الرفض ؛ زيادة في حالة وميض الإخراج

الإعداد باطل() {

pinMode (buttonPin ، INPUT_PULLUP) ؛ // ضبط ثابت الزر كمدخل

firstStepper.setSpeed (1) ، // اضبط السرعة عند 1 دورة في الدقيقة لعد 10 دقائق لكل خطوة في الثانية Stepper.setSpeed (1) ؛ ThirdStepper.setSpeed (1) ، firstStepperBack.setSpeed (30) ، // اضبط السرعة عند 30 دورة في الدقيقة للتنبيه بأن الوقت قد انتهى بعد أن أكمل بومودورو الثانية StepperBack.setSpeed (30) ؛ ThirdStepperBack.setSpeed (30) ،

Serial.begin (9600) ؛ // بدء تشغيل الشاشة التسلسلية بمعدل باود 9600

}

حلقة فارغة() {

// اقرأ حالة التبديل إلى متغير محلي: قراءة int = digitalRead (buttonPin) ؛

// تحقق لمعرفة ما إذا كنت قد ضغطت للتو على الزر

// (أي انتقل الإدخال من LOW إلى HIGH) ، وانتظرت // لفترة كافية منذ آخر ضغطة لتجاهل أي ضوضاء:

// إذا تغير المفتاح ، بسبب الضوضاء أو الضغط:

if (reading! = lastButtonState) {// إعادة تعيين مؤقت التصحيح lastDebounceTime = millis () ؛ } if ((millis () - lastDebounceTime)> debounceDelay) {// مهما كانت القراءة ، فقد كانت موجودة لفترة أطول // من تأخير التصحيح ، لذا اعتبرها الحالة الحالية الفعلية:

// إذا تغيرت حالة الزر:

إذا (قراءة! = buttonState) {buttonState = قراءة ؛

// فقط قم بتبديل تنشيط المؤقت إذا كانت حالة الزر الجديدة تشير إلى أنه تم الضغط عليه

// اضغط مرة واحدة للتشغيل ، واضغط مرة أخرى لإيقاف التشغيل إذا (buttonState == LOW) {timerState =! timerState؛ Serial.print ("Timer State is") ؛ Serial.println (timerState) ؛ }}}

إذا (timerState == عالية) {

Serial.println ("بدأ مؤقت بومودورو") ؛ if (minutesCounter <11) {// إذا كانت القيمة الثانية الحالية مختلفة عن القيمة السابقة ، فعندئذٍ firstStepper.step (stepsPerRevolution) ؛ // turn stepper 200 steps / 1 rev minutesCounter ++ ؛ Serial.print ("minutesCounter هي") ؛ Serial.println (minutesCounter) ؛ }

if (11 <= minutesCounter && minutesCounter <21) {// إذا كانت القيمة الثانية الحالية مختلفة عن القيمة السابقة ، ثم secondStepper.step (stepsPerRevolution) ؛ // turn stepper 200 steps / 1 rev minutesCounter ++ ؛ Serial.print ("minutesCounter هي") ؛ Serial.println (minutesCounter) ؛ }

if (21 <= minutesCounter && minutesCounter <31) {// إذا كانت القيمة الثانية الحالية مختلفة عن القيمة السابقة ، ثم thirdStepper.step (stepsPerRevolution) ؛ // turn stepper 200 steps / 1 rev minutesCounter ++ ؛ Serial.print ("minutesCounter هي") ؛ Serial.println (minutesCounter) ؛ }

if (31 <= minutesCounter && minutesCounter <1031) {// إذا كانت القيمة الثانية الحالية مختلفة عن القيمة السابقة ، فإن firstStepperBack.step (-1) ؛ // turn stepper للخلف خطوة واحدة في التسلسل لتظهر كما لو كانت جميعها تعمل في وقت واحد secondStepperBack.step (-1) ؛ ThirdStepperBack.step (-1) ، minutesCounter ++ ؛ Serial.print ("minutesCounter هي") ؛ Serial.println (minutesCounter) ؛ }} else {Serial.println ("مؤقت بومودورو متوقف")؛ } // احفظ القراءة. في المرة القادمة خلال الحلقة ، // ستكون lastButtonState: lastButtonState = reading؛ }

الخطوة 3: الخطوة 3: احتواء Steppers و Arduino إذا كنت ترغب في ذلك

الخطوة 3: احتواء Steppers و Arduino إذا كنت ترغب في ذلك
الخطوة 3: احتواء Steppers و Arduino إذا كنت ترغب في ذلك
الخطوة 3: احتواء Steppers و Arduino إذا كنت ترغب في ذلك
الخطوة 3: احتواء Steppers و Arduino إذا كنت ترغب في ذلك
الخطوة 3: احتواء Steppers و Arduino إذا كنت ترغب في ذلك
الخطوة 3: احتواء Steppers و Arduino إذا كنت ترغب في ذلك

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

موصى به: