Mục lục:

Máy tạo xung và đồng hồ Esp8266: 3 bước
Máy tạo xung và đồng hồ Esp8266: 3 bước

Video: Máy tạo xung và đồng hồ Esp8266: 3 bước

Video: Máy tạo xung và đồng hồ Esp8266: 3 bước
Video: Hướng dẫn làm đồng hồ theo dõi sản lượng điện qua WiFi - Xem trên Blynk 2024, Tháng mười một
Anonim
Máy tạo xung và đồng hồ Esp8266
Máy tạo xung và đồng hồ Esp8266

Hướng dẫn này dành cho một phần thiết bị thử nghiệm đơn giản; một đồng hồ và bộ tạo xung.

Nó sử dụng giao diện phần cứng i2S trên esp8266 để tạo xung nhịp thử nghiệm hoặc chuỗi xung. Điều này giúp dễ dàng kết hợp với nhau vì không cần phần cứng đặc biệt cho một hệ thống cơ bản.

  • Tạo xung nhịp từ 2Hz đến 20MHz
  • Mọi tần suất có thể được sử dụng
  • Tìm kiếm kết quả phù hợp nhất của bộ chia xung nhịp và độ dài bit từ xung nhịp cơ bản 160MHz
  • Thường tốt hơn 0,1% so khớp cho các tần số <100KHz
  • Đánh dấu lựa chọn tỷ lệ không gian
  • Dung sai khớp tần số có thể được nới lỏng để xử lý không gian đánh dấu tốt hơn
  • Tạo xung tàu dựa trên các định nghĩa trong tệp
  • GUI dựa trên web cho phép điều khiển từ PC, điện thoại, máy tính bảng
  • Quản lý Wi-Fi để cho phép thiết lập bộ định tuyến ban đầu dễ dàng
  • Cập nhật phần mềm OTA
  • Sử dụng thư viện I2s đặc biệt (i2sTXcircular) cho phép điều khiển linh hoạt

Bước 1: Phần cứng

Phần cứng
Phần cứng
Phần cứng
Phần cứng

Tôi đã chế tạo của mình trong một vỏ máy in 3d chứa pin 18650 với bộ sạc USB, công tắc bật / tắt, đầu cắm 3 chân cắm cho tín hiệu đầu ra.

Vỏ máy có một khe hẹp để giữ các thiết bị điện tử bên cạnh pin.

Tín hiệu ra khỏi chân GPIO3 (RX). Điều này có thể được sử dụng trực tiếp nhưng để có khả năng ổ đĩa cao hơn, tôi đã chọn bao gồm một bộ đệm nhỏ bằng cách sử dụng 74LVC2G34. Tôi đã ghép song song hai bộ đệm trong thiết bị này để cung cấp thêm khả năng truyền động.

Mọi thứ chỉ được thực hiện trong phần mềm trong thiết bị và việc kiểm soát được thực hiện bằng cách cung cấp máy chủ web để trình duyệt trên PC, điện thoại hoặc máy tính bảng cung cấp toàn quyền kiểm soát.

Bước 2: Phần mềm

