Mục lục:

Arduino IDE: Tạo bảng tùy chỉnh: 10 bước
Arduino IDE: Tạo bảng tùy chỉnh: 10 bước

Video: Arduino IDE: Tạo bảng tùy chỉnh: 10 bước

Video: Arduino IDE: Tạo bảng tùy chỉnh: 10 bước
Video: 🔴 Arduino #3 | Hướng Dẫn Cách Thêm Và Xóa Thư Viện Cho Arduino IDE | Arduino IDE Library 2024, Tháng bảy
Anonim
Arduino IDE: Tạo bảng tùy chỉnh
Arduino IDE: Tạo bảng tùy chỉnh
Arduino IDE: Tạo bảng tùy chỉnh
Arduino IDE: Tạo bảng tùy chỉnh
Arduino IDE: Tạo bảng tùy chỉnh
Arduino IDE: Tạo bảng tùy chỉnh

Trong sáu tháng qua, tôi đã dành rất nhiều thời gian để chuyển các thư viện khác nhau sang bảng Robo HAT MM1 do Robotics Masters phát triển. Điều này đã dẫn đến việc khám phá nhiều điều về các thư viện này, cách chúng hoạt động đằng sau hậu trường và quan trọng nhất - phải làm gì để thêm các bảng mới trong tương lai.

Đây là bài đầu tiên trong một loạt bài viết mà tôi sẽ thực hiện để giúp những người khác muốn chuyển thư viện cho bảng của họ. Nhiều nguồn thông tin có thể mơ hồ hoặc khó hiểu đối với người ngoài cuộc. Tôi hy vọng sẽ ‘làm sáng tỏ’ và giải thích cách đạt được một cổng thành công cho mọi người.

Hôm nay, chúng ta sẽ xem xét Nền tảng Arduino. Nó có hơn 700.000 biến thể bảng khác nhau trên khắp thế giới và là một trong những nền tảng điện tử phổ biến nhất cho giáo dục, công nghiệp và các nhà sản xuất.

Tôi chỉ có thể tìm thấy các nguồn thông tin rất hạn chế về cách thực hiện việc này sau nhiều lần Tìm kiếm trên Google. Vì vậy, tôi nghĩ rằng tôi sẽ viết về cách tôi đã làm điều đó một cách chi tiết.

Bắt đầu!

Bước 1: Trước khi bắt đầu

Trước khi bắt đầu chuyển thư viện phần mềm hoặc chương trình cơ sở vào bo mạch của mình, bạn phải biết một số điểm chính về công nghệ bạn đang sử dụng và có thể trả lời các câu hỏi bên dưới.

  1. Bạn đang sử dụng bộ vi xử lý nào?
  2. Nó sử dụng kiến trúc gì?
  3. Tôi có quyền truy cập vào biểu dữ liệu cho bộ vi xử lý này không?
  4. Có bo mạch tương tự trên thị trường sử dụng cùng một bộ vi xử lý không?

Đây là những điều rất quan trọng. Nó sẽ tác động đến nhiều khía cạnh trong cách bạn tiếp cận quá trình phát triển.

Bo mạch Arduino thường sử dụng một số loại vi xử lý và kiến trúc hạn chế. Phổ biến nhất là phạm vi ATMEGA sử dụng kiến trúc AVR (Arduino Uno). Có những thế hệ Arduinos mới hơn đang trở nên phổ biến hơn bằng cách sử dụng bộ xử lý SAMD (ARM) và các bộ xử lý mạnh hơn khác. Vì vậy, điều quan trọng là phải kiểm tra xem bạn đang sử dụng cái nào.

Biểu dữ liệu cho một bộ vi xử lý là hoàn toàn quan trọng để đảm bảo rằng bo mạch phản hồi như mong đợi khi bạn biên dịch phần sụn. Nếu không có nó, bạn sẽ không thể thiết lập các chức năng đầu ra chân chính xác hoặc cấu hình các cổng nối tiếp.

Khi bạn có tất cả thông tin cần thiết về bộ xử lý bạn đang sử dụng, bạn có thể bắt đầu xem xét phần mềm và sửa đổi nó để hoạt động cho bo mạch tùy chỉnh của bạn.

Bước 2: Tổng quan

Phần khó nhất của bất kỳ dự án nào là tìm ra một điểm khởi đầu tốt. Điều này không có gì khác biệt. Tôi đã cố gắng tìm kiếm các hướng dẫn tốt với đủ chi tiết về cách tạo bảng tùy chỉnh cho Arduino. Hầu hết các hướng dẫn chỉ cho bạn cách 'thêm bảng tùy chỉnh' nhưng không chỉ cho bạn cách 'tạo bảng tùy chỉnh'. Dưới đây là một bản tóm tắt ngắn về những gì có liên quan.

  1. Tải xuống bản sao và định nghĩa bảng hiện có
  2. Cập nhật tệp định nghĩa (variant.h, varient.cpp)
  3. Tạo mục nhập bảng (board.txt)
  4. Cập nhật phiên bản bảng (platform.txt)
  5. Chuẩn bị cài đặt (json)
  6. Cài đặt bảng trong Arduino IDE

Từng bước sẽ được giải thích chi tiết bên dưới. Cũng sẽ có cuộc thảo luận sâu rộng về cách mỗi tệp tương tác với nhau để giúp làm rõ cách mọi thứ hoạt động đằng sau Arduino IDE.

Đối với hướng dẫn này, tôi sẽ chỉ cho bạn cách tạo bảng tùy chỉnh cho bộ xử lý SAMD. Cụ thể hơn, SAMD21G18A - là bộ vi xử lý được sử dụng trên bo mạch Robo HAT MM1 mà tôi đã chuyển.

Tôi cũng giả sử bạn đã tải xuống Arduino IDE 1.8 trở lên. Tôi đã sử dụng Arduino 1.8.9 tại thời điểm viết bài.

Bước 3: Tải xuống các bảng hiện có

Tải xuống các bảng hiện có
Tải xuống các bảng hiện có
Tải xuống các bảng hiện có
Tải xuống các bảng hiện có
Tải xuống các bảng hiện có
Tải xuống các bảng hiện có

Bước đầu tiên là tải xuống bảng Arduino biến thể gần nhất phù hợp với bảng của bạn. Đối với bo mạch SAMD, đây là Arduino Zero.

Kể từ Arduino IDE 1.6, phương pháp tải các bảng mới vào môi trường là bằng cách thêm các tệp JSON đặc biệt mà các nhà phát triển phần mềm cung cấp và sau đó cài đặt các bảng tùy chỉnh bằng cách sử dụng “Trình quản lý bảng”. Các phiên bản trước của Arduino IDE đã sử dụng một phương pháp khác mà chúng ta sẽ không thảo luận hôm nay. Chúng tôi sẽ tạo tệp JSON của riêng mình ở phần sau trong hướng dẫn này, tuy nhiên, trước tiên chúng tôi cần thêm bảng Arduino Zero bằng phương pháp này.

Thật may mắn cho chúng tôi, bảng chúng tôi muốn tải xuống không cần tệp JSON vì tệp JSON được đóng gói sẵn với Arduino IDE - vì vậy chúng tôi chỉ cần cài đặt bảng từ “Trình quản lý bảng”.

Để thực hiện việc này, hãy chuyển đến "Công cụ", sau đó mở rộng menu "Bảng". Ở đầu menu “Board” sẽ là “Board Manager”. Nhấp vào tùy chọn menu này để hiển thị Trình quản lý bảng.

(Xem Hình ảnh)

Khi mở Boards Manager, nó sẽ xem xét tất cả các tệp JSON mà nó đã lưu trữ trong Arduino IDE và sau đó tải xuống các cài đặt từ tệp. Bạn sẽ thấy một danh sách dài các bảng Arduino có sẵn mà bạn có thể cài đặt.

(Xem Hình ảnh)

Chúng tôi chỉ quan tâm đến bảng “Arduino SAMD Boards (32-bit ARM Cortex-M0 +)” cho hướng dẫn này, nhưng bạn có thể điều chỉnh và cài đặt bảng bạn cần tại thời điểm này. Vui lòng tìm kiếm và cài đặt bảng “Arduino SAMD Boards (32-bit ARM Cortex-M0 +)”. Điều này có thể được thực hiện bằng cách nhấp vào văn bản từ danh sách, sau đó là nút “Cài đặt” ở phía bên tay phải sẽ xuất hiện sau khi bạn nhấp vào văn bản. Sẽ mất vài phút để cài đặt.

Để biết thêm chi tiết về cách cài đặt bo mạch mới: Adafruit có một hướng dẫn tuyệt vời ở đây giải thích cách cài đặt bo mạch Feature M0 của họ.

