Mục lục:

Đồng hồ lập phương đa chức năng dựa trên vị trí: 5 bước (có hình ảnh)
Đồng hồ lập phương đa chức năng dựa trên vị trí: 5 bước (có hình ảnh)

Video: Đồng hồ lập phương đa chức năng dựa trên vị trí: 5 bước (có hình ảnh)

Video: Đồng hồ lập phương đa chức năng dựa trên vị trí: 5 bước (có hình ảnh)
Video: Clip nữ sinh múa văn nghệ hút 6,8 triệu view gây bão toàn TikTok, và sự thật ngỡ ngàng đằng sau 2024, Tháng mười một
Anonim
Image
Image
Đồng hồ lập phương đa chức năng dựa trên vị trí
Đồng hồ lập phương đa chức năng dựa trên vị trí
Đồng hồ lập phương đa chức năng dựa trên vị trí
Đồng hồ lập phương đa chức năng dựa trên vị trí

Các dự án Fusion 360 »

Đây là một chiếc đồng hồ dựa trên Arduino có màn hình OLED có chức năng như một chiếc đồng hồ hiển thị ngày tháng, bộ đếm giờ ngủ trưa và như một chiếc đèn ngủ. Các "chức năng" khác nhau được điều khiển bởi một gia tốc kế và được chọn bằng cách xoay đồng hồ khối.

Tôi muốn có một chiếc đồng hồ đầu giường mới nhưng tôi không muốn chi tiền cho một chiếc đồng hồ sang trọng có rất nhiều chức năng mà tôi sẽ không sử dụng. Ngoài ra, tôi đã thu thập các thành phần và cảm biến chỉ được đặt xung quanh vì vậy tôi quyết định sử dụng chúng để tạo ra đồng hồ của riêng mình!

Tôi đã có một vài mục tiêu cho dự án này:

  1. Hiển thị thời gian đó với một tùy chọn được tắt
  2. Bao gồm chức năng đèn ngủ
  3. Bao gồm bộ hẹn giờ ngủ trưa 15 phút với báo thức
  4. Có thể hiển thị ngày

Quân nhu

  • Arduino Pro Mini 5V
  • Gia tốc kế 3 trục ADXL335
  • DS3231 AT24C32 IIC chính xác Đồng hồ thời gian thực
  • Loa mini
  • Màn hình OLED SSD1306 IIC 0,96in
  • Nguồn điện 5V DC
  • LED x 2
  • Điện trở 220ohm x 2
  • Giắc cắm thùng DC
  • Dây điện
  • Công cụ

    • Máy cắt dây / máy thoát y
    • Hàn sắt / hàn
    • Máy in 3D (tùy chọn)
    • Lập trình viên FTDI để giao tiếp giữa Pro mini và Arduino IDE

Bước 1: Nguyên mẫu và kiểm tra mạch

Nguyên mẫu và kiểm tra mạch
Nguyên mẫu và kiểm tra mạch
Nguyên mẫu và kiểm tra mạch
Nguyên mẫu và kiểm tra mạch
Nguyên mẫu và kiểm tra mạch
Nguyên mẫu và kiểm tra mạch

Kết nối các thành phần với Arduino. Sơ đồ hoặc sơ đồ bố trí breadboard được hiển thị ở trên. RTC và OLED sử dụng giao thức I2C để giao tiếp với Arduino và sử dụng các chân A4 và A5. Gia tốc kế sử dụng 3 chân analog. Tôi đã sử dụng A0, A1, A2. Đèn LED và Piezo có thể sử dụng bất kỳ chân kỹ thuật số nào, tôi đã sử dụng 4 và 8 tương ứng.

Giao diện với từng thành phần. Tôi đã phải cài đặt một số thư viện Arduino để giao tiếp với từng thành phần. Chúng được hiển thị trong hình trên.

Mã sử dụng Arduino IDE. Tôi đã sàng lọc qua một số bản phác thảo ví dụ được cung cấp bởi mỗi thư viện để tìm ra cú pháp thích hợp cho từng thành phần dựa trên những gì tôi muốn chúng làm. Tôi đã đưa ra một bản phác thảo cho từng thành phần để kiểm tra chúng riêng lẻ. Chúng được cung cấp bên dưới. Tôi bắt đầu với loa piezo vì nó dễ nhất. Nó thực sự không cần một thư viện đặc biệt, chỉ cần một chức năng cụ thể đặt tần số và âm thanh. Để các đèn LED hoạt động chỉ cần kéo một trong các chân kỹ thuật số lên cao và xuống thấp. Tiếp theo, tôi chuyển sang màn hình OLED và điều này cũng khá đơn giản để thiết lập. Bản phác thảo bên dưới là bản demo Adafruit xem qua tất cả các hình ảnh động / văn bản có thể được hiển thị. Sau đó, tôi đã cố gắng để RTC hoạt động. Bản phác thảo mà tôi cung cấp là một phần của ví dụ trong thư viện lấy thời gian hiện tại và in nó ra màn hình nối tiếp. Cuối cùng, tôi sử dụng ví dụ được cung cấp để kiểm tra gia tốc kế. Đầu ra của mỗi trục được in trên màn hình nối tiếp.

Bây giờ là lúc để kết hợp mọi thứ lại với nhau!

Bước 2: Chương trình chính

Chương trình chính
Chương trình chính
Chương trình chính
Chương trình chính

Bây giờ tôi biết mọi thứ hoạt động riêng lẻ, tôi có thể bắt đầu nghĩ ra một chương trình kết hợp mọi thứ lại với nhau. Tôi sẽ thảo luận về quy trình viết chương trình của tôi bên dưới nhưng vui lòng tải xuống toàn bộ mã bên dưới để sử dụng cho dự án của riêng bạn. Tôi đã cố gắng để lại nhận xét cụ thể để bạn có thể tự tìm hiểu mã.

Tôi cần hiển thị ngày và giờ trên OLED khá đơn giản. Tôi chỉ cần in thời gian hiện tại lên màn hình thay vì màn hình nối tiếp. Tôi phải tính đến một số định dạng để làm cho nó hiển thị định dạng 12 giờ thay vì 24 và thêm / bớt số 0 ở những nơi thích hợp. Ngày tương tự với việc bổ sung hiển thị tháng và ngày trong các hình chữ nhật được vẽ trên màn hình. Tôi đã sử dụng vòng lặp FOR lồng nhau để tạo bộ đếm thời gian và thiết lập piezo sau khi kết thúc vòng lặp. Tôi quyết định làm cho màn hình nhấp nháy khi bộ rung tắt, đây là một hình ảnh động cơ bản được lấy từ bản demo Adafruit. Tôi thực hiện việc xoay khối lập phương trở lại vị trí đồng hồ là cách duy nhất để tắt bộ rung. Cuối cùng, tôi muốn có một cách để tắt màn hình được thực hiện bằng cách xóa màn hình. Bây giờ, tôi cần tất cả các chức năng này để hoạt động dựa trên kết quả đầu ra của gia tốc kế. Tôi đã sử dụng tập lệnh Accel_Test để xác định tọa độ trục của từng vị trí mà tôi muốn từng chức năng chạy. Tôi đã tự di chuyển chip gia tốc kế xung quanh và ghi lại các kết quả đọc được trên màn hình nối tiếp. Biểu đồ trên đưa ra tọa độ đầu ra của mỗi vị trí trong GRAY. Các tọa độ trong RED là ranh giới giữa mỗi vị trí và tôi đã sử dụng những con số đó cho chương trình của mình. Trong 4 vị trí hiển thị, chỉ cần tọa độ trục X và Y. Vị trí thứ năm cho đèn ngủ sử dụng trục Z. Tôi đã sử dụng các câu lệnh IF đơn giản cho các vị trí của gia tốc kế trước mỗi khối chức năng. Nếu bạn sử dụng một gia tốc kế khác, các tọa độ này có thể khác nhau và sẽ cần được điều chỉnh trong chương trình.

Bước 3: In 3D khối lập phương

In 3D khối lập phương
In 3D khối lập phương
In 3D khối lập phương
In 3D khối lập phương
In 3D khối lập phương
In 3D khối lập phương

Tôi nghĩ rằng một khối lập phương sẽ là thiết kế tốt nhất để phù hợp với cách tôi muốn đồng hồ hoạt động. Tôi đã sử dụng fusion360 để làm mô hình. Tôi cần một phần cắt cho màn hình OLED và giắc cắm thùng. Tôi cũng muốn dễ dàng truy cập để thay thế pin di động trong RTC sau khi mọi thứ đã được nối dây. Tôi cần một khe cắm để giữ Arduino theo hướng có thể dễ dàng lập trình lại nếu cần. Ngoài ra, vỏ bọc cần có thể tháo rời dễ dàng để tôi có thể truy cập Arduino. Bạn có thể thấy mô hình CAD ở trên và các tệp STL ở dưới.

Tôi đã in phần thân bằng PLA màu đen với 20% infill, độ phân giải 0,2mm.

Vỏ bọc hoặc ống bọc được in bằng sợi mềm dẻo Solutech với 100% in đầy, độ phân giải 0,3 mm. Tôi đã sử dụng chất liệu này vì nó có một số tính linh hoạt giúp dễ dàng kéo căng trên cơ thể. Nó cũng có cảm giác nhẹ nhàng hơn khi xoay đồng hồ. Cuối cùng, tôi chọn một dây tóc rõ ràng để đèn LED cho đèn ngủ có thể chiếu qua.

Bước 4: Lắp ráp

cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp

Tôi kết nối mọi thứ với nhau bằng cách sử dụng sơ đồ từ Bước 1. Tôi đã sử dụng một miếng bảng điều khiển nhỏ để kết nối tất cả các dây thông thường để tôi không phải hàn nhiều dây vào một chân trên Arduino. Keo nóng được sử dụng để cố định mọi thứ ở vị trí tương ứng của nó ngoại trừ Arduino. Nó chỉ được đẩy vào vị trí được chỉ định của nó. Tôi đảm bảo rằng bảng gia tốc kế phải vuông góc và ngang bằng với phần dưới của thân máy để không cần thay đổi tọa độ trong mã.

Bước 5: Tải lên và bạn đã hoàn tất

Tải lên và bạn đã hoàn tất!
Tải lên và bạn đã hoàn tất!
Tải lên và bạn đã hoàn tất!
Tải lên và bạn đã hoàn tất!
Tải lên và bạn đã hoàn tất!
Tải lên và bạn đã hoàn tất!
Tải lên và bạn đã hoàn tất!
Tải lên và bạn đã hoàn tất!

Bây giờ chương trình cuối cùng có thể được tải lên đồng hồ để đặt thời gian chính xác. Pin di động sẽ giữ được thời gian ngay cả khi đã rút nguồn điện. Trượt ống tay áo in 3D lên thân máy để ẩn tất cả các thành phần và bạn có một chiếc đồng hồ hình khối hoàn chỉnh!

Tôi hy vọng bạn thích làm dự án này và thấy nó hữu ích như tôi. Phần hay về dự án này là nó rất có thể tùy chỉnh. Hãy thoải mái thêm các chức năng khác nhau của riêng bạn như chức năng báo thức, sử dụng các thành phần khác nhau như màn hình OLED lớn hơn, bộ thu radio FM, v.v. Chúc bạn làm việc vui vẻ!

Đề xuất: