Mục lục:

Bộ đếm thời gian Pomodoro bước: 3 bước (có hình ảnh)
Bộ đếm thời gian Pomodoro bước: 3 bước (có hình ảnh)

Video: Bộ đếm thời gian Pomodoro bước: 3 bước (có hình ảnh)

Video: Bộ đếm thời gian Pomodoro bước: 3 bước (có hình ảnh)
Video: Tôi sử dụng thời gian hiệu quả hơn 3 lần nhờ phương pháp Pomodoro của lập trình viên người Italia 2024, Tháng mười một
Anonim
Image
Image
Bước 1: Hàn và kết nối mạch bên ngoài thùng chứa
Bước 1: Hàn và kết nối mạch bên ngoài thùng chứa

Stepper Pomodoro là một bộ đếm thời gian trên bàn để giúp một người quản lý danh sách công việc hàng ngày của họ bằng cách chia từng khoảng thời gian làm việc thành các phân đoạn 30 phút. Tuy nhiên, không giống như một bộ đếm thời gian Pomodoro bình thường, nó không làm bạn lo lắng bằng cách hiển thị lượng thời gian còn lại. Thay vào đó, nó hiển thị thời gian gần đúng mà trong số ba mặt số đang tích tắc. Bằng cách không hiển thị thời gian chính xác, nó cho phép bạn thực sự tập trung vào nhiệm vụ trước mắt, thay vì liên tục kiểm tra thời gian còn lại của bạn. Pomodoro này hoàn hảo cho những người cần một cấu trúc nhẹ nhàng và không phô trương để quản lý nhiệm vụ của họ.

Công cụ

• Sắt hàn

• Dụng cụ tuốt dây

• Máy cắt laser (hoặc máy chà nhám tùy thuộc vào cách bạn muốn tạo các mặt số của bộ đếm thời gian)

• Máy khoan (tôi đã sử dụng máy khoan bấm để đục các lỗ đủ lớn cho mặt số)

Vật liệu

• 1 Arduino Uno

• 1 bảng bánh mì cỡ nửa

• 3 cầu H (Tôi đã sử dụng DRV8833, một tấm chắn động cơ wold đã giúp tôi tiết kiệm thời gian và đau đầu)

• 3 Động cơ bước (Tôi đã sử dụng NEMA 17 bước)

• 1 nút

• 1 điện trở 220-1K ohm (bất kỳ điện trở nào trong phạm vi đều tốt)

• Bộ chuyển đổi AC / DC (Tôi đã sử dụng 12V, có lẽ quá lớn đối với số lượng bước này)

• Bộ chia điện

• Dây USB A-B

• Dây bảng mạch

• Hàn

• Vật liệu làm hộp đựng bộ đếm thời gian

• Acrylic cho mặt số

• Đinh hoặc ghim kim loại để hoạt động như cánh tay cố định của bộ đếm thời gian

Bước 1: Bước 1: Hàn và kết nối mạch bên ngoài thùng chứa

