Thông tin vi điều khiển:
Trong khi Netduino sử dụng C #, hầu hết các bộ vi điều khiển khác được lập trình bằng C - đó là hai ngôn ngữ lập trình hoàn toàn khác nhau. Trên hết, Arduino sử dụng một phiên bản C ++, vẫn khác.
Vi điều khiển thường được lập trình bằng C hoặc lắp ráp (ASM). Nếu bạn là người mới, tôi muốn giới thiệu C. Arduino không phải là một vi điều khiển, nó là một bảng phát triển (thường) dựa trên một vi điều khiển AVR, mặc dù có các MCU khác đang được sử dụng. Các MCU trên bo mạch (bộ vi điều khiển) sẽ được cài đặt bộ tải khởi động. Đây là một phần đặc biệt của mã thay đổi cách MCU hoạt động. Trong trường hợp của Arduino, nó cho phép lập trình thông qua cổng nối tiếp trái ngược với các phương pháp lập trình tiêu chuẩn cũng như truy cập vào các chức năng thư viện đặc biệt. Ngoài ra, trên bo mạch sẽ (thường là) bộ chuyển đổi USB sang nối tiếp vì nhiều chip nhỏ hơn không có phần cứng USB bên trong, do đó, USB phải được chuyển đổi để giao tiếp thích hợp.
Câu hỏi 1:
Một MCU sẽ có một số chân I / O cụ thể. Đây là những chân có thể là đầu vào hoặc đầu ra. Bạn có thể kết nối trực tiếp nhiều cảm biến kỹ thuật số như có các chân I / O, nhưng cảm biến analog bị giới hạn số lượng chân ADC (bộ chuyển đổi tương tự sang số) có sẵn. Không phải tất cả các MCU đều có đơn vị ADC. Bạn cũng có thể kết nối nhiều, nhiều cảm biến khác bằng cách sử dụng các bộ mở rộng GPIO bên ngoài hoặc song song, các thanh ghi ra nối tiếp. Chúng có thể được điều khiển bằng cách sử dụng một vài chân MCU và có thể mở rộng đáng kể số lượng chân I / O có sẵn.
Câu hỏi 2:
Bạn sẽ viết một chương trình trên máy tính được cài đặt lên MCU. Nếu mã cho phép bạn có các giao tiếp bên ngoài (thông qua USB, nối tiếp, SPI, I2C, v.v.) thì bạn có thể giao tiếp với chip trong khi nó đang chạy. Nhưng khả năng đó phụ thuộc vào mã bạn viết. Ngôn ngữ nào bạn sử dụng để giao tiếp với MCU khá cởi mở với bất cứ điều gì bạn thích, vì giao tiếp thực sự đang được thực hiện bởi phần cứng chứ không phải ngôn ngữ lập trình. Có lẽ đó là những gì bạn muốn nói với "C #".
Dự án của bạn:
Trên thực tế, dự án của bạn không có vẻ phức tạp: đọc cảm biến nhiệt độ (nghe giống như analog) và điều khiển động cơ để mở / đóng cửa sổ dựa trên việc đọc cảm biến đó. Khi nào dừng động cơ có thể sẽ dựa trên một cảm biến khác được gắn vào cửa sổ. Điều này có thể được thực hiện với một MCU rất nhỏ với vài chân và không gian chương trình nhỏ (chẳng hạn như ATtiny24 hoặc ATtiny25). Nhưng tôi nghĩ rằng bạn sẽ gặp rất nhiều vấn đề nếu trước tiên bạn không làm việc với thứ gì đó nhỏ hơn một chút. "Thế giới xin chào" tiêu chuẩn của MCU là nháy đèn LED. Sau đó xây dựng trên đó bằng cách cố gắng kiểm soát tốc độ nhấp nháy bằng một nút, sau đó lái xe máy, v.v.
Ý kiến cá nhân...
Tôi không, tôi cũng không muốn sử dụng Arduino. Tôi xây dựng tất cả các mạch của riêng mình, điển hình là với các MCU AVR, nhưng tôi hiểu lý do tại sao mọi người sử dụng chúng. Cá nhân, tôi nghĩ sẽ tốt hơn nhiều nếu học cách thiết kế mạch của riêng bạn và lập trình nó hơn là sao chép mã của người khác và ghép các thứ ngẫu nhiên lại với nhau - đó là điều tôi thấy hầu hết người dùng Arduino đang làm. Có rất nhiều hướng dẫn trực tuyến để bắt đầu với các bộ vi điều khiển không liên quan đến Arduino, đó là những gì tôi sẽ đề nghị bạn xem xét nếu bạn có bất kỳ kế hoạch thiết kế mạch điện nào trong tương lai. Nếu bạn không muốn học bất cứ điều gì, thì bằng mọi cách, hãy sao chép đi, nhưng được cảnh báo rằng thường có những cách đơn giản và hiệu quả hơn để làm những việc mà bạn sẽ không bao giờ hiểu nếu bạn không biết chuyện gì đang xảy ra.