Để xây dựng và thiết lập phần mềm, hãy sử dụng mã tại

  • Cài đặt thư viện i2sTXcircular (bao gồm)
  • Cài đặt thư viện BaseSupport (https://github.com/roberttidey/BaseSupport)
  • Thêm thư viện WifiManager
  • Chỉnh sửa mật khẩu trong BaseConfig.h
  • Biên dịch và tải lên trong môi trường Arduino
  • Thiết lập quản lý mạng wifi bằng cách kết nối với AP và duyệt đến 192.168.4.1
  • tải lên bộ tệp cơ bản từ thư mục dữ liệu bằng cách sử dụng ip / upload STA
  • Sau đó có thể thực hiện các tải lên tiếp theo bằng ip / edit - giao diện bình thường là ip /

Làm thế nào nó hoạt động

Thư viện i2sTXcircular cho phép xây dựng một chuỗi bộ đệm hình tròn sau đó được xuất ra tự động bởi phần cứng i2S trên esp8266 sử dụng DMA để không có phần mềm nào được sử dụng khi nó đang hoạt động.

Xung nhịp cơ bản trên thiết bị là 160MHz được chia nhỏ bởi một cặp vạch chia. Tín hiệu đầu ra sau đó được xác định bởi dữ liệu nào được đưa vào bộ đệm được đưa ra bởi đồng hồ chia xuống. Bằng cách chọn hai bộ chia và bằng cách sử dụng nhiều bit dữ liệu có khả năng để đại diện cho mỗi xung thì tần số có thể được ước lượng khá chặt chẽ. Nó cũng cho phép chu kỳ nhiệm vụ (tỷ lệ dấu / không gian của xung đồng hồ) được thay đổi.

Mã javascript của trình duyệt cố gắng tối ưu hóa sự lựa chọn của các tham số để đưa ra kết quả trùng khớp với bất kỳ tần suất đã chọn nào.

Mặc dù mục đích chính là tạo đồng hồ, nhưng cũng có thể tạo ra các chuỗi xung phức tạp hơn bằng cách đưa một định nghĩa vào một tệp xung, sau đó điều khiển dữ liệu sẽ được tạo ra và đưa vào bộ đệm tròn. Chi tiết có trong các tệp xung ví dụ đi kèm.

Bước 3: Hoạt động

Hoạt động được điều khiển bởi giao diện trình duyệt hiển thị trong hình ảnh chính.

Đối với thế hệ đồng hồ thông thường, bạn chỉ cần chọn đồng hồ mục tiêu và đánh dấu tỷ lệ không gian%. Đồng hồ thực tế đạt được và lỗi của nó được hiển thị. Khi nhấn nút Tạo đồng hồ thì các thông số sẽ được gửi đến thiết bị và quá trình tạo đồng hồ bằng các thông số này sẽ bắt đầu.

Bằng cách nhấp vào thanh Nâng cao, bạn có thể xem thêm chi tiết.

Đồng hồ bit hiển thị bội số con của 160MHz đang được sử dụng.

Các bit dấu và khoảng trắng cho biết có bao nhiêu bit đang được sử dụng để biểu diễn dấu và khoảng trắng.

Div1 và Div2 hiển thị hai bộ chia đã được chọn để tạo đồng hồ bit gần nhất.

Thông thường, hai bộ chia được chọn để cho kết quả khớp gần nhất với tần số đã chọn và để tối đa hóa số lượng bit dữ liệu được sử dụng, giúp cung cấp tính linh hoạt hơn trong việc cho phép các chu kỳ nhiệm vụ khác nhau. Tuy nhiên, đôi khi kết quả phù hợp nhất dẫn đến số lượng bit thấp, để lại ít chỗ cho việc thay đổi chu kỳ nhiệm vụ. Bằng cách thay đổi giá trị% dung sai, các bộ chia sẽ được chọn để cung cấp một tần số nằm trong dung sai này nhưng có thể sử dụng nhiều bit dữ liệu hơn. Hãy thử đặt dung sai thành 0,5 hoặc 1 chẳng hạn.

Bạn cũng có thể đặt số Bits trên mỗi từ để kiểm soát sự lựa chọn của các tham số. 0 (mặc định) có nghĩa là chọn bất kỳ bit nào trên mỗi từ. Một số duy nhất (ví dụ: 24) có nghĩa là chỉ chọn các tham số phù hợp với điều này. Bạn cũng có thể đặt trong một phạm vi (ví dụ: 24, 31). Điều này chỉ hoạt động đối với Hz mục tiêu trên 10KHz, dưới mức tỷ lệ này sẽ có hiệu lực để số được nhân lên.

Kích thước bộ đệm hiển thị tổng khoảng cách bộ đệm được sử dụng trong các từ 32 bit. Điều này được chọn để đảm bảo xung đồng hồ tạo thành một hình tròn hoàn hảo phù hợp với bộ đệm. Bên trong bộ đệm này được chia thành một số bộ đệm nhỏ để cho phép DMA chuỗi hoạt động.

Đối với hoạt động xung chọn xung TAB. Điều này hiển thị các tệp xung có sẵn và một nút bên cạnh mỗi tệp sẽ tạo ra một chuỗi xung dựa trên định nghĩa của nó. Bạn có thể xem nội dung của tệp bằng cách nhấp vào liên kết của tệp. Các tệp xung khác có thể được tải lên bằng trình duyệt tệp ip / chỉnh sửa. Chúng nên bắt đầu bằng xung tên.

Đề xuất: