Sự khác biệt giữa phát triển ứng dụng với Pi có thể rất khác hoặc hơi giống với phát triển ứng dụng với vi điều khiển do sự khác biệt về phần cứng cũng như sự khác biệt về công cụ phát triển phần mềm.
Có một loạt các bộ vi điều khiển có sẵn ở bất kỳ nơi nào từ bộ xử lý 8 bit đến 64 bit và có bất kỳ nơi nào từ vài K RAM đến vài gigabyte RAM. Các bộ vi điều khiển có khả năng hơn cung cấp trải nghiệm giống Pi hơn. Vi điều khiển kém khả năng hơn không.
Và ngay cả với Pi, có sự khác biệt lớn giữa việc phát triển cho hệ điều hành Windows 10 IoT so với phát triển cho Raspian, Mate hoặc HĐH dựa trên Linux khác. Windows 10 IoT yêu cầu một PC phát triển sử dụng chuỗi công cụ Visual Studio với trình gỡ lỗi từ xa nhắm vào môi trường Chương trình Windows phổ quát (UWP). Phát triển cho Raspian hoặc Mate thực sự có thể được thực hiện trên Pi với các công cụ có sẵn trên Pi.
Các Constrained Giao thức ứng dụng được sử dụng cho, các thiết bị nhỏ hạn chế được sử dụng với Internet của môi trường điều. Để có được ý tưởng về sự đa dạng của phần cứng và phần mềm vi điều khiển, trang này về triển khai giao thức CoAP cung cấp ý tưởng về môi trường mà nó đang nhắm mục tiêu. Nó đề cập đến hệ điều hành Contiki mà tôi đã nghe thấy mơ hồ cùng với các hệ điều hành nổi tiếng hơn như iOS, OSX và Android. Các ngôn ngữ lập trình được đề cập là Java, JavaScript, C, C #, Ruby, Go, Erlang, Rust và Python.
Chuỗi công cụ được sử dụng để phát triển với vi điều khiển khác nhau tùy thuộc vào nhà sản xuất cũng như loại tài nguyên nào có sẵn từ các cộng đồng phát triển và các sáng kiến nguồn mở. Trong một số trường hợp, bạn nhận được trình biên dịch chéo, trong các trường hợp khác, bạn có trình biên dịch chéo C và trong các trường hợp khác, bạn có được chuỗi công cụ đẹp với tất cả chuông và còi và trình giả lập và tương tự như chuỗi công cụ Visual Studio cho Windows 10 IoT.
Môi trường phát triển thực tế cho vi điều khiển có thể bao gồm sử dụng trình lập trình EEPROM và các công cụ phần mềm để tạo hình ảnh mới và đẩy nó vào thiết bị hoặc thiết bị có thể có kết nối cần thiết để cho phép hình ảnh mới được tải xuống qua kết nối nối tiếp hoặc qua một kết nối mạng.
Ấn tượng của tôi là hầu hết các bộ vi điều khiển đều có trình biên dịch chéo C mặc dù trình biên dịch chỉ có thể hỗ trợ các tiêu chuẩn cũ hơn như K & R hoặc có thể là C98. Trình biên dịch chéo C thường có các từ khóa không chuẩn cho các tính năng cụ thể của bộ vi xử lý, ví dụ far
và near
từ khóa cho con trỏ với bộ xử lý 8080 và 8086 cũ với bộ nhớ được phân đoạn của chúng.
Ngoài ra còn có các ngôn ngữ đặc biệt nhắm mục tiêu vi điều khiển như ngôn ngữ lập trình FORTH . Các ngôn ngữ này thường có thiết kế thời gian chạy nhắm vào kim loại trần để không có hệ điều hành nào ngoài thời gian chạy ngôn ngữ.
Hệ điều hành có thể bao gồm từ thực tế không tồn tại đến Linux nguyên bản đến hệ điều hành đặc biệt như freeRTOS hoặc Windows Embedded hoặc Linux hoặc Microsoft Windows toàn diện. Xem dự án SourceForge MINIBIAN cho Raspberry Pi này . Cũng xem Sách điện tử này, Baking Pi: Phát triển hệ điều hành mô tả sự phát triển của một hệ điều hành thô sơ cho Raspberry Pi trong trình biên dịch chương trình.
Bài viết này từ Tạp chí Visual Studio, Lập trình Internet vạn vật với Visual Studio , cung cấp tổng quan về nhiều thiết bị khác nhau có sẵn sau đó là tổng quan về việc sử dụng Visual Studio IDE để phát triển cho Linux cũng như Windows.
Hiện có một vũ trụ khổng lồ và đang phát triển của các thiết bị vi điều khiển có thể lập trình, có thể lập trình sẵn hiện có. Ở mức độ rất thấp, bạn có nhiều thiết bị 16 và 32 bit đơn giản từ nhiều nhà sản xuất chip truyền thống như Texas Cụ. (Tôi đã chơi một chút với bộ phát triển SensorTag và nó rất thú vị, khiến tôi nghĩ Watch DevPack cũng có thể là một bộ công cụ học tập tuyệt vời.)
Một số thiết bị vi điều khiển nổi tiếng hơn bao gồm Arduino, BeagleBoard và Raspberry Pi. Các môi trường này đều có sự hỗ trợ cộng đồng rộng rãi và sẵn sàng gắn vào một số lượng lớn các cảm biến bên ngoài, động cơ, động cơ và bất cứ thứ gì khác mà bạn có thể tưởng tượng. Adaf Berry, siêu thị học điện tử được thành lập bởi Limor "Ladyada" Fried, cung cấp tất cả các loại thiết bị ngoại vi cho các bảng này, cùng với dòng bảng phát triển Feather nhẹ của riêng mình.
...
Vũ trụ thú vị nhất của các thiết bị dành cho các nhà phát triển quen thuộc với Microsoft .NET Framework và Visual Studio có thể là các môi trường tương thích với Windows 10 IoT Core. Đây là các thiết bị hỗ trợ x86 và ARM hỗ trợ các ứng dụng Universal Windows Platform (UWP) được viết bằng nhiều ngôn ngữ bao gồm C #, Visual Basic, Python và Node.js / JavaScript. Lõi Windows 10 IoT hỗ trợ các thiết bị bao gồm Raspberry Pi, Arrow DragonBoard 410C, Intel Joule và Compute Stick và MinnowBoard. Ngoài ra còn có các nền tảng sản phẩm thú vị, chẳng hạn như Askey TurboMate E1 có thể đeo được.
Một ví dụ cụ thể về ứng dụng Vi điều khiển
Đây là hình ảnh của một bảng vi điều khiển từ một máy pha cà phê tự động. Đây dường như là một thành phần tiêu chuẩn cho các máy pha cà phê tự động được sản xuất tại Trung Quốc. Trang web của nhà sản xuất được in trên PCB.
Hình ảnh bao gồm hai quan điểm. Khung nhìn bên trái là mặt sau của bảng chứa vi điều khiển và mạch hỗ trợ. Chế độ xem bên phải là mặt trước của bảng với màn hình LCD và một bộ nút được sử dụng để đặt thời gian hiện tại và thực hiện các hành động như lập trình thời gian bắt đầu, v.v.
Khung nhìn bên phải phù hợp với một hãng vận chuyển mà sau đó phù hợp với một lỗ mở ở phía trước của máy pha cà phê. Các công tắc trên PCB thấp hơn được kích hoạt với các công tắc cánh tay rocker. LCD, dường như là mục đích đặc biệt, được sử dụng để hiển thị thời gian và trạng thái hiện tại cũng như để hiển thị giao diện người dùng khi thay đổi cài đặt của máy pha cà phê. Đèn LED màu đỏ được sử dụng để chỉ báo khi máy pha cà phê thực sự pha cà phê và để chỉ báo khi hoàn thành bằng cách tắt đèn chiếu sáng.
Bộ vi điều khiển là ELAN Microelectronics Corp EM78P447NAM (bảng dữ liệu) là một bộ vi điều khiển 8 bit. Một số số liệu thống kê cơ bản cho thấy những gì một thiết bị nhỏ và tối thiểu này tuy nhiên nó hoạt động độc đáo cho mục đích dự định của nó. Mục đích là để phát triển phần mềm sau đó được tải xuống ghi một lần ROM như là một phần của sản xuất.
• Sự tiêu thụ ít điện năng:
* Less then 2.2 mA at 5V/4MHz
* Typically 35 µA, at 3V/32KHz
* Typically 2 µA, during sleep mode
• 4K × 13 bit trên ROM chip
• Ba bit bảo vệ để ngăn chặn sự xâm nhập của mã bộ nhớ OTP
• Một thanh ghi cấu hình để đáp ứng yêu cầu của người dùng
• 148 × 8 bit trên các thanh ghi chip (SRAM, thanh ghi mục đích chung)