/arduino

Miscellaneous Arduino Projects: FORTH, Morse Code and LED communications

Primary LanguageC

Arduino Miscellanea

A skeleton project and collecting ground for random Arduino projects and code.

The build system has been tested under Debian, the 'arduino' package will need to be installed and any associated tools ('avrdude', and you will also need 'picocom' to talk to the AVR).

eForth

The current project includes a fully working eForth interpreter, whose main limitation is lack of writable memory. Interaction takes place over the serial port. The interpreter is currently quite slow but could be sped up by removing a lot of the indirection.

Building the test program

ATMEGA2560

To build:

make MCU=atmega2560

To flash:

make upload MCU=atmega2560 METHOD=wiring

To talk to the Arduino (and the eForth interpreter running on it):

make talk

ATMEGA328P (Arduino Uno)

To build:

make MCU=atmega328p

To flash:

make upload MCU=atmega328p METHOD=arduino

To talk to the Arduino (and the eForth interpreter running on it):

make talk

Checkout out the makefile for default device setting and for which TTY is used.

Working platforms

  • ATMEGA2560
  • ATMEGA328P

Projects

The projects section is a work in progress!

These projects are currently works in progress, they either have not been implemented or only implemented partially.

  • Morse code encoder and decoder

Use a Morse code encoder and decoder as a front end to an eForth interpreter.

  • LED light sensor and communications

A Light Emitting Diode (LED) consists of a PN junction which when hit by light generates a small current, it is in effect a photodiode as well as a light emitting one. This can be used to detect light levels, and even perform two way communication over short distances (a few centimeters at a few hundred bits per second).

See:

To-Do

  • Improve eForth system
    • Get eForth system up and running
    • Speed up interpreter; This can be done by removing a lot of the indirection.
    • Allow saving/loading of dictionary to EEPROM.
    • Maximize usable memory depending on platform.
    • Create custom eForth image that includes extension words in system instead of extending the system at run time.
    • Add words for interacting with all the peripherals
  • Implement LED light sensor and communications module
    • Test out different types of LEDs
    • Get two way communication working
    • Document system, make a write up describing how it works
  • Implement Morse Code CODEC
    • Implement Encoder
    • Implement Decoder
    • Document CODEC