Bây giờ các tệp bảng đã được cài đặt, chúng tôi có thể sao chép chúng để có thể sửa đổi chúng cho bảng tùy chỉnh của bạn.

Bước 4: Tìm và sao chép tệp bảng

Tìm và sao chép tệp bảng
Tìm và sao chép tệp bảng
Tìm và sao chép tệp bảng
Tìm và sao chép tệp bảng
Tìm và sao chép tệp bảng
Tìm và sao chép tệp bảng

Đối với Windows, Tệp Board nằm trong (hãy nhớ thay đổi tên người dùng thành tên người dùng của bạn):

C: / Users / tên người dùng / AppData / Local / Arduino15 / package

Trong thư mục này, bạn phải đi sâu hơn một chút để đến các tệp mà bạn cần sao chép để sửa đổi. Đối với hướng dẫn này, chúng tôi sẽ đi và lấy các tệp bảng Arduino Zero sẽ được cài đặt vào (hãy nhớ thay đổi tên người dùng thành tên người dùng của bạn):

C: / Users / username / AppData / Local / Arduino15 / package / arduino / hardware / samd

Sao chép thư mục được đánh số phiên bản nằm trong thư mục này vào một thư mục mới trong thư mục Documents hoặc thư mục bạn chọn. Với mục đích của hướng dẫn này, tôi sẽ đặt chúng vào một thư mục mới có tên là ‘bảng tùy chỉnh’ bên trong Tài liệu.

Thư mục chứa một số thư mục và thư mục. Những cái chúng tôi sẽ sử dụng được ghi chú trong bảng trong ảnh chụp màn hình.

Bước 5: Tạo biến thể

Tạo biến thể
Tạo biến thể
Tạo biến thể
Tạo biến thể
Tạo biến thể
Tạo biến thể
Tạo biến thể
Tạo biến thể

Bây giờ chúng tôi đã sẵn sàng để bắt đầu tạo một mục nhập bảng tùy chỉnh. Đối với hướng dẫn này, tôi sẽ sử dụng Robo HAT MM1 làm ví dụ. Như đã đề cập trước đây, nó là một bảng dựa trên SAMD phù hợp nhất với bản dựng Arduino Zero.

Chúng ta sẽ bắt đầu bằng cách đi vào thư mục biến thể và sao chép thư mục arduino_zero nằm trong đó. Chúng tôi sẽ đổi tên biến thể bảng mới là ‘robohatmm1’. Bạn có thể gọi của bạn bất cứ điều gì bạn thích.

(Xem Hình ảnh)

Bên trong thư mục robohatmm1 sẽ là hai chân mà chúng ta cần bắt đầu chỉnh sửa: variant.cpp và variant.h. Mở cả hai lên.

Điều này khiến tôi mất một lúc để tìm ra, vì vậy tôi sẽ giải thích nó ở đây để tiết kiệm thời gian cho bạn. Tệp variant.cpp chứa một mảng rất lớn các chân được tham chiếu trong suốt variant.h. Tất cả các tham chiếu pin trong variant.h là tham chiếu đến cấu hình pin tại một vị trí cụ thể trong mảng variant.cpp.

(Xem Ảnh chụp màn hình với Hai tệp)

Vì vậy, hầu hết các chỉnh sửa của bạn sẽ xảy ra trong cả hai tệp này nhưng bạn cần đảm bảo rằng nếu bạn thay đổi thứ tự của các chân trong variants.cpp - bạn phải thay đổi các tham chiếu trong tệp tiêu đề (variants.h). Đối với Robo HAT MM1, tôi chỉ cần thay đổi một số chân và chức năng. Điều này đã được thực hiện trong các biến thể.h. Tôi đã thêm một số chân PWM mới vì SAMD21 có thể xử lý 12 kênh PWM. Tôi cũng đã thêm một số tên cho Servos, Tín hiệu (thay vì ADC / Digital) và ánh xạ tùy chỉnh cho các chức năng phù hợp - chẳng hạn như SPI, UART và I2C.

Điều quan trọng cần lưu ý là kiểm tra kỹ xem tham chiếu mảng mà bạn sử dụng cho các hàm được nêu trong variants.h có khớp với tham chiếu của pin trong varaints.cpp hay không - mà bây giờ chúng ta sẽ xem xét.

