Lischer, Olivier (2024) Exploring the use of Haskell to Program Microcontrollers used in Educational Robotics Platforms. Other thesis, OST Ostschweizer Fachhochschule.
Exploring the use of Haskell to Program Microcontrollers used in Educational Robotics Platforms.pdf - Supplemental Material
Download (586kB)
Abstract
Nowadays children are introduced to electronics and programming by developing applications for “educational robotic kits”.
These kits allow children to write simple applications for a robot that interacts with its environment. Because Python or a block based system like Scratch are beginner friendly, they are often supported by these kits. Sometimes event C/C++ SDKs are available for more advanced users. None of the common kits support a functional programming language and therefore the children do not have a chance to try a different approach to programming. Previous research has proved that it is possible to write a Haskell application on bare metal by implementing an operating system. With MicroHs, a newer Haskell compiler is developed, that is based on combinators.
The author of MicroHs has already demonstrated that it is possible to write simple MiroHs applications that run on micro controllers.
A different approach is used in the project Categorifier. It utilizes the "Compiling to categories" to transform Haskell code into C code. In this project, MicroHs is used to develop a line following algorithm that runs on a Raspberry Pi Pico.
The Raspberry Pi Pico controls a PicoGo robot to demonstrate, how a functional programming language can be used for an educational robotic kit. While it is possible to develop Haskell applications for devices with little memory, it is rather difficult as the Haskell runtime must be adjusted and a lot of C code is still required to get it on to the device.
| Item Type: | Thesis (Other) |
|---|---|
| Subjects: | Area of Application > Academic and Education Technologies > Programming Languages > Haskell Metatags > IFS (Institute for Software) |
| Divisions: | Master of Science in Engineering (MRU Software and Systems) |
| Depositing User: | OST Deposit User |
| Date Deposited: | 06 Oct 2025 20:24 |
| Last Modified: | 06 Nov 2025 09:53 |
| URI: | https://eprints.ost.ch/id/eprint/1332 |
