Threading the Arduino with Haskell
نویسندگان
چکیده
Programming embedded microcontrollers often requires the scheduling of independent threads of execution, specifying the interaction and sequencing of actions in the multiple threads. Developing and debugging such multi-threaded systems can be especially challenging in highly resource constrained systems such as the Arduino line of microcontroller boards. The Haskino library, developed at the University of Kansas, allows programmers to develop code for Arduino-based microcontrollers using monadic Haskell program fragments. This paper describes our efforts to extend the Haskino library to translate monadic Haskell code to multi-threaded code executing on Arduino boards.
منابع مشابه
Haskino: A Remote Monad for Programming the Arduino
The Haskino library provides a mechanism for programming the Arduino microcontroller boards in high level, strongly typed Haskell instead of the low level C language normally used. Haskino builds on previous libraries for Haskell based Arduino programming by utilizing the recently developed remote monad design pattern. This paper presents the design and implementation of the two-level Haskino l...
متن کاملIoT Based Load Management of a Micro-Grid Using Arduino and HMAS
This paper aims to establish an Arduino and IoT-based Hierarchical Multi-Agent System (HMAS) for management of loads’ side with incentive approach in a micro-grid. In this study, the performance of the proposed algorithm in a micro-grid has been verified. The micro-grid contains a battery energy storage system (BESS) and different types of loads known as residential consumer (RC), commercial co...
متن کاملThe Kinematic Analysis Of Four Degrees Of Freedom For A Medical Robot And Control It By Labview And Arduino Mega2560 (Simulation And Implementation)
ABSRACTThis study presents the kinematic analysis of a four-degree freedom medical robotic arm using the Matlab and the robotic-tool, the arm was designed using a solid work program, As well as details of the control of the real design of this arm using Arduino Mega 2560, The specialist enters the position to be reached by the automatic arm (injection position), Or moving the arm to any p...
متن کاملA Simple Parallel Implementation of Interaction Nets in Haskell
The interaction nets introduced by Lafont [Laf90] can be considered as a variant of term graphs, and therewith as a kind of graphs used as representation of terms. Interaction nets are equipped with an “inherently parallel” local and confluent reduction mechanism that makes them an, at least conceptually, attractive target for (functional) programming language implementation. However, to date t...
متن کاملMonad Factory: Type-Indexed Monads
Monads provide a greatly useful capability to pure languages in simulating side-effects, but implementations such as the Monad Transformer Library [1] in Haskell prohibit reuse of those side-effects such as threading through two different states without some explicit workaround. Monad Factory provides a straightforward solution for opening the non-proper morphisms by indexing monads at both the...
متن کامل