Skip to content

Simple framework for allowing Arduino applications / examples / libraries to be built in a modular, event-driven fashion. Aiko enables more events and less delay()s !

Notifications You must be signed in to change notification settings

samotage/Aiko

This branch is 35 commits ahead of, 52 commits behind geekscape/aiko_arduino_legacy:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

05b4857 · Nov 24, 2013
Jan 25, 2013
Mar 10, 2012
Jul 5, 2011
Jan 25, 2013
Nov 24, 2013
Jul 7, 2009
May 25, 2009
Sep 23, 2009
Jun 8, 2011
Jul 9, 2009
May 7, 2009
Jul 9, 2009
Jul 15, 2009
Jul 15, 2009
Jul 15, 2009
Jul 14, 2009
Jul 7, 2009
Jul 7, 2009
Jul 3, 2009
May 19, 2009
Jul 1, 2009
Jul 1, 2009
Jul 9, 2009
Jun 8, 2011

Repository files navigation

Aiko: Arduino Framework

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.

Aiko allows you to write event-driven code:

#include <AikoEvents.h>
using namespace Aiko;

int ledPin = 13;

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

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

void blink() {
  static boolean on = HIGH;
  digitalWrite(ledPin, on);
  on = !on;
}

Writing individual device drivers as event-driven functions makes it simpler to create device specific modules that can be shared with others and easier to then combine and integrate them with less code changes.

Installation

Get the samotage fork of the Aiko codeline: https://github.com/samotage/Aiko

You will need some libraries for Arduino to compile correctly,

Change into your Arduino libraries folder and use git to clone the project.

On a Mac this looks like:

cd /Applications/Arduino.app/Contents/Resources/Java/libraries

into this directory copy the whole Aiko directory as a library.
this will include necessary resources for the SEGmeter.

On Linux, this will directory will be wherever you install your Arduino software.

Other dependencies

There are some other things that the SEGmeter code needs to work fully, these are separate Arduino libraries that need to be instlled into the library directory above.

They are:

NewSoftSerial PString OneWire DallasTemperature

Whilst it's possible to search for these resources in the intertubes, they have been packaged up here for your benifit.

So, go to here: https://github.com/samotage/Aiko/tree/master/other_arduino_libraries/

And add each of the above directories into the above mentioned Arduino Library directory.

Modules

  • Callback - Easy to use function and method callbacks.
  • Events - Schedule regular callbacks so you can easily deal with a bunch of devices connected to your Arduino.
  • SExpression - Parse simple SExpressions. Think of this as the Arduino equivalent of JSON.
  • Timing - Accurate timing, including better replacements for the standard Arduino timing functions.

See the corresponding files in the docs directory for more info on each module.

Community

Report bugs on our GitHub bug tracker.

Written by Andy Gelme, Jonathan Oxer, and Pete Yandell.

Copyright (C) 2009 by Geekscape Pty. Ltd. Copyright (C) 2009 by Jonathan Oxer. Copyright (C) 2009 by Pete Yandell. Released under the GPLv3 license (dual-licensed).

About

Simple framework for allowing Arduino applications / examples / libraries to be built in a modular, event-driven fashion. Aiko enables more events and less delay()s !

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Processing 59.1%
  • C++ 21.2%
  • Lua 7.6%
  • C 6.9%
  • Python 2.2%
  • Perl 1.8%
  • Other 1.2%