Đối với bước này, tôi bắt đầu bằng cách hàn tất cả các cầu H của mình lại với nhau (nếu bạn mua tấm chắn động cơ, bạn không cần phải hàn chúng. Khi bạn đã có cầu H cho mỗi bước, bạn có thể kiểm tra xem các bước của mình được nối dây như thế nào.

NEMA 17 được gọi là động cơ bước lưỡng cực, có nghĩa là chúng có hai (chứ không phải một) bộ cuộn dây bên trong động cơ thay đổi cực để cho phép chuyển động chính xác của động cơ. Bước lưỡng cực thường có bốn dây và bước phân cực thường có sáu dây, điều này làm phức tạp các hướng dẫn trực tuyến một chút. Tuy nhiên, bạn có thể gắn đồng hồ đa năng vào hai dây và xem chúng có được kết nối hay không. Các bước NEMA 17 có thứ tự dây theo thứ tự màu ĐỎ, VÀNG, XÁM, XANH LÁ, với màu đỏ và xám là cặp cực đầu tiên và màu vàng và xanh lá cây là cặp cực thứ hai. Nếu tại bất kỳ thời điểm nào mà bước nhảy bắt đầu co giật thay vì hoàn thành chuyển động như mong đợi, rất có thể dây của bạn bằng cách nào đó không được phân cực chính xác với đôi của chúng hoặc một dây bị ngắt kết nối. Mỗi bước được điều khiển thông qua bốn chân đầu ra kết nối với cầu DRV8833 H. Thứ tự đấu dây cho đầu vào DRV8833 là: IN1, IN2, Nguồn, Nối đất, IN3, IN4. Đối với mục đích đầu ra, NEMA chỉ kết nối với bốn chân giữa của sáu chân theo thứ tự: ĐỎ, XÁM, VÀNG, XANH. Bây giờ hãy kết nối nguồn điện. Tôi có NEMA của mình trên các cổng kỹ thuật số 2–13.

Để cấp nguồn cho điều này, tôi đã mua một bộ chuyển đổi AC / DC 12V với bộ chia để có thể cấp nguồn cho cả Arduino và tất cả các bước. CẢNH BÁO: Không kết nối nguồn và dây nối đất của bạn từ Arduino đã nhận nguồn từ cổng vào bảng mạch nhận nguồn trực tiếp từ AC / DC. Nó sẽ chiên bảng của bạn. Từ bộ chuyển đổi 12V được cắm vào tường, một phần của bộ chia sẽ đi thẳng đến cổng của Arduino và phần kia đến cực dương và âm của bảng mạch bánh mì.

Cuối cùng, đó là thời gian để móc nút. Một bên của nút sẽ cần cả nguồn (với điện trở của chúng tôi được nối vào) cũng như chân đầu ra được hàn vào (điều này cũng có thể được thực hiện từ breadboard). Chốt còn lại sẽ là mặt đất của chúng tôi. Ba dây này nên được cắm vào: Nguồn với điện trở 5V, đầu ra là A0 và nối đất tất cả trên chính bảng Arduino Uno.

Từ đây, chúng ta có thể cố gắng kiểm soát các bước bằng cách sử dụng mã kiểm tra bước cơ bản này được tìm thấy ở đây. Giải thích này trên Arduino.cc cũng giải thích cặn kẽ hơn về các bước lưỡng cực / đơn cực nếu bạn cần. Tiếp theo, hãy nhập mã cho Pomodoro!

Bước 2: Bước 2: Tải lên mã và điều chỉnh mã theo nhu cầu của bạn

Bước 2: Tải lên mã và điều chỉnh mã theo nhu cầu của bạn
Bước 2: Tải lên mã và điều chỉnh mã theo nhu cầu của bạn

Dưới đây là mã cho nút Pomodoro có nút của tôi, để tùy chỉnh nó theo thiết lập của bạn, hãy làm theo các bước sau:

1. Đặt số bước cho mỗi vòng quay mà loại bước cá nhân của bạn có (NEMA 17 có 200 và nó được liệt kê trong số nguyên không đổi được gọi là stepsPerRevolution).

2. Đặt vị trí nút của bạn được gửi vào trong buttonPin của trình gọi số nguyên không đổi.

3. Đặt nơi arduino của bạn sẽ xuất ra để chỉ huy các bước (các phần này có thể khác nhau nhiều nhất giữa các loại cầu H vì nhiều loại có các thư viện khác nhau mà chúng sử dụng).

4. Đặt tốc độ bước theo RPM trong.setSpeed (Tôi đã đặt tốc độ bước là 1 vòng / phút khi quay theo chiều kim đồng hồ và 30 vòng / phút khi quay ngược chiều kim đồng hồ).

5. Đặt số lần bạn muốn mỗi bước của mình quay trước khi nó tiếp tục (các bước của tôi tính mười phút, vì vậy chúng xoay mười lần ở 1 RPM).

6 Đặt khoảng thời gian bạn muốn để nó quay ngược lại.

#bao gồm

const int stepsPerRevolution = 200; // thiết lập hằng số về số bước trong mỗi vòng quay đầy đủ của động cơ bước của tôi

const int buttonPin = A0; // thiết lập hằng số đầu vào nút của tôi

Stepper firstStepper (bướcPerRevolution, 2, 3, 4, 5); // khởi tạo thư viện bước trên các chân nhất định

Bước thứ haiStepper (bướcPerRevolution, 6, 7, 8, 9); Bước thứ baStepper (bướcPerRevolution, 10, 11, 12, 13); Bước đầu tiênStepperBack (bướcPerRevolution, 2, 3, 4, 5); // khởi động lại thư viện bước trên các chân này để có thể đặt lại rpm khi cảnh báo rằng thời gian đã hết Stepper secondStepperBack (stepsPerRevolution, 6, 7, 8, 9); Bước thứ baStepperBack (bướcPerRevolution, 10, 11, 12, 13);

int phútCounter = 0; // int đếm số vòng quay đầy đủ của bước

int timerState = LOW; // trạng thái hiện tại của bộ đếm thời gian pomodoro (HIGH = on, LOW = off / reset) int buttonState; // giá trị đọc hiện tại từ chân đầu vào int lastButtonState = HIGH; // lần đọc trước đó từ chân đầu vào

// các biến sau không được đánh dấu là dài vì thời gian, được đo bằng mili giây, // sẽ nhanh chóng trở thành một số lớn hơn có thể được lưu trữ trong một int. unsigned long lastDebounceTime = 0; // lần cuối cùng chân đầu ra được bật tắt không dấu long debounceDelay = 50; // thời gian gỡ lỗi; tăng nếu đầu ra nhấp nháy

void setup () {

pinMode (buttonPin, INPUT_PULLUP); // đặt hằng số của nút làm đầu vào

firstStepper.setSpeed (1); // thiết lập tốc độ 1 vòng / phút để đếm 10 phút mỗi bước giâyStepper.setSpeed (1); thirdStepper.setSpeed (1); firstStepperBack.setSpeed (30); // đặt tốc độ ở 30 vòng / phút để cảnh báo rằng thời gian đã hết sau khi Pomodoro hoàn thành secondStepperBack.setSpeed (30); thirdStepperBack.setSpeed (30);

Serial.begin (9600); // bắt đầu màn hình nối tiếp với tốc độ truyền 9600

}

void loop () {

// đọc trạng thái của switch thành một biến cục bộ: int read = digitalRead (buttonPin);

// kiểm tra xem bạn có vừa nhấn nút không

// (tức là đầu vào đi từ THẤP đến CAO) và bạn đã đợi // đủ lâu kể từ lần nhấn cuối cùng để bỏ qua bất kỳ tiếng ồn nào:

// Nếu công tắc bị thay đổi, do tiếng ồn hoặc do nhấn:

if (read! = lastButtonState) {// đặt lại bộ hẹn giờ gỡ lỗi lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// cho dù nội dung đang đọc là gì, nó đã ở đó lâu hơn // so với thời gian trễ debounce, vì vậy hãy coi nó là trạng thái hiện tại thực tế:

// nếu trạng thái nút đã thay đổi:

if (reading! = buttonState) {buttonState = reading;

// chỉ chuyển đổi bộ hẹn giờ nếu trạng thái nút mới cho biết nó đã được nhấn

// nhấn một lần để bật, nhấn lần nữa để tắt if (buttonState == LOW) {timerState =! timerState; Serial.print ("Timer State is"); Serial.println (timerState); }}}

if (timerState == HIGH) {

Serial.println ("Bộ đếm thời gian Pomodoro đã bắt đầu"); if (minutesCounter <11) {// nếu giá trị thứ hai hiện tại khác với giá trị trước đó thì firstStepper.step (stepsPerRevolution); // biến bước 200 bước / 1 vòng quay phútCounter ++; Serial.print ("Bộ đếm phút là"); Serial.println (Bộ đếm phút); }

if (11 <= minutesCounter && minutesCounter <21) {// nếu giá trị thứ hai hiện tại khác với giá trị trước đó thì secondStepper.step (stepsPerRevolution); // biến bước 200 bước / 1 vòng quay phútCounter ++; Serial.print ("Bộ đếm phút là"); Serial.println (Bộ đếm phút); }

if (21 <= minutesCounter && minutesCounter <31) {// nếu giá trị thứ hai hiện tại khác với giá trị trước đó thì thirdStepper.step (stepsPerRevolution); // biến bước 200 bước / 1 vòng quay phútCounter ++; Serial.print ("Bộ đếm phút là"); Serial.println (Bộ đếm phút); }

if (31 <= minutesCounter && minutesCounter <1031) {// nếu giá trị thứ hai hiện tại khác với giá trị trước đó thì firstStepperBack.step (-1); // quay bước lùi lại 1 bước theo trình tự để xuất hiện giống như tất cả đang chạy đồng thời secondStepperBack.step (-1); thirdStepperBack.step (-1); phútCounter ++; Serial.print ("Bộ đếm phút là"); Serial.println (Bộ đếm phút); }} else {Serial.println ("Bộ hẹn giờ Pomodoro đang tắt"); } // lưu bài đọc. Lần tới qua vòng lặp, // nó sẽ là lastButtonState: lastButtonState = reading; }

Bước 3: Bước 3: Chứa các bước và Arduino nếu bạn muốn

Bước 3: Chứa các bước và Arduino nếu bạn muốn
Bước 3: Chứa các bước và Arduino nếu bạn muốn
Bước 3: Chứa các bước và Arduino nếu bạn muốn
Bước 3: Chứa các bước và Arduino nếu bạn muốn
Bước 3: Chứa các bước và Arduino nếu bạn muốn
Bước 3: Chứa các bước và Arduino nếu bạn muốn

Tôi đã chọn tạo một dạng hình bình hành cho đồng hồ của mình. Hình thức này và các lựa chọn vật liệu của gỗ sồi đỏ được lấy cảm hứng từ đồ nội thất hiện đại giữa thế kỷ. Một phần mà tôi gặp khó khăn nhất là lắp các bước với mặt số qua cửa sổ để có thể nhìn thấy từ đó.

Đề xuất: