Project/Aiko

From CCHS Wiki
Jump to: navigation, search

Contents

Aiko

Aiko now has progressed to the point it is a stand-alone project, and has it own web-site and Google Group for email ... specifically for hardware/software documentation and discussions.

Description

A small modular, event-driven framework for structuring Arduino sketches, such that individual device drivers can be easily componentized and combined into a single application. The goal is to be able to use Aiko in either standalone "high-performance" Arduino applications or in broader distributed networks utilizing many Ardunios (and other embedded devices).

The motivation for Aiko came from two observations ...

  1. A large number of existing Arduino examples used delay loops and weren't designed to be modular. This meant that combining example code fragments often required a complete re-write of the original example code.
  2. The original usage of the Arduino platform didn't place a high priority on accuracy and precision of real-time event handling, or communications with multiple Arduinos and multiple host computer systems.

These issues are particularly problematic when there is a desire to share and/or re-use component-based software. Especially in more demanding applications like rocketry avionics or robust home automation systems.

The intended outcome is that Aiko will provide a means by which HackerSpace members can create and share high-quality, modular code for embedded devices and applications. A more detailed description can be found on the Aiko web page.

A simple example

#include <AikoEvents.h>
using namespace Aiko;

byte status = LOW;

void setup() {
  pinMode(13, OUTPUT);
  Events.addHandler(blink, 1000); // Every 1000ms
}

void loop() {
  Events.loop();
}

void blink() {
  digitalWrite(13, status);
  status = ! status;
}

External links

  • Aiko source code repository (GitHub)
  • Arduino and Aiko description (geekscape.org)

Usage

  • Practical Arduino projects, e.g. TimeLapseControllerAiko
  • Rocket Avionics - Class G
  • Smart Energy Groups (Home Energy Manager) - API demonstration using Arduinos
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox