Battery-free MakeCode: Accessible Programming for Intermittent Computing

Battery-free MakeCode: Accessible Programming for Intermittent Computing
复制标题

无电池 MakeCode:间歇计算的无障碍编程

DOI:
10.1145/3517236
复制
发表时间:
2022
期刊:
Wearable and Ubiquitous Technologies
影响因子:
--
通讯作者:
Hester, Josiah
Hester, Josiah
中科院分区:
--
文献类型:
--
作者:
Kraemer, Christopher;Guo, Amy;Ahmed, Saad;Hester, Josiah

文献摘要

相似文献

动手计算已经成为一种令人兴奋的和可访问的方式来学习物理世界中的计算和工程,适合所有年龄段的学生和制造商。目前的端到端方法,如Microsoft MakeCode,需要像micro:bit这样的有线或电池供电的设备,限制了实用性和适用性,并放弃了教授可持续实践的责任。不幸的是,能量收集计算设备通常只能由专家编程,并且需要跨多个工程和计算学科的大量支持工具链和知识才能有效工作。本文通过MakeCode-Iceberg(微软开源MakeCode项目的一组编译器扩展)弥合了可持续计算工作、创客运动和以新手为中心的编程环境之间的差距。这些扩展可以自动和无形地将支持的任何语言(Blocks,JavaScript,Python)的用户代码转换为一个版本,该版本可以在不可靠的能量收集引起的间歇性电源故障中安全正确地执行。在有限的能源、时间和硬件预算下确定在检查点中节省的位置、时间和内容是一项挑战。我们利用MakeCode源到源编译器的独特中间表示来设计和部署各种检查点技术。我们的方法使我们能够第一次提供一个完全基于网络和无工具链的环境来对间歇性计算设备进行编程,使所有人都可以使用无电池操作。我们展示了多个能量采集器、外围设备和应用领域的新用例:包括智能玻璃缸、步数计数器和密码锁。MakeCode-Iceberg为广大的制造者和学习者提供可持续的动手计算机会,使能源收集和无电池嵌入式系统的使用民主化。
Hands-on computing has emerged as an exciting and accessible way to learn about computing and engineering in the physical world for students and makers of all ages. Current end-to-end approaches like Microsoft MakeCode require tethered or battery-powered devices like a micro:bit, limiting usefulness and applicability, as well as abdicating responsibility for teaching sustainable practices. Unfortunately, energy harvesting computing devices are usually only programmable by experts and require significant supporting toolchains and knowledge across multiple engineering and computing disciplines to work effectively. This paper bridges the gap between sustainable computing efforts, the maker movement, and novice-focused programming environments with MakeCode-Iceberg, a set of compiler extensions to Microsoft's open-source MakeCode project. The extensions automatically and invisibly transform user code in any language supported (Blocks, JavaScript, Python)into a version that can safely and correctly execute across intermittent power failures caused by unreliable energy harvesting. Determining where, when, and what to save in a checkpoint on limited energy, time, and hardware budget is challenging. We leverage the unique intermediate representation of the MakeCode source-to-source compiler to design and deploy various checkpointing techniques. Our approach allows us to provide, for the first time, a fully web-based and toolchain-free environment to program intermittent computing devices, making battery-free operation accessible to all. We demonstrate new use cases with multiple energy harvesters, peripherals, and application domains: including a Smart Terrarium, Step Counter, and Combination Lock. MakeCode-Iceberg provides sustainable hands-on computing opportunities to a broad audience of makers and learners, democratizing access to energy harvesting and battery-free embedded systems.