ความแตกต่างระหว่างการพัฒนาแอปพลิเคชันด้วย Pi อาจแตกต่างกันมากหรือคล้ายกับการพัฒนาแอปพลิเคชันด้วยไมโครคอนโทรลเลอร์เนื่องจากความแตกต่างของฮาร์ดแวร์และความแตกต่างของการพัฒนาซอฟต์แวร์
มีไมโครคอนโทรลเลอร์หลากหลายให้เลือกใช้ตั้งแต่โปรเซสเซอร์ 8 บิตถึง 64 บิตและมีที่ใดก็ได้ตั้งแต่ RAM ไม่กี่ K จนถึง RAM ไม่กี่กิกะไบต์ ไมโครคอนโทรลเลอร์ที่มีความสามารถมากขึ้นจะมอบประสบการณ์ที่เหมือน Pi ไมโครคอนโทรลเลอร์ที่มีความสามารถน้อยลงไม่ได้
และถึงแม้จะมี Pi ก็มีความแตกต่างอย่างมากระหว่างการพัฒนาสำหรับระบบปฏิบัติการ Windows 10 IoT กับการพัฒนาสำหรับ Raspian, Mate หรือระบบปฏิบัติการ Linux อื่น ๆ Windows 10 IoT ต้องการพีซีสำหรับการพัฒนาโดยใช้ toolchain ของ Visual Studio พร้อมดีบักเกอร์ระยะไกลที่กำหนดเป้าหมายสภาพแวดล้อม Universal Windows Programme (UWP) การพัฒนาสำหรับ Raspian หรือ Mate สามารถทำได้จริงบน Pi ด้วยเครื่องมือที่มีอยู่ใน Pi
ข้อ จำกัด Application Protocolถูกนำมาใช้สำหรับขนาดเล็กและอุปกรณ์ จำกัด ถูกนำมาใช้กับ Internet ของสภาพแวดล้อมของสิ่งต่าง ๆ เพื่อให้เข้าใจถึงความหลากหลายของฮาร์ดแวร์และซอฟต์แวร์ไมโครคอนโทรลเลอร์หน้านี้ในการนำโพรโทคอล CoAP มาใช้จะให้แนวคิดเกี่ยวกับสภาพแวดล้อมที่เป็นเป้าหมาย มันกล่าวถึงระบบปฏิบัติการ Contikiที่ฉันเคยได้ยินมาพร้อมกับ OS ที่รู้จักกันดีเช่น iOS, OSX และ Android ภาษาการเขียนโปรแกรมที่กล่าวถึงคือ Java, JavaScript, C, C #, Ruby, Go, Erlang, Rust และ Python
โซ่เครื่องมือที่ใช้สำหรับการพัฒนากับไมโครคอนโทรลเลอร์แตกต่างกันไปขึ้นอยู่กับผู้ผลิตรวมถึงทรัพยากรประเภทใดบ้างที่มีให้จากชุมชนการพัฒนาและการริเริ่มโอเพ่นซอร์ส ในบางกรณีคุณได้รับ cross assembler ในกรณีอื่น ๆ คุณจะได้รับ C cross compiler และในบางกรณีคุณจะได้โซ่เครื่องมือที่ดีพร้อมระฆังและนกหวีดและอีมูเลเตอร์และคล้ายกับ Visual Studio toolchain สำหรับ Windows 10 IoT
สภาพแวดล้อมการพัฒนาจริงสำหรับไมโครคอนโทรลเลอร์อาจเกี่ยวข้องกับการใช้โปรแกรมEEPROMและเครื่องมือซอฟต์แวร์เพื่อสร้างภาพใหม่และส่งไปยังอุปกรณ์หรืออุปกรณ์อาจมีการเชื่อมต่อที่จำเป็นเพื่ออนุญาตให้ดาวน์โหลดภาพใหม่ผ่านการเชื่อมต่อแบบอนุกรมหรือมากกว่า การเชื่อมต่อเครือข่าย
ความประทับใจของฉันคือว่าไมโครคอนโทรลเลอร์ส่วนใหญ่มีคอมไพเลอร์ C ข้ามแม้ว่าคอมไพเลอร์อาจรองรับมาตรฐานเก่าเช่น K&R หรือ C98 คอมไพเลอร์ C ข้ามมักจะมีคำหลักที่ไม่ได้มาตรฐานสำหรับคุณสมบัติเฉพาะไมโครโปรเซสเซอร์ตัวอย่างเช่นfar
และnear
คำหลักสำหรับพอยน์เตอร์ที่มีโปรเซสเซอร์ 8080 และ 8086 เก่าที่มีหน่วยความจำแบ่งกลุ่ม
นอกจากนี้ยังมีภาษาพิเศษที่ไมโครคอนโทรลเลอร์เป้าหมายเช่นการเขียนโปรแกรมภาษา FORTH ภาษาเหล่านี้มักจะมีการออกแบบเวลาทำงานที่กำหนดเป้าหมายโลหะเปลือยเพื่อให้ไม่มีระบบปฏิบัติการอื่นนอกจากเวลาใช้งานภาษา
ระบบปฏิบัติการอาจมีตั้งแต่ระบบไม่มีกระดูกไปจนถึงลินุกซ์เปลือยไปจนถึงระบบปฏิบัติการพิเศษเช่นfreeRTOSหรือ Windows Embedded หรือ Linux หรือ Microsoft Windows เห็นนี้MINIBIAN โครงการ SourceForge สำหรับราสเบอร์รี่ Pi ดู eBook นี้เช่นกันคือBaking Pi: การพัฒนาระบบปฏิบัติการซึ่งอธิบายการพัฒนาระบบปฏิบัติการพื้นฐานสำหรับ Raspberry Pi ในแอสเซมเบลอร์
บทความนี้จาก Visual Studio Magazine การเขียนโปรแกรม Internet of Things with Visual Studioให้ภาพรวมของอุปกรณ์ต่าง ๆ มากมายตามด้วยภาพรวมของการใช้ Visual Studio IDE สำหรับการพัฒนาสำหรับ Linux และ Windows
ปัจจุบันมีอุปกรณ์ไมโครคอนโทรลเลอร์ขนาดใหญ่ที่สามารถตั้งโปรแกรมและเชื่อมต่อเครือข่ายขนาดใหญ่ที่กำลังเติบโตและมีอยู่ในปัจจุบัน ในระดับที่ต่ำมากคุณจะมีอุปกรณ์ 16-32 บิตที่เรียบง่ายจากผู้ผลิตชิปดั้งเดิมอย่าง Texas Instruments (ฉันเล่นกับชุดพัฒนา SensorTag และสนุกมากทำให้ฉันคิดว่า Watch DevPack อาจเป็นชุดเครื่องมือการเรียนรู้ที่ยอดเยี่ยมเช่นกัน)
อุปกรณ์ไมโครคอนโทรลเลอร์ที่รู้จักกันดีบางตัว ได้แก่ Arduino, BeagleBoard และ Raspberry Pi สภาพแวดล้อมเหล่านี้ล้วนได้รับการสนับสนุนจากชุมชนอย่างกว้างขวางและพร้อมที่จะเสียบเข้ากับเซ็นเซอร์ภายนอกมอเตอร์เซอร์โวและสิ่งอื่น ๆ ที่คุณอาจจินตนาการเป็นจำนวนมาก Adafruit ซึ่งเป็นซุปเปอร์สโตร์แห่งการเรียนรู้ทางอิเล็กทรอนิกส์ที่ก่อตั้งโดย Limor "Ladyada" Fried ให้บริการอุปกรณ์ต่อพ่วงทุกประเภทสำหรับบอร์ดเหล่านี้พร้อมกับบอร์ดพัฒนาขนนกที่มีน้ำหนักเบา
...
อุปกรณ์ที่น่าสนใจที่สุดสำหรับนักพัฒนาที่คุ้นเคยกับ Microsoft .NET Framework และ Visual Studio อาจเป็นสภาพแวดล้อมที่รองรับ Windows 10 IoT Core เหล่านี้คืออุปกรณ์ที่ใช้ x86 และ ARM ที่รองรับแอพ Universal Windows Platform (UWP) ที่เขียนในหลากหลายภาษารวมถึง C #, Visual Basic, Python และ Node.js / JavaScript Windows 10 IoT core รองรับอุปกรณ์ต่าง ๆ รวมถึง Raspberry Pi, Arrow DragonBoard 410C, Intel Joule และ Compute Stick และ MinnowBoard นอกจากนี้ยังมีแพลตฟอร์มผลิตภัณฑ์ที่น่าสนใจเช่น Askey TurboMate E1 ที่สวมใส่ได้
ตัวอย่างเฉพาะของแอปพลิเคชันไมโครคอนโทรลเลอร์
นี่คือภาพของบอร์ดไมโครคอนโทรลเลอร์จากเครื่องชงกาแฟอัตโนมัติ สิ่งนี้ดูเหมือนจะเป็นองค์ประกอบมาตรฐานสำหรับเครื่องชงกาแฟอัตโนมัติที่ผลิตในประเทศจีน เว็บไซต์สำหรับผู้ผลิตนั้นจะถูกพิมพ์ลงบน PCB
รูปภาพประกอบด้วยสองมุมมอง มุมมองด้านซ้ายเป็นด้านหลังของบอร์ดที่มีไมโครคอนโทรลเลอร์และวงจรรองรับ มุมมองด้านขวาเป็นด้านหน้าของบอร์ดพร้อมหน้าจอ LCD และชุดปุ่มที่ใช้สำหรับตั้งเวลาปัจจุบันและดำเนินการต่าง ๆ เช่นการตั้งโปรแกรมเวลาเริ่มต้นเป็นต้น
มุมมองด้านขวาพอดีกับ บริษัท ขนส่งซึ่งจะเข้ากับช่องเปิดที่ด้านหน้าของเครื่องชงกาแฟ สวิตช์บน PCB ล่างจะทำงานด้วยสวิตช์แขนโยก จอแอลซีดีซึ่งดูเหมือนว่ามีวัตถุประสงค์พิเศษจะใช้ในการแสดงเวลาและสถานะปัจจุบันเช่นเดียวกับการแสดงส่วนติดต่อผู้ใช้เมื่อเปลี่ยนการตั้งค่าของเครื่องชงกาแฟ ไฟ LED สีแดงใช้เพื่อระบุว่าเมื่อใดที่เครื่องชงกาแฟกำลังทำกาแฟจริงและเพื่อระบุว่าเมื่อเสร็จสิ้นโดยปิดไฟส่องสว่างกลับ
ไมโครคอนโทรลเลอร์เป็นELAN Microelectronics Corp EM78P447NAM (แผ่นข้อมูล)ซึ่งเป็นไมโครคอนโทรลเลอร์ 8 บิต สถิติพื้นฐานบางอย่างแสดงให้เห็นว่าอุปกรณ์ขนาดเล็กและขนาดเล็กที่สุดนี้เป็นอย่างไร แต่ก็ใช้งานได้ตามวัตถุประสงค์ที่ต้องการ ความตั้งใจคือการพัฒนาซอฟต์แวร์ซึ่งจะดาวน์โหลดลงในการเขียนครั้งเดียว ROM เป็นส่วนหนึ่งของการผลิต
• การใช้พลังงานต่ำ:
* Less then 2.2 mA at 5V/4MHz
* Typically 35 µA, at 3V/32KHz
* Typically 2 µA, during sleep mode
• 4K × 13 บิตบนชิป ROM
•สามบิตการป้องกันเพื่อป้องกันการบุกรุกของรหัสหน่วยความจำ OTP
•การกำหนดค่าหนึ่งการลงทะเบียนเพื่อรองรับความต้องการของผู้ใช้
• 148 × 8 บิตสำหรับการลงทะเบียนชิป (SRAM, การลงทะเบียนเอนกประสงค์)