Lisp Badge is a standalone ATmega1284-based computer with a display and keyboard that you can program with uLisp:
You can use it to run programs that interface with components such as LEDs and buttons through the I/O pins, read analog inputs, and operate external devices through I2C and SPI interfaces. It has a grayscale OLED display that can display 8 lines of 42 characters, and an integrated 45-key keyboard optimized for Lisp. See the Lisp Badge for build details .
Specifications
- Dimensions: 107 mm x 61 mm (4.2 in x 2.4 in).
- Display : 42 characters x 8 lines.
- Keyboard: Integrated 45-key keyboard providing upper and lower case characters, numbers and symbols required by uLisp.
- Available memory : 2816 Lisp units (11264 bytes).
- EEPROM : 1024 Lisp cells (4096 bytes), allowing you to save your Lisp workspace using save-image .
- Processor: ATmega1284P
- Clock speed: 16 MHz.
- Current consumption: Approx. 20 mA
language
- uLisp is a subset of Common Lisp with 122 Lisp functions and special forms. See the uLisp Language Reference for a complete definition . The language includes two extensions, plot and plot3d , for drawing graphics and 3d functions.
- Supported types : list, symbol, integer, character, string, and stream. An integer is a sequence of digits, optionally prefixed with "+" or "-". Integers can be between -32768 and 32767. You can enter hexadecimal, octal, or binary numbers, and use the notation #x2A, #o52, or #b101010, which all represent 42. User-defined symbol names can have arbitrary names. Any sequence that is not an integer can be used as a symbol; so, for example, 12a is a valid symbol. There is only one namespace for functions and variables. In other words, you cannot use the same name for a function and a variable. Includes a mark and sweep garbage collector. Garbage collection takes 5 milliseconds.
interface
- These are brought out to headers on the edge of the Lisp Badge board. The numbers in brackets refer to the Arduino pin numbers:
- Four analog input pins using AnalogRead : A0 to A3 (24 to 27) and VCC and GND.
- Use the two analog outputs of AnalogWrite : MISO (6) and SCK (7).
- Digital inputs and outputs using pinmode , digitalread , and digitalwrite : MOSI (5), MISO (6), SCK (7), RX0 (8), TX0 (9), SCL (16), SDA (17), and A0 to A3 (24 to 27)
- I2C interface using with-i2c and restart-i2c : SCL(16) and SDA(17).
- SPI interface using with-spi : MOSI (5), MISO (6) and SCK (7).
- Serial interface (FTDI) using with-serial : RX0 (8) and TX0 (9).
The shift key can be used as a digital input: SHIFT (23).
SCK (7) is connected to the LED on the front panel. This is an analog output pin, so you can change the brightness of the LED.
|