Tôi đã hiểu những gì Arduino là chính xác?


7

Ngay trước khi tôi ra ngoài và mua một bộ khởi động Arduino, ai đó có thể xác nhận tôi hiểu nó là gì không?

Theo tôi hiểu, tôi có thể sử dụng một trình giả lập để tạo hành vi tôi muốn. Khi tôi hài lòng với mã tôi biên dịch nó, hãy kết nối Arduino Uno với máy tính của tôi (có "chip trống kèm theo) và flash chip. Sau đó, tôi có thể gỡ bỏ chip, và đặt nó lên bảng mạch, hoặc Dải ma trận hoặc thích và làm việc đó thành một dự án.

Có đúng không?


1
những gì bạn mô tả về cơ bản là một lập trình viên thiết bị, chẳng hạn như STK-500
JustJeff

Câu trả lời:


10

Không, bạn hiểu lầm. Con chip không trống (bạn cũng không lắp chip vào Arduino. Nó đi kèm với Arduino). Nó có một bộ tải khởi động đặc biệt thực sự là cốt lõi của nền tảng Arduino và cho phép Arduino không có một lập trình viên đặc biệt để lập trình chip. Vì vậy, nó sẽ không hoạt động với chip trống. Hơn nữa, bạn chỉ giới hạn ở các chip được bộ tải khởi động hỗ trợ hoặc rất giống nhau.

Cũng từ những gì tôi có thể thấy, Arduino IDE không có trình giả lập, vì vậy bạn không gặp may mắn ở điểm đó.

Điểm chính của Arduino là nó che giấu hoạt động vật lý của chính con chip khỏi lập trình viên, giúp cho việc sử dụng nó quá phức tạp để bắt đầu lập trình chip trực tiếp dễ dàng hơn. Nó cung cấp một ngôn ngữ lập trình giống như C đơn giản và nó có một thư viện lớn các chức năng giúp dễ dàng kết nối các thiết bị ngoại vi khác nhau. Bản thân PCB rất hữu ích vì nó cho phép người dùng có một cơ sở chất lượng tốt để tạo ra các thiết bị của riêng họ và giúp họ tránh khỏi những rắc rối khi tạo ra một PCB sẽ tự điều khiển AVR hoặc sử dụng một số loại bảng tạo mẫu.

Về cơ bản những gì bạn muốn là IDE thông thường của Atmel có tên là AVR Studio có trình giả lập (bạn có thể tải xuống một cách tự do và kiểm tra xem nó có phù hợp với nhu cầu của bạn không). Về mặt phần cứng, bạn sẽ cần một lập trình viên , nếu trình giả lập của IDE vẫn ổn hoặc trình giả lập trong mạch sẽ cho phép bạn gỡ lỗi trực tiếp mã trên chip. Trình giả lập tự nó khá đắt tiền, nhưng có một số sản phẩm khác cũng sẽ cho phép bạn bước qua mã.

Xin lưu ý rằng có thể tạo một lập trình viên AVR bằng Arduino nhưng đó không phải là một lợi thế lớn so với các lập trình viên khác có sẵn trên Internet hoặc lập trình viên chính thức.


Cám ơn vì cái này. Có một sự thay thế nào mà tôi đang nghĩ đến không? Nói PIC hay AVR? Tôi muốn có thể "ghi" chip của riêng mình và sau đó sử dụng chip này trên một mạch riêng.
Ben

@Ben Tôi đã viết về các lựa chọn thay thế trong câu trả lời của tôi. Nếu nó không hiển thị, hãy thử làm mới trang. Arduino sử dụng chip AVR và bạn có thể sử dụng bất kỳ công cụ AVR tiêu chuẩn nào với chúng. Tôi chưa phải là người dùng PIC (vì vậy) tôi không thể cung cấp cho bạn đề xuất tốt về nó, nhưng từ những gì tôi đã thấy, công cụ PICkit 3 tiêu chuẩn có ICE trong đó và dường như rẻ hơn so với AVR ICE mkII.
AndrejaKo

1
Ngoài ra nếu bạn muốn có một bảng, thì bạn có thể xem ví dụ này cho PIC hoặc cái này cho AVR. Chúng hoạt động với chip trần và không yêu cầu bộ tải khởi động. Có rất nhiều lựa chọn thay thế ngoài kia, nhưng hai người này là người đầu tiên đến với tôi.
AndrejaKo

@AndejaKo - Cảm ơn tất cả những lời khuyên! Thực sự đánh giá cao nó!
Ben

1
@Ben icarpt.files.wordpress.com/2010/03/minimal_arduino.jpgthis là cách dễ dàng là để có những con chip ATMega ra khỏi Arduino và đặt nó vào mạch của riêng bạn. Trong thực tế, công tắc thiết lập lại và công cụ DTR thậm chí không cần thiết. Nếu bạn muốn mua chip ATMega168 hoặc ATMega328 đơn giản với giá rẻ hơn từ Mouser hoặc Digikey thì bạn có thể xây dựng USBTinyISP ( adafbean.com/products/46 ) và sử dụng nó để lập trình chúng với bộ tải khởi động Arduino và ghi bản phác thảo của bạn chỉ là bản phác thảo mà không có bộ nạp khởi động.
nemik

5

Không hẳn, không.

Arduino là một toàn bộ hệ thống trong chính nó.

Mặc dù có thể loại bỏ chip khỏi bo mạch và sử dụng nó trong các hệ thống của riêng bạn nhưng điều này hiếm khi được thực hiện.

Với Arduino, bạn lập trình "bản phác thảo" của mình (theo cách gọi của nó) trong một tập hợp con của C ++ dựa trên một hệ thống gọi là "Đấu dây". Sau đó, bạn tải nó lên bảng Arduino. Bảng đã có chip trên đó, và bạn để nó ở đó. Có các kết nối trên bảng để liên kết nó với các hệ thống khác của bạn.

Bạn có thể thay đổi "bản phác thảo" của mình bao nhiêu lần tùy thích và tải lại lên Arduino cho đến khi bạn hiểu đúng.

Mặc dù có các trình giả lập, nhưng chúng hiếm khi được sử dụng vì dễ dàng nhất là chỉ cần tải trực tiếp lên Arduino và để nó tương tác đúng với phần cứng bên ngoài của bạn.


Sử dụng arduino để sao chép chính nó vào một con chip trần có lẽ phổ biến hơn nhiều so với việc kéo các con chip ra khỏi bo mạch.
Chris Stratton

2

Bạn chắc chắn có thể loại bỏ chip khỏi arduino và sử dụng nó trên một bảng trần hoặc trong một dự án khác. Con chip trên arduino uno và các phiên bản cũ hơn của arduino duemilanove là một atmega328 (một số phiên bản có atmega168). Bạn có thể tìm thấy tài liệu tham khảo thực tế về chip tại trang web atmel (không thể đăng liên kết vì không đủ nghiệp). Điều cần quan tâm là số pin thực sự khá khác biệt so với số trên bảng arduino. Đây là một trang với sơ đồ chân thực tế, trong trường hợp bạn muốn sử dụng nó trong một dự án khác hoặc đọc những thứ trong biểu dữ liệu: http://www.arduino.cc/en/Hacking/PinMapping168Khi bạn tháo chip, hãy cẩn thận để không làm cong chân của chip. Tôi thường sử dụng một tuốc nơ vít phẳng tôi đặt dưới con chip ở một bên, và cẩn thận ngọ nguậy theo cách của tôi nửa chừng. Sau đó lặp lại ở phía bên kia, et voila, kéo sạch chip. Hãy cẩn thận khi cắm lại, vì đôi khi một chân bị lệch ra ngoài một chút so với khe nhận của nó và uốn cong khi đẩy nó xuống.

Điều làm cho arduino "đặc biệt" như một bảng phát triển là môi trường được sử dụng để lập trình nó. Tương tự như xử lý (nó sử dụng cùng một cơ sở mã), đó là một loại giao diện đơn giản hóa với ngôn ngữ c ++. Mã bạn viết trong trình soạn thảo arduino sẽ nhận được một số nội dung được thêm ở phía trước và phía sau và được biên dịch bằng avr-g ++ để có thể thực thi được. Nó cũng được liên kết với cái được gọi là "lõi", có thể được tìm thấy trong phần cứng / lõi / arduino trong thư mục Arduino. Nó khởi tạo một số thứ (như bộ định thời và giao diện nối tiếp) và thực hiện các chức năng của trình trợ giúp mà tất cả chúng ta đều biết và yêu thích: digitalWrite, analogRead, v.v ... Trong trường hợp bạn muốn biết thêm về lập trình avr-gcc nói chung, có một rất nhiều hướng dẫn xung quanh. Tôi có thể giới thiệu trang web http://www.avrfreaks.net/, trong đó có rất nhiều liên kết và hướng dẫn.

Tập tin nhị phân này sau đó được tải lên chip trên arduino bằng chương trình có tên avrdude, một lần nữa được gọi tự động bằng cách xử lý như GUI. Chương trình này sẽ tải lên tệp nhị phân thông qua cổng nối tiếp, đến cái được gọi là bộ nạp khởi động trên atmega328. Bộ tải khởi động là một chương trình nhỏ (thường là 2kB hoặc 4kB) được lưu trữ vĩnh viễn trên chip. Nếu bạn gỡ bỏ nó, sử dụng nó trong một bảng khác và cắm lại, bạn sẽ có thể sử dụng lại phần mềm arduino. Chip arduino sử dụng một phiên bản sửa đổi một chút của giao thức stk500 và yêu cầu một bản vá để avrdude. Phải mất một chút ý chí để thực sự ghi đè lên bộ tải khởi động, nhưng đó là điều hoàn toàn có thể. Sau đó, bạn có thể sử dụng một lập trình viên tiêu chuẩn để khởi động lại arduino. Bạn thực sự có thể sử dụng một arduino khác như một lập trình viên flash: google cho arduino ISP


1

Thực tế bạn có thể sử dụng Arduino để sao chép chính nó vào một con chip ATMEGA trần, sử dụng bản phác thảo ArduinoISP. Một số có thể xem xét rằng một khả năng tối nghĩa, những người khác sử dụng nó thường xuyên.

Chủ yếu những gì ý tưởng Arduino mang lại cho bạn là hai thứ: bộ tải khởi động trong chip, để bạn có thể tải các chương trình chức năng bằng cổng nối tiếp chứ không phải là một công cụ lập trình đặc biệt (hầu hết các bo mạch hiện tại đều có bộ chuyển đổi nối tiếp USB tích hợp). Thứ hai, có một IDE và bộ thư viện nhằm giúp phát triển nhúng dễ dàng hơn cho người mới - điều đáng chú ý là không phải ai sử dụng phần cứng và bộ nạp khởi động đều sử dụng IDE và thư viện - một số thích mã hóa trực tiếp cho chip AVR.

Ngoài ra, có một thiết kế giao diện vật lý / điện cho các "tấm khiên" đáng lo ngại xếp chồng lên bo mạch chính và cung cấp một loạt các tiện ích bổ sung (mặc dù chúng thường không cạnh tranh với các bộ điều khiển / bảng vi mô khác có các thiết bị ngoại vi như vậy -trong)

Bạn có thể mua bo mạch tương thích với Arduino từ nhiều nguồn và ở nhiều yếu tố hình thức, được lắp ráp hoặc làm bộ dụng cụ, bạn cũng có thể mua chip atmega được tải sẵn với Arduino hoặc bộ tải khởi động tương tự.


1

Bộ điều khiển vi mô Propeller từ parallax.com phù hợp với những gì bạn mô tả. "Bộ công cụ giáo dục chân vịt" đi kèm với chip Propeller, EEPROM, đầu cắm USB sang nối tiếp, bảng mạch và một số thành phần riêng biệt khác và hướng dẫn sử dụng dễ viết và dễ đọc. Phải mất vài phút để xây dựng mạch trên bảng điều khiển và bạn đã sẵn sàng để viết và tải các chương trình về EEPROM. Bạn lập trình nó bằng một ngôn ngữ dễ học gọi là SPIN, cũng như PASM (Propeller hội).

Propeller là bộ điều khiển vi mô đầu tiên tôi "chơi". Tôi sử dụng bộ công cụ để lập trình EEPROM, sau đó đặt EEPROM vào một mạch dựa trên Cánh quạt "độc lập" khác mà tôi đã xây dựng trên một bảng. Độc lập có nghĩa là nó không có USB để cắm nối tiếp.

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.