Đối với một lập trình viên dày dạn Arduino hay cái gì khác?


11

Nền tảng của tôi:

Tôi đã thực hiện phần mềm khá lâu và tôi ít nhiều thành thạo C, C ++, Java, Ruby, Erlang, Haskell, Lua và Python. Tôi cũng đã tham gia một lớp học về điện tử trong phòng thí nghiệm, nhưng ngoài một phòng thí nghiệm ngắn gọn với một máy bơm, tất cả chỉ là nhận tín hiệu và A / D và từ đó thành x86 với LabView ( không phải lựa chọn môi trường lập trình của tôi) tôi muốn để quay trở lại mày mò với phần cứng với con mắt hướng tới tự động hóa gia đình. (Tôi nghĩ rằng tôi có thể làm tốt hơn sau đó này cho ít hơn $ 500)

Câu hỏi:

Tôi sẽ cắt răng trên Arduino, nhưng càng đọc tôi càng cảm thấy lợi thế chính của hệ thống đó là lập trình đơn giản. Đây có phải là nơi tốt để một anh chàng phần mềm (người vẫn cần mua sắt hàn) bắt đầu hay có thứ gì phù hợp với tôi hơn không?

(PS tôi có nhiều thời gian hơn tiền)

Câu trả lời:


4

Theo như các bảng vi điều khiển đã sẵn sàng để sử dụng ngoài cổng, tất nhiên có họ arduino. nhưng cũng xem xét bệ phóng msp430 với giá 4,30 đô la. tập lệnh tốt và hiệu suất tương tự như avr với công suất thấp / chi phí thấp. Với 20 đô la, bạn có thể có được khám phá stm32f4 (không bị nhầm lẫn với khám phá dòng giá trị stm32 hoặc họ stm8) thường ít hơn bạn sẽ trả cho một arduino có thể sử dụng ($ 35- $ 50) nhưng chạy các vòng tròn quanh arduino 168Mhz, điểm nổi đơn vị, bộ nhớ cache, v.v ... Ở phần trên của phạm vi giá arduino có một nhánh khác là mbed (mbed.org), có lẽ là gần nhất với trải nghiệm hộp cát arduino.

Nếu bạn muốn ở trong một hộp đựng và chỉ cần gọi api thì arduino có lẽ là nơi bạn muốn sống, có một số lượng lớn để thực hiện nhiều hơn hoặc đi với cây phong lá cờ dựa trên cánh tay nhưng cố gắng cung cấp trải nghiệm hộp cát arduino.

Bạn có thể nhận được nhiều hiệu suất hơn, kiếm được nhiều tiền, v.v. nếu bạn đảm nhận một chút trách nhiệm và kiến ​​thức về những gì đang diễn ra. Tôi đề nghị tất cả ba nền tảng (avr, msp, arm / thumb) và nhiều nhà cung cấp (avr và msp đều bị khóa nhưng mọi người đều bán với các thiết bị ngoại vi và I / O khác nhau). Ví dụ, bạn có thể đã quen với một nền tảng không có các dòng gpio và phải sử dụng các thành phần bên ngoài nơi một chip hoặc nhà cung cấp khác cung cấp trên chip với mức giá / hiệu năng tương đương. Tương tự như vậy, bạn có thể thích bit đập một cổng nối tiếp hoặc spi bus nhưng thấy rằng với cùng một số tiền, công suất, kích thước, v.v ... một số nhà cung cấp khác có phần cứng để hỗ trợ trong giao diện đó.

nếu không có gì khác, đó là lợi ích tốt nhất của bạn với tư cách là một lập trình viên và ai đó muốn tham gia vào sở thích điện tử để biết thêm về những gì đang diễn ra bên ngoài hộp cát. Là một cách để tham gia vào thế giới điện tử sở thích này, arduino là một quá trình chuyển đổi rất thoải mái từ lập trình ứng dụng trên một hệ điều hành. Sparkfun hiện có một số bộ dụng cụ bao gồm giao diện nối tiếp và một số periperhals có bộ lilypad (nền tảng arduino) và có thể là bộ pro, cả hai đều không phải là yếu tố hình thức lá chắn arduino nếu vấn đề đó. sparkfun bán hộp bán lẻ và nhiều hương vị khác của arduinos, uno, v.v. (bảng st và msp được đề cập ở trên bạn nên bắt đầu tại trang web của ti hoặc st hoặc truy cập github.com/dwelch67 và tôi có liên kết đến các bảng khác nhau trong tôi ví dụ).


8

Tôi cũng là một anh chàng phần mềm. Khoảng mười năm trước, tôi đã bắt đầu với tem BASIC từ Parallax, và sau một thời gian dài, gần đây tôi đã quay lại với các dự án nhúng. Ban đầu tôi nhìn vào Arduino và các bộ phận khác nhau của nó và nhận ra rằng tôi có thể bỏ qua thẻ giá của bảng Arduino và lấy một số ATMega168 và bắt đầu lại. Điều này đã làm việc với hầu hết các phần, tuy nhiên tôi thường xuyên gặp phải các vấn đề trong đó có một bảng dựng sẵn sẽ rất tốt vì tôi không thể làm hỏng việc lắp ráp cơ bản.

Cuối cùng tôi đã đặt mua một Arduino và yêu thích mọi thứ về bảng và thư viện. Tôi không phải là fan hâm mộ của "IDE" vì vậy tôi nhấp vào 'Sử dụng Trình chỉnh sửa bên ngoài' và sử dụng IDE hoàn toàn để biên dịch và flash phần mềm lên bảng. Thông thường tôi bắt đầu một dự án hoặc ý tưởng với bảng Arduino và sau đó chuyển nó thành một con chip lớn. Điều này giúp giảm chi phí bằng cách chỉ sử dụng các phần cần thiết cho một dự án nhưng nó vẫn cho phép tôi nhanh chóng đưa ra một nguyên mẫu.

Chúc may mắn!


6

Arduino là một giới thiệu tuyệt vời để lập trình một vi điều khiển.

Có một sự khác biệt lớn giữa phần mềm viết cho PC và phần sụn viết cho vi điều khiển.

Arduino sẽ là điểm khởi đầu tốt để khiến đầu óc bạn giao tiếp với các thiết bị ngoại vi, v.v. mà không cần phải sa lầy vào việc xử lý các quirks chip cụ thể và như vậy.

Nhưng, như tôi nói, đó là một lời giới thiệu.

Bắt đầu với Arduino sau đó chuyển sang những thứ lớn hơn và tốt hơn.

Tôi sử dụng họ vi điều khiển PIC khá nhiều, nhưng tôi vẫn có Arduino đáng tin cậy mà tôi sử dụng để thử ý tưởng và thử nghiệm mọi thứ một cách nhanh chóng.


6

Vì Arduino Arduino, bao gồm một số thứ, tôi nghĩ có thể hữu ích khi xem xét riêng chúng:

  • Về mặt phần cứng, một thiết bị tương thích với Arduino về cơ bản là một bộ vi điều khiển ATMega với bộ tải khởi động nhất định. Thông thường, một bo mạch tương thích với Arduino đã sẵn sàng cũng sẽ bao gồm các thiết bị điện tử hỗ trợ khác, như giao diện cổng USB hoặc cổng nối tiếp, bộ điều chỉnh điện áp, đầu pin để dễ dàng truy cập vào chân, v.v. Các thiết bị phần cứng có giá cả khá phải chăng nếu bạn muốn chức năng USB và cùng với bộ tải khởi động được lập trình sẵn, nó giúp bạn tiết kiệm được nhu cầu mua một lập trình viên riêng để tải lên phần mềm của bạn. Vì vậy, vâng, Arduino (và bản sao tương thích) hữu ích như các thiết bị phần cứng trong khi tạo mẫu; đối với bản dựng cuối cùng, bạn có thể muốn tự xây dựng chỉ với các phần bạn cần, vì vậy bạn không cần phải đưa một Arduino hoàn chỉnh vào mỗi dự án.

  • Về mặt phần mềm, thư viện Arduino giống như bất kỳ thư viện lập trình nào và tính hữu dụng của nó phụ thuộc vào nhu cầu của bạn. Cá nhân tôi thấy đôi khi nó hữu ích cho việc tạo mẫu nhanh (ví dụ: chức năng cổng nối tiếp), nhưng là một lập trình viên có kinh nghiệm, tôi không thích nhiều đơn giản hóa (đặc biệt là đánh số pin). Trong mọi trường hợp, bạn có thể dễ dàng sử dụng các thư viện AVR gốc thay vì hoặc ngoài thư viện Arduino ngay cả khi bạn lập trình cho thiết bị Arduino và / hoặc sử dụng Arduino IDE. Vì vậy, hãy sử dụng bất kỳ thư viện Arduino nào bạn thấy hữu ích, đặc biệt là khi tạo nguyên mẫu, nhưng hãy tìm hiểu về AVR cơ bản khi bạn thực hiện (xem nguồn Arduino & bảng dữ liệu ATMega).

  • Cuối cùng, Arduino IDE là môi trường lập trình đồ họa với trình soạn thảo đơn giản, bảng điều khiển cổng nối tiếp, hệ thống xây dựng giống như Make Make (ẩn khỏi người dùng) và các công cụ (mặt trước cho) để tải phần mềm của bạn lên thiết bị thực . Cá nhân tôi ghét IDE và không bao giờ sử dụng nó, thích làm việc trên dòng lệnh, nhưng rõ ràng đây chỉ là vấn đề sở thích cá nhân.


1
Tôi không biết làm thế nào họ có thể gọi sự quái dị đó là một IDE. Đó là phần khủng khiếp nhất của [expletive đã xóa] có thể tưởng tượng. Tôi có Anjuta gần như đã thiết lập để làm mọi thứ cho tôi bây giờ mà IDE (không phải là rất) của Arduino làm.
Majenko

4

Câu hỏi của bạn quá mở đã kết thúc cho một câu trả lời thẳng thắn, vì vậy tất cả những gì chúng tôi có thể làm là cho bạn thấy sự đánh đổi.

Adruino là một vi điều khiển bọc đường câm lặng cho quần chúng. Nó được tối ưu hóa để hoàn thành những việc cơ bản một cách nhanh chóng với tối thiểu là phải học các thứ.

Trung tâm của arduino là một vi điều khiển thông thường, bạn cũng có thể sử dụng trực tiếp. Ưu điểm là bạn có thể chọn vi mô của mình cho chính xác những gì bạn muốn làm, không có ý tưởng của người khác về những gì bạn nên làm giữa bạn và vi mô và bạn có thể làm bất cứ điều gì vi mô trần có khả năng, đó là một nhiều hơn so với bề mặt thông qua sự trừu tượng arduino. Nhược điểm là bạn thực sự sẽ phải học một cái gì đó, đọc một vài trang dữ liệu 100 trang chỉ là khởi đầu và bạn sẽ không nhận được sự hài lòng ngay lập tức.

Chỉ có bạn có thể nói những gì tốt hơn cho bạn. Bạn có muốn nắm lấy tinh thần nội tâm của mình và được dẫn dắt một cách hạnh phúc trong khu vườn mãi mãi bị xuống hạng để nói "huh?", "Cái gì?", Và "Ôi thật dễ thương!" để những thứ điện tử? Hay bạn thà đi xuống con đường tối dài để nổi lên với một đèn LED nhấp nháy sau nhiều rắc rối và rắc rối? Bạn chỉ muốn lái xe hoặc tìm hiểu cách động cơ hoạt động để bạn có thể có được hiệu suất tối đa và tự điều chỉnh nó?


1
Olin, bạn là trường học cũ! Tôi hoàn toàn có ý đó như một lời khen ... Nhưng tôi không đồng ý với bạn về vấn đề này. Đối phó với phần mềm được thiết kế tầm thường trên một hệ điều hành thiếu hiểu biết đã làm tăng thêm không cho sự hiểu biết của tôi về điện tử. Trong thực tế đã ngấm vào những ngày có giá trị khi tôi có thể học được những điều hữu ích từ những người hiểu biết như mình. Tôi nói "Arduino sống lâu!"
Kaelin Colclasure

2
@KaelinColclasure Nhận xét của bạn là một số điều gây nhầm lẫn với tôi. Bạn gặp vấn đề với phần mềm và hệ điều hành kém, nhưng Olin hoàn toàn không giải quyết vấn đề đó. Nếu bất cứ điều gì bạn có thể xem xét arduino làm gì cho bạn một lớp trừu tượng như cách một hệ điều hành là một lớp trừu tượng. Học cách sử dụng arduino làm rất ít để giúp bạn trở thành một kỹ sư giỏi hơn vì chi phí hoạt động sẽ dẫn đến chi phí không cần thiết. Như đã nói, tôi nghĩ Arduino là một nền tảng tuyệt vời, nhưng không nên được coi là sự thay thế cho sự hiểu biết thực sự về thế giới của thiết bị điện tử nhúng.
Kellenjb

Yay tương tự xe! Olin, đối với nhiều người, điều này không phải là về việc học tập và học hỏi kỹ thuật điện tử và trở thành một kỹ sư. Rất nhiều người chỉ muốn chọn một công cụ cho phép họ đạt được mục tiêu và giải quyết vấn đề của họ. Học các thiết bị điện tử là một phương tiện để kết thúc trong nhiều trường hợp, và bản thân nó không phải là kết thúc. Không phải ai cũng tham gia trò chơi này vì những lý do giống như bạn.
nemik

2
Phải không? Vậy thì những gì nói về "nắm lấy tinh thần bên trong của bạn"? Thôi nào. Bạn có đang nắm lấy tinh thần bên trong của mình khi chạy Windows hoặc Linux hoặc OS X thay vì viết HĐH của riêng bạn như Real Man ™ không? Đó là những hệ điều hành bọc đường chết lặng cho quần chúng.
nemik

1
@nemik: Ôm lấy tinh thần bên trong của bạn là một trò đùa, giống như đi trên con đường dài tối tăm ... Tất nhiên cũng có một số sự thật trong cả hai điều đó.
Olin Lathrop

4

Là một lập trình viên, tôi thích lập trình bằng ngôn ngữ được nhiều người khác sử dụng, theo cách đó, có rất nhiều sách, bài báo, đồng nghiệp, v.v. để giúp tôi học.

Trong thế giới máy tính bảng đơn, Arduino được coi là phổ biến nhất với hơi thở hỗ trợ lớn nhất. Nó là một lựa chọn tuyệt vời cho máy vi tính đầu tiên của bạn.

Xem xét mức độ rẻ của những thứ này (hầu hết là dưới 50 đô la), bạn có thể muốn xem xét nhận nhiều hơn một loại.

Đối với ai đó quen thuộc với Microsoft Visual Studio và C #, Netduino là một lựa chọn tuyệt vời vì nó có một chuỗi công cụ mà bạn sẽ biết.

Nếu môi trường ưa thích của bạn là Unix, bạn có thể thích một bảng như Raspberry Pi sắp ra mắt vào tháng 1 năm 2012:

Raspberry Pi là gì? Raspberry Pi là một máy tính có kích thước bằng thẻ tín dụng cắm vào TV và bàn phím của bạn. Đó là một PC nhỏ có khả năng có thể được sử dụng cho nhiều thứ mà PC của bạn làm, như bảng tính, xử lý văn bản và trò chơi. Nó cũng phát video độ nét cao. Chúng tôi muốn thấy nó đang được trẻ em trên toàn thế giới sử dụng để học lập trình.

Khi nào thiết bị sẽ có sẵn để mua? Chúng tôi hy vọng sẽ có sẵn Raspberry Pi để đặt hàng vào cuối năm 2011. Chúng tôi vẫn dự kiến ​​sẽ bán đấu giá một số bảng beta đầu tiên của chúng tôi trước cuối năm nay (để mắt đến trang web sau Giáng sinh); chúng tôi sẽ chuyển sang sản xuất chính vào tháng Giêng.

Nó có giá bao nhiêu? Model A sẽ có giá $ 25 và Model B $ 35.

Tin tốt thực sự là có rất nhiều bộ điều khiển vi mô giá rẻ có sẵn với nhiều hơn nữa được phát hành mọi lúc.

Cuối cùng là Texas Launchpad MSP-430 có giá $ 4,30 với giao hàng miễn phí. Với giá rẻ mà làm sao bạn không mua?


4

Bắt đầu với Arduino để đưa ra ý tưởng của bạn và tạo ra một nguyên mẫu hoạt động tối thiểu và chỉ cần học cách giao tiếp với những điều cơ bản bạn sẽ cần cho sản phẩm của mình (động cơ, cảm biến, nối tiếp để liên lạc).

Sau này khi bạn muốn nhiều chức năng hơn (thiết bị USB, Ethernet) chuyển sang chip ARM Cortex M-series. ARM 32 bit có nghĩa là chúng rất mạnh và hiện thường rẻ hơn và có nhiều thiết bị ngoại vi hơn so với các chip 8 hoặc 16 bit cao cấp hơn như các AVR và PIC. Mbed của NXP (http://mbed.org) là một giới thiệu rất nhẹ nhàng về nền tảng đó nếu bạn đến từ Arduino.


2

Khi mọi người nói Arduino là "đơn giản để lập trình" điều họ thực sự muốn nói là về cơ bản chuỗi công cụ chỉ hoạt động. Nó hoạt động trên máy Mac, nó hoạt động trên Windows và hoạt động trên Linux. Bạn cắm bảng của bạn, bạn viết mã của bạn, bạn tải nó lên và nó đi.

Để cung cấp một chút tương phản giai thoại, bản thân tôi chỉ "nâng cấp" lên STK600 của Atmel và môi trường phát triển AVR Studio 5 của họ. Nó chỉ hoạt động trên Windows, vì vậy tôi phải cài đặt VMware và chạy trên máy Mac của mình. Sau đó, tôi phải cài đặt trình điều khiển Jengo USB tinh vi, mất một ngày để đọc các bài đăng trên diễn đàn cầu kỳ. Sau đó, tôi phải tìm ra lý do tại sao tôi có thể nói chuyện với ban phát triển từ IDE, nhưng không phải với thẻ con gái ATmega2560 đi kèm với STK600 ... (Cáp JTAG bị cắm sai, vì tôi đã làm theo hướng dẫn minh họa trên Web hóa ra có hình ảnh hiển thị cáp được kết nối ngược.)

Cho đến nay tôi chưa viết một dòng mã nào với AVR Studio 5, nhưng tôi có lẽ đã dành nhiều thời gian hơn cho nó hơn là tôi có tổng thời gian sử dụng Arduino IDE. Và tôi đã viết hàng tá bản phác thảo Arduino.

Ngôn ngữ bạn đang lập trình về cơ bản là C ++ với một chút tiền xử lý. Với nền tảng của bạn, bạn sẽ không gặp khó khăn gì trong việc tìm ra cách ghép bất kỳ bản phác thảo nào bạn muốn vào một môi trường "pro" sau này nếu cần. Đối với tôi, nhu cầu chỉ nảy sinh khi tôi vượt ra ngoài việc sửa đổi phần cứng Arduino và bắt đầu thiết kế bảng mạch của riêng mình. YMMV, tất nhiên ...

Hi vọng điêu nay co ich. :-)


3
Không chọn bạn ... nhưng tôi không đồng ý với bạn nữa. Lý do mọi người nói rằng Arduino rất đơn giản để lập trình là vì về cơ bản họ đã thêm một lớp trừu tượng mà bạn sẽ không nhận được bằng cách khác. Bạn cũng đưa lên C ++, điều này rất hiếm thấy trong thế giới nhúng. Đôi khi nó cần thiết cho các dự án cụ thể, nhưng nó cũng bổ sung một số chi phí mà bạn không thể có khi bạn đang cố gắng cắt giảm từng xu.
Kellenjb

@Kellenjb, tôi có thể mã C ++ mà hầu như không có phí, đôi khi các phần có thể có tới 10%, nhưng nhiều phần có 0 chi phí. Nhưng vâng, rất hiếm vì bạn phải chú ý nhiều hơn đến những gì bạn đang làm với ngôn ngữ của mình, nhưng chờ đã, điều tương tự cũng đúng ở C. Tôi đã thấy người dùng thử malloc () trong c trước khi nhúng vào kết quả không tuyệt vời.
Kortuk

1

Arduino tạo ra một nền tảng bước đi linh hoạt cung cấp rất nhiều I / O, D / A (ít nhất là PWM) rất nhiều I / O kỹ thuật số, một đèn LED lập trình trên bo mạch, nối tiếp với USB và các mô-đun làm sẵn có sẵn cho rất nhiều loại phần cứng khác. Nếu bạn muốn tự mình trải nghiệm việc học, thì bạn không cần nó. Nếu bạn muốn một nền tảng có được thứ gì đó và chạy chỉ vì niềm vui của nó hoặc trong khi bạn đang thiết kế phiên bản phần cứng giá rẻ của thứ đó, thì nó đã sẵn sàng hoạt động khi bạn cần. Đây là những quyết định về thiết kế, chiến lược và kinh tế hoàn toàn hợp lệ để đưa ra bất cứ cách nào phù hợp với mục tiêu của bạn. Không có gì "sai lầm" về việc đánh đổi - đó là những gì các kỹ sư làm - và được cho là phải làm - mỗi ngày.


1

Kinh nghiệm của John gần như khớp chính xác với tôi 15 năm trước khi tôi nghỉ hưu từ việc giảng dạy Khoa học máy tính (về cơ bản là Lập trình ngôn ngữ hội và C) cho sinh viên đại học. Sau đó tôi nhận ra rằng để theo kịp những tiến bộ trong điện toán sẽ rất tốn kém, vì vậy vợ tôi đề nghị quay trở lại Điện tử như một sở thích, vì tôi rất thích trở thành Kỹ sư Điện vào những năm 1950. Điều này tôi đã làm, mặc dù tôi chỉ gặp một thời gian ngắn các bóng bán dẫn và chưa bao giờ thấy một op-amp, vì vậy tôi có rất nhiều việc học thú vị để làm. Tôi vẫn giữ được tình yêu với Ngôn ngữ hội và khi Microchip Pics xuất hiện vào giữa những năm 90, tôi đã bị cuốn hút vào chúng.

Tôi không thể so sánh chúng với Arduino, điều mà tôi không biết gì, nhưng một lợi thế của việc sử dụng Pics là nó rất rẻ để thiết lập, vì Microchip cung cấp tất cả thông tin miễn phí, với một IDE tuyệt vời và bạn có thể học cách sử dụng chúng , như tôi đã làm, từ những gì họ xuất bản. Bạn có thể bắt đầu với một Lập trình viên tự làm, rất nhiều thiết kế trên Internet, vì vậy sẽ chỉ tốn một vài bảng cho một vài chip Pic để bắt đầu. Nhưng tôi muốn giới thiệu PicKit 2 có nhiều tính năng tích hợp để phát triển chương trình dễ dàng. Có lẽ không phải PicKit 3, xem, xem:

http://www.eevblog.com/2009/10/21/eevblog-39-pickit-3-programmerdebugger-review/ Mặc dù điều này đã được cập nhật, hãy xem các ghi chú trên tài liệu tham khảo này.

Có một số lượng lớn sách về Pics, nhưng một số là rác rưởi, hãy cẩn thận. Để bắt đầu dễ dàng, một giới thiệu tuyệt vời về Pic là:

"Thiết kế hệ thống nhúng với vi điều khiển PIC: Nguyên tắc và ứng dụng" [Bìa mềm] của Tim Wilmshurst, 22-66 bảng trên Amazon, bao gồm cả Trình biên dịch và C. Tôi đã tránh C trong một thời gian vì nó dường như lấy đi sự thân mật với phần cứng mà Trình biên dịch cung cấp, nhưng với trình biên dịch C được cung cấp bởi Microchip, bạn có thể thấy mã Trình biên dịch được tạo ra.

Đối với một phạm vi tổng thể, tốt, kỹ thuật (không ngại đưa Toán học vào) các thiết bị điện tử hiện đại, tôi khuyên bạn nên: "Điện tử thực hành cho nhà phát minh" 2 / E [Bìa mềm] của Paul Scherz, £ 19-95 trên Amazon.

Tôi đã trả tương ứng 26-99 bảng và 22-99 bảng cho những cuốn sách này tại các cửa hàng và không hề hối tiếc.

Tôi không thể trình bày đủ ở đây, tôi sẽ rất vui khi được gửi email qua chủ đề này: 417weston @ gmail (và, chỉ trong trường hợp, tôi rất cảnh giác về những gì tôi đọc hoặc tải xuống hoặc trả lời.)

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.