Variants.cpp là một tệp rất mạnh mẽ và quan trọng. Nó thực hiện tất cả công việc khó khăn của việc thiết lập các chân để phù hợp với cài đặt phần cứng. Cách dễ nhất để giải thích điều này là với một ví dụ và giải thích của từng phần.

(Xem Bảng trong Ảnh chụp màn hình)

Ví dụ (trích xuất từ variants.cpp)

{PORTA, 22 tuổi, PIO_SERCOM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE}, // SDA

Đây là chân đầu tiên trong mảng variants.cpp cho Robo HAT MM1. Bảng từ biểu dữ liệu đã được cung cấp dưới dạng hình ảnh (bảng màu xám).

(Xem Hình ảnh)

Chân cụ thể này được sử dụng cho Chức năng ghim dữ liệu I2C. Nhìn vào bảng, chúng ta có thể thấy rằng chân này có thể được sử dụng như một chân I2C SDA (khởi đầu tốt!). Chân có tên là “PA22” viết tắt của PORTA trên chân 22. Ngay lập tức chúng ta có thể đặt CỔNG và số pin cho chân này.

Việc tiếp theo chúng ta cần làm là đặt chân cắm làm cổng giao tiếp nối tiếp. Chân có sẵn giao tiếp nối tiếp thông qua chức năng C (PIO_SERCOM) sử dụng SERCOM 3 và D sử dụng SERCOM5 (PIO_SERCOM_ALT). Vì mục đích của Robo HAT MM1, chúng tôi đang sử dụng SERCOM3 cho giao tiếp I2C. Đây là trên Chức năng C; hay còn gọi là. PIO_SERCOM cho các biến thể.cpp.

Vì chúng tôi dự định chỉ sử dụng chân này làm I2C SDA, nên không cần thiết lập bất kỳ chức năng nào khác. Tất cả chúng đều có thể được đặt thành tùy chọn “Không” hoặc “Không” từ bảng trước. Tuy nhiên, nếu chúng ta muốn sử dụng các hàm khác - chúng ta có thể xem qua biểu dữ liệu và đặt tất cả chúng vào các khoảng trống chính xác. Tất cả đều có trong biểu dữ liệu.

Việc sửa đổi các tệp biến thể có thể mất một chút thời gian. Hãy cẩn thận và luôn kiểm tra ba lần.

Bước 6: Tạo định nghĩa bảng

Tạo định nghĩa bảng
Tạo định nghĩa bảng

Khi bạn đã có các tệp biến thể của mình, nó sẽ được chuyển tiếp ngay từ đây. Hầu hết công việc sẽ là sao chép và dán hoặc sửa đổi và cập nhật tệp.

Bắt đầu vớiboards.txt.

(Xem Hình ảnh)

Bạn sẽ muốn sao chép và dán một định nghĩa bảng đã có ở đó. Tôi muốn giới thiệu Arduino Zero một lần nữa.

Để đơn giản, chỉ thay đổi tên bảng (dòng đầu tiên), sản phẩm usb, nhà sản xuất usb và biến thể (robohat). Bạn có thể tùy chỉnh các đối số khác sau này cho phù hợp với nhu cầu của mình - chẳng hạn như bộ nạp khởi động tùy chỉnh hoặc các VID / PID USB khác nhau để xác định bảng của bạn.

Biến thể bảng phải khớp với tên được đặt cho thư mục được tạo ở đầu. Đối với hướng dẫn này, tôi gọi nó là ‘robohatmm1’.

Bạn cũng nên thay đổi phần đầu tiên của mỗi dòng để phù hợp với tên bảng của bạn. Trong ảnh chụp màn hình, nó đã được đổi thành ‘robo_hat_mm1’. Bạn nên chọn một tên cho bảng của bạn với cùng một định dạng.

Đó là tất cả đối vớiboards.txt trừ khi bạn muốn thực hiện các sửa đổi thêm được đề cập ở trên sau này.

Bước 7: Cập nhật phiên bản bảng

Cập nhật phiên bản bảng
Cập nhật phiên bản bảng

Trong platform.txt, hãy thay đổi tên thành tên của bảng tùy chỉnh của bạn. Đồng thời thay đổi số phiên bản. Hãy nhớ những gì bạn đặt này, chúng tôi sẽ cần nó sau.

Bước 8: Tạo tệp gói JSON

Tạo tệp gói JSON
Tạo tệp gói JSON
Tạo tệp gói JSON
Tạo tệp gói JSON

Để cài đặt bo mạch của bạn trong Arduino IDE, bạn sẽ cần tạo một tệp JSON mà bạn sẽ nhập. Tệp JSON cho Arduino IDE biết nơi lấy các tệp để cài đặt bo mạch, những gói bổ sung nào cần thiết và một vài bit siêu dữ liệu khác.

Điều rất quan trọng là bạn phải lưu tệp này bên ngoài thư mục mà chúng tôi vừa làm việc.

Hầu hết các tệp có thể được sao chép và dán vào tệp của bạn. Bạn sẽ chỉ cần thay đổi phần “bảng” và siêu dữ liệu khác ở đầu tệp. Xem ảnh chụp màn hình để biết những gì sẽ được cập nhật.

(Xem Hình ảnh)

  • Phần màu đỏ: Đây là siêu dữ liệu mà người dùng có thể sử dụng để tìm kiếm trợ giúp. Nó có rất ít liên quan đến kỹ thuật.
  • Phần màu xanh: Tất cả những điều này đều quan trọng. Chúng hiển thị trong Arduino IDE. Tên, Kiến trúc và Phiên bản tất cả sẽ được hiển thị cho bất kỳ ai đang cố gắng cài đặt gói. Đây là nơi bạn cần đặt số phiên bản từ platform.txt. Phần màu xanh thứ hai là danh sách các bo mạch được bao gồm trong gói. Bạn có thể có nhiều bảng.
  • Phần màu xanh lá cây: Phần này cần được giải thích thêm.

(Xem Bảng trong Hình ảnh)

Khi bạn đã tạo tệp zip, có tổng kiểm tra tệp zip và kích thước tệp, bây giờ bạn có thể tải tệp zip lên một vị trí. Bạn sẽ cần đặt URL đó vào trường ‘url’. Nếu tên hoặc bất kỳ chi tiết nào ở trên không chính xác, bảng tùy chỉnh của bạn sẽ không cài đặt được.

Đảm bảo cũng tải tệp package_boardname_index.json của bạn lên một vị trí công cộng trên internet. GitHub là một lựa chọn tốt.

Bạn có thể tìm thấy tệp bảng tùy chỉnh Robo HAT MM1 tại đây.

Bước 9: Bước cuối cùng - Cài đặt Bảng tùy chỉnh của bạn

Bước cuối cùng - Cài đặt bảng tùy chỉnh của bạn!
Bước cuối cùng - Cài đặt bảng tùy chỉnh của bạn!
Bước cuối cùng - Cài đặt bảng tùy chỉnh của bạn!
Bước cuối cùng - Cài đặt bảng tùy chỉnh của bạn!

Mọi việc suôn sẻ, bây giờ bạn sẽ có thể đưa tệp JSON của mình vào Arduino IDE và cài đặt bảng tùy chỉnh của bạn.

Bao gồm tệp JSON thật dễ dàng! Trong Arduino IDE - chỉ cần đi tới “Tệp”> “Tùy chọn” và sao chép và dán vị trí (URL) của package_boardname_index.json của bạn vào phần “URL trình quản lý bảng bổ sung” ở cuối trình đơn Tùy chọn.

(Xem Hình ảnh)

Sau đó nhấn OK.

Chạy qua các hướng dẫn ở trên để cài đặt bo mạch mới nếu bạn đã quên. Hãy nhớ tìm bảng tùy chỉnh của bạn lần này!

(Xem Hình ảnh)

Để biết thêm chi tiết về cài đặt bo mạch mới: Adafruit có một hướng dẫn tuyệt vời ở đây giải thích cách cài đặt bo mạch Feature M0 của họ.

Bước 10: Kết luận

Phần kết luận
Phần kết luận
Phần kết luận
Phần kết luận

Điều này thật thú vị khi tạo ra các bảng Arduino tùy chỉnh. Vẫn còn rất nhiều điều để tôi thử nghiệm trong tương lai (thêm các cổng nối tiếp bổ sung) nhưng đó là một trải nghiệm học tập tuyệt vời!

Hãy chắc chắn kiểm tra cả chiến dịch Cung cấp đám đông. Nó kết thúc vào ngày 11 tháng 6 năm 2019.

www.crowdsupply.com/robotics-masters/robo-…

Tôi hy vọng điều này đã giúp bạn hoặc bạn đã đọc vui vẻ!

Cảm ơn!

Đề xuất: