2008-12-14 31 views
13

Tôi đã quan tâm đến lập trình phần cứng gần đây và tôi đã tự hỏi điều gì sẽ là lựa chọn tốt nhất cho tôi với tư cách là một người điện tử nghiệp dư. Tôi không tìm kiếm lập trình cấp thấp trong assembler và tạo bảng mạch. Thay vào đó tôi muốn một cái gì đó với API cho các ngôn ngữ cấp cao, tốt nhất là C# và các thành phần được tạo sẵn như bảng giao diện USB, trong đó tôi có thể cắm cảm biến đơn giản, động cơ vv và xây dựng một số "tiện ích", có thể là một robot đơn giản và cứ thế ...Tùy chọn tốt để bắt đầu lập trình phần cứng bằng ngôn ngữ cấp cao là gì?

Cho đến nay tôi đã tìm thấy Phidgets nhưng chỉ có một vài cảm biến và nó cũng khá đắt.

Vì vậy, câu hỏi đặt ra là: Bạn có biết về bất kỳ "nền tảng" nào khác có API tốt và lựa chọn cảm biến lớn không?

+0

liên quan: http://stackoverflow.com/questions/3047192/alternative-languages-for-embedded-programming –

Trả lời

9

Hãy xem Arduino. Có rất nhiều điều thú vị bạn có thể làm với một danh sách được liệt kê trên Make.

3

Kiểm tra câu hỏi của tôi về vi điều khiển here. Đồng thời: How to Start programming microcontroller.

Tôi có đơn đặt hàng cho chritsmas vi điều khiển phổ biến Arduino. Bạn không thể lập trình với C# nhưng chúng có một khung công tác trên Assembly/C bình thường giúp cho việc tương tác trở nên đơn giản hơn.

+1

Arduino có vẻ thú vị. Tôi đoán tôi có thể sử dụng API C với P/Invoke. Nhưng tôi vẫn sẽ cần phải tự mình xây dựng đầu vào/đầu ra. Đây là điều tốt về Phidgets, nó đã được prebuild. – lacop

1

Ngoài ra còn có Bug Labs trong đó sản xuất một số mô-đun phần cứng có thể được kết nối với nhau để xây dựng các tiện ích tùy ý. Các mô-đun trông thực sự trơn tru (nhưng tôi đã không nhìn thấy chúng trong cuộc sống thực).

4

Nếu bạn muốn sử dụng C# bạn đã xem .NET Micro Framework chưa? SDK là miễn phí, cắm vào Visual Studio, đi kèm với một bộ mô phỏng hoàn chỉnh, và có một số bộ dụng cụ dev có sẵn cho một mức giá khá hợp lý.

Các Tahoe là đáng kể hơn, nhưng nó cũng đi kèm với một màn hình TFT (và hỗ trợ cho nó) để giá vẫn không phải là không hợp lý.

Đối với cảm biến, tất cả các hỗ trợ này đều hỗ trợ giao tiếp I2C và SPI, do đó số lượng thiết bị ngoại vi có sẵn cũng thành hàng nghìn. Bạn sẽ có thể phải làm một số hàn thô sơ cho một số người trong số họ (điện trở, vv) nhưng nếu làm điều đó sợ bạn thì có lẽ bạn đang đi xuống con đường sai anyway.

2

Trong nhiều năm, tôi đã là một fan hâm mộ lớn của loạt PIC vi điều khiển từ Microchip Technology. Họ có một loạt các vi điều khiển với các tính năng khác nhau, từ siêu nhỏ đến tích hợp không dây. Bạn có thể nhận một trong những bộ dụng cụ PicStart của họ với giá khoảng 50 đô la bao gồm phần mềm, thiết bị lập trình và vi điều khiển mẫu.Chúng có thể được lập trình trong C, assembly, BASIC, v.v.

Ban đầu tôi bắt đầu lập trình vi điều khiển với Tem cơ bản Parallax, nhưng chúng đắt hơn $ 50 ea so với $ 1-6 PIC) và chỉ có thể được lập trình trong BASIC, mặc dù chúng chết đơn giản để sử dụng.

+0

CCS đặt cùng một trình biên dịch tuyệt vời và bộ dụng cụ học tập dựa trên PIC. Có, nó là một trình biên dịch C, nhưng họ có rất nhiều thư viện được xây dựng sẵn cho rất nhiều thiết bị ngoại vi và giao thức để làm cho cuộc sống khá dễ dàng trên người mới bắt đầu. – ctacke

0

Tôi không biết bao nhiêu "lập trình phần cứng" bạn sẽ có thể truy cập mà không thực sự xử lý phần cứng. C# sẽ chỉ giúp bạn có được cho đến nay trong thế giới phần cứng, như hầu hết mọi thứ là trong C và đôi khi C + +.

Nếu bạn quyết định muốn khám phá thiết kế phần cứng, bảng Nexys 2 từ Digilent là một cách tuyệt vời để tìm hiểu về thiết kế phần cứng bằng VHDL hoặc Verilog. Nếu bạn muốn mở rộng vào bộ vi điều khiển, Xilinx Embedded Developer Kit cho phép bạn tùy chỉnh cấu hình hệ thống vi điều khiển bằng bộ vi xử lý MicroBlaze nhẹ nhàng sẽ được triển khai trong phần cứng và cung cấp IDE để viết mã C sẽ chạy trên nền tảng nhúng.

Digilent cũng có một loạt các bo mạch mở rộng như cảm biến nhiệt độ, bộ giải mã video, cần điều khiển, bộ điều khiển servo, v.v. mà bạn có thể sử dụng với bảng logic có thể lập trình của chúng.

1

Còn khoảng Lego Mindstorms thì sao? Họ có một CPU 32-bit mà trên đó một máy ảo chạy, mà thậm chí còn hỗ trợ đa luồng. VM có thể được lập trình trong assembly.

Tôi đã chơi với họ một thời gian trước đây và đây thực sự là một trải nghiệm thú vị và thú vị.

+0

có một cổng Lua để suy nghĩ, do đó, nó bao gồm phần 'cao cấp' của câu hỏi. – Javier

+0

Lựa chọn cảm biến thực sự nhỏ cho mindstorms/NXT ... – lacop

0

Tôi sẽ nhận được một trong những .NET-chip đó và tự tạo cho mình một Máy pha cà phê .NET. Hoặc phần nào giống như vậy, nhận được một PIC chỉ là vô ích, bạn cần phải biết các ngôn ngữ cấp thấp như C và assembler.

Có các thành phần tương tự cho Java.

Xem: Basic USB - Using Microchip Stack and C#.NET - Hardware.

+0

Parallax có trình biên dịch BASIC rất phổ biến cho PIC, vì vậy nó không phải là C hoặc ASM. Và PIC là xa vô dụng. – ctacke

0

Nếu hệ thống nhúng bạn sẽ làm việc với trình biên dịch ANSI C, nó có thể chạy Lua (www.lua.org), tất cả những gì bạn cần là biên dịch nguồn cho thiết bị của mình. Tôi đã từng nói chuyện với một trong những nhà phát triển ngôn ngữ, anh ta nói anh ta có một trong những máy chủ web danh sách gửi thư (cũng được viết bằng Lua) của ngôn ngữ đang chạy trong một chiếc điện thoại trong một thời gian chỉ để kiểm tra nó.

Với Lua bạn có thể giao diện cảm biến của bất kỳ thiết bị nào bạn sẽ làm việc trong C hoặc C++ và có các hàm được gọi từ bên trong mã mức cao Lua.

1

Xem "Coin-Cell-Powered Embedded Design" (có sẵn dưới dạng a download, PDF, 7 MB). Đó là một cuốn sách văn bản miễn phí để lập trình vi điều khiển của họ. Hội đồng quản trị là $ 80, mặc dù.

Các vấn đề liên quan