Tôi hiểu Arduino: bây giờ thì sao?


18

Được rồi, tôi đã chơi đủ với Arduino mà tôi cảm thấy khá thoải mái với nó. Bất cứ điều gì được thực hiện bây giờ là học nhiều thiết bị điện tử hơn là phía Arduino của nó.

Bước tiếp theo cho việc học của tôi là gì? Arduino là một lập trình viên / bộ điều khiển kết hợp, vì vậy có lẽ tôi cần phải phá vỡ liên kết đó và bắt đầu làm việc với một chip điều khiển tách biệt với bộ điều khiển, tôi đoán vậy? Ai đó có thể chỉ cho tôi đúng hướng được không?


Bạn có một mục tiêu hay dự án cụ thể trong tâm trí?

Tôi đồng ý. Đối với tôi đây là tất cả về việc hoàn thành những việc cụ thể. Arduino chỉ là một công cụ như mọi thứ khác.
Dirk

Những gì tôi đang làm việc ngay bây giờ là một dãy đèn LED đa pha. Không khó lắm trong Arduino, nhưng tôi muốn thoát khỏi bánh xe huấn luyện. Ý tôi là, cuối cùng, có một con chip ATmega168 trên bo mạch Arduino. Nếu tôi có thể tìm ra cách làm việc trực tiếp với nó, tôi nghĩ rằng điều đó sẽ thỏa mãn những gì tôi đang cố gắng đạt được.
Chris B. BehDR

Bạn thực sự khá trực tiếp với chip với Arduino. Nó không có nhiều trình điều khiển hoặc bất cứ thứ gì được gắn vào các chân. Các tiêu đề đi trực tiếp ở đó. Có lẽ là một Breadboarduino?
AngryEE

@angryee - Tôi nghĩ Chris có nghĩa là, lập trình trực tiếp chip ATmega, không có thư viện Arduino IDE +, có thể được coi là bánh xe huấn luyện.
J. Polfer

Câu trả lời:



12

Tôi đồng ý với Joby - Arduino rất tuyệt nhưng tôi luôn cảm thấy ngột ngạt bởi khuôn khổ mà chúng bao quanh tôi. Tôi sẽ chuyển sang sử dụng C thẳng trên Arduino của bạn và xây dựng nhiều chức năng thư viện mà họ cung cấp từ đầu. Tôi thường thích độ sâu trước chiều rộng - không chỉ bắt đầu trên một họ vi điều khiển khác bằng cách sử dụng các khung được cung cấp nhiều hơn. Tìm hiểu thêm một chút về cách tự thực hiện một số chức năng này.

Bắt đầu với một chương trình làm việc và thay thế các cuộc gọi thư viện Arduino bằng các phiên bản của riêng bạn một chức năng tại một thời điểm. Bạn sẽ tìm hiểu rất nhiều về các thanh ghi điều khiển, thời gian, hoạt động bit, v.v. nếu bạn chưa có. Đọc bảng dữ liệu ATMega328 chuyên sâu - mọi thứ bạn cần đều có trong đó.

Hãy thử một IDE khác như AVR Studio hoặc Code :: Blocks. Tìm hiểu chuỗi công cụ GCC. Hãy thử các kỹ thuật mã hóa nâng cao hơn - kiểm tra đơn vị, bảo hiểm, định hình, kiểm tra lint / nẹp. Đặt một RTOS trên Arduino.

Một lập trình viên / bộ điều khiển kết hợp không phải là dấu hiệu của sự yếu kém - đó chỉ là một sự lựa chọn thiết kế. "Điểm yếu" duy nhất có thể đến từ đó là thiếu gỡ lỗi trong mạch. Mua một con rồng AVR và bạn sẽ được liếm với giá 50 đô la.


9

Tôi nghĩ những gì cần học tiếp theo phụ thuộc vào những gì bạn muốn làm mà Arduino không thể làm. Đó là, tôi không thể thấy nhiều điểm trong việc lập trình một con chip tương tự để làm những việc tương tự, nhưng với các phương tiện khó hơn.

Dưới đây là một số điểm yếu của Arduino:

  • Việc xâu chuỗi, nghĩa là chạy hai phần mã xen kẽ để có vẻ như chúng đang được thực thi cùng một lúc
  • Công cụ internet băng thông trung bình hoặc cao, như truyền phát âm thanh
  • Tính toán nghiêm túc, hoặc các nhiệm vụ đòi hỏi tính toán nhanh để đáp ứng nhanh
  • Bất cứ điều gì trở nên dễ dàng hơn bằng cách có một hệ thống tập tin xung quanh, như ghi dữ liệu hoặc xử lý hình ảnh

Tôi có thể tưởng tượng hai hướng để đi:

  1. Các bảng nhúng mạnh mẽ hơn với các hệ điều hành nhỏ, như Beagleboard hoặc Gumstix
  2. Ép hiệu năng cao hơn từ các chip Atmega nhỏ bằng cách sử dụng các ngắt phần cứng.

Tôi có thể thêm chi tiết nếu bạn nhận xét về hướng nào hấp dẫn hơn. (Cái thứ hai chắc chắn rẻ hơn.)


Thật buồn cười ... lập trình một con chip tương tự để làm những việc tương tự, nhưng với phương tiện khó khăn hơn chính xác là những gì tôi có trong đầu :). Một chút nền tảng - Tôi là một kiến ​​trúc sư phần mềm có nhiều năm kinh nghiệm. Phần mềm, tính toán, hệ thống tập tin ... đó là tất cả những thứ dễ dàng đối với tôi. Những gì tôi thực sự cần phải đập đầu vào là điện tử. Lý do tại sao tôi muốn vượt ra ngoài Arduino chỉ đơn giản là tôi muốn có thể sản xuất các thiết bị có mục đích duy nhất không có chi phí vật lý (và giá cả) của bo mạch Arduino. Tôi nghĩ từ những gì bạn đã nói, # 2 là những gì tôi đang tìm kiếm.
Chris B. BehDR

Wow ... bình luận đó nghe có vẻ tự cao tự đại. Tôi không có ý như vậy ... dù sao đi nữa, tôi chỉ có nghĩa là tôi muốn thoát khỏi các bánh xe huấn luyện phần cứng mà Arduino mang lại cho tôi. Cụ thể, tôi đang làm việc trên một mảng LED, tương tự như LOLShield, mặc dù tôi nghĩ rằng tôi sẽ ghép nó lại. Tôi có thể làm điều đó với Arduino, nhưng không có nó, tôi cần một số hướng. TIA.
Chris B. BehDR

À, nhiều thứ điện tử hơn thay vì phần mềm-y ... thứ. Có lẽ bạn sẽ nhận được một số kinh nghiệm tốt khi thực hiện giao tiếp / ghi dữ liệu cảm biến. Nó không hào nhoáng nhưng để giao diện các cảm biến với bảng của bạn, bạn cần tìm hiểu thêm một vài điều về phần cứng. Arduino không thực sự có nhiều bánh xe đào tạo phần cứng - chắc chắn không nhiều bằng phần mềm. Có thể một robot kết hợp một số loại cảm biến khác nhau - siêu âm, khoảng cách IR, bộ mã hóa trục, v.v ... Chắc chắn là có thể chỉ với Arduino và nhiều phần cứng hơn.
AngryEE

7

Tìm hiểu I2C, SPI, 1wire và thử giao diện cảm biến với các giao diện như vậy. Đọc rất nhiều bảng dữ liệu của các cảm biến như vậy và cố gắng hiểu mọi thứ trong đó. Đặt câu hỏi khi bị mắc kẹt. Tìm hiểu MODBUS (RTU / ASCII / TCP) hoặc giao thức tương tự có thể mở thiết bị của bạn ra thế giới sau khi bạn nhúng thiết bị vào thiết bị. Tìm hiểu các thiết bị điện tử nói chung và thử giao diện rơle, triacs, cái gì kéo lên và kéo xuống, cái gì là nguồn và chìm, cách vẽ sơ đồ và kết nối các trình điều khiển cơ bản với MCU của bạn.


6

Khi bắt đầu, bạn có thể muốn chuyển từ Arduino làm nền tảng sang AVR làm nền tảng. Tức là, tìm hiểu cách lập trình / sử dụng bộ vi điều khiển AVR mới cho các dự án của bạn thay vì Arduino. Bằng cách đó, bạn sẽ không phải mua một bo mạch Arduino khác cho mỗi dự án bạn làm hoặc để thực hiện các dự án với bạn bè. Đây là một bước khá đơn giản (một Arduino chỉ là một vi điều khiển Atmel AVR thông thường nhưng có một bo mạch và bộ nạp khởi động đặc biệt), nhưng nó là một bước lớn để bán / tặng dự án cho bạn bè. Toolchain cũng tương tự: bạn sử dụng avr-gcc hoặc avr-g ++ với make kết hợp với tiện ích lập trình để cài đặt chương trình của bạn.


Nó khá đơn giản để tải bộ tải khởi động trên một con chip và hàn lên bảng của riêng bạn nếu bạn muốn cho đi một dự án. Hoặc đặt mua một bộ RBBB với giá $ 12,50 ( goo.gl/0yqr ) không cần phải mua bảng 30 đô la cho mỗi dự án Arduino.
Davorak
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.