eduArdu is new Open Source Hardware educational board targeting kid’s digital education

eduArdu

Few weeks ago we got contacted by Digital Kidz an non for profit foundation which goals are to support digital literacy and innovative education in the schools. They needed hardware board, which to be easy to use and to allow entry level programming with Scratch and Arduino for beginners. They were ready to pay for the development, but we liked the idea and decided to design one such board for free and release it as Open Source Hardware.

The result is here:

eduArdu-explained

The design is based on ATmega32U4 which is easily programmable with Arduino IDE. We named it “eduArdu” as this is educational board programmable with Arduino.

eduArdu has these features:

  • USB connector for programming and power supply
  • red LED matrix 8×8 which allow text and small image animations
  • X-Y Joystick with push button for navigation
  • Microphone for Audio sensing and interactions
  • Speaker for Audio output
  • Light sensor with LDR
  • Digital temperature sensor
  • RGB LED
  • Status LED
  • IR remote control LED and receiver to talk to other boards, TVs, Air conditioners, etc.
  • PIR motion detector up to 6 meter range
  • UltraSound distance measurement sensor
  • Two SERVO motor connectors (to build easily two wheel robot car)
  • LiPo charger so the whole board may work on LiPO power
  • 6 Makey-Makey style buttons
  • UEXT connector for additional modules

eduArdu-front

The board is shaped like Game console. The first prototypes will be ready in 2 weeks.

Target sale price is EUR 15.00

New Product: MOD-LED8x8RGB stackable RGB LED MATRIX

Image

MOD-LED8x8RGB is intelligent 8×8 RGB LED module, it allow many modules to be stacked together.

Image

If we look at the back side there are two connectors named EXT-IN and EXT-OUT when two modules are stack together EXT-IN of the one snap to EXT-OUT of the other so both get connected.

MOD-LED8x8RGB works with 5V power supply as you can see on the two sides there are big copper pads named VCC/GND and VCC1/GND1 when modules are snap together permanently (if you make big screen) is good these VCC-VCC1 and GND-GND1 to be connected between the modules so better power distribution is achieved.

Image

to connect MOD-LED8x8RGB you will need ARDUINO working with 5V like OLIMEXINO-32U4 – make sure the power jumper is set to 5V as OLIMEXINO-32U4 can work both on 3.3 and 5V.

Then you should connect OLIMEXINO-32U4 to MOD-LED8x8RGB as on above picture in this way:

  • D13 -> EXT-IN.LATCH
  • 5V -> EXT-IN.VCC
  • GND -> EXT-IN.GND
  • UEXT.MOSI -> EXT-IN.DATA
  • UEXT.CLK -> EXT-IN.SCK

All next MOD-LED8x8RGB modules snap together, if you make new row of modules use jumper wires to connect EXT-OUT of the most right module on the first row to the EXT-IN of the most left module in the next row and etc.

Working with Arduino led8x8rgb.h library:

led8x8rgb.h and font.h are necessary to work with MOD-LED8x8RGB, you can download them from GitHub: https://github.com/OLIMEX/DUINO/tree/master/AVR/MOD-LED8x8RGB

how to use it?

first define how many matrixes you have connected by altering bigX and bigY numbers in led8x8rgb.h

then you can use color variable to set your color from 0 – black to 7- white

there are two other variables cX and cY which define where on screen to print text or characters and these get automatically updated after printing to new position

the library have functions available:

  • drawPixel(x,y) draws drawPixel at X,Y coordinates (1,1) is upper left corner
  • drawLine(x1,y1,x2,y2) draws line
  • drawRectangle(x1,y1,x2,y2) draws rectangle
  • drawSolidRectangle(x1,y1,x2,y2) draws solid rectangle
  • drawElipse(x,y,rx,ry) draws elipse
  • drawCircle(x,y,r) draws circle
  • drawTriangle(x1,y1,x2,y2,x3,y3) draws triangle
  • drawChar(c) – draws char at cX, cY and updates cX, cY
  • drawString(s) – draws string at cX, cY and updates cX, cY
  • lScroll() – scrolls all screen left 1 column
  • rScroll() – scrolls all screen right 1 column
  • scrollCharLeft(c) – scrolls one character from the bottom right matrix to the left
  • scrollCharRight(c) – scrolls one character from the upper left matrix to the right
  • scrollString( s, dir) – scrolls string left or right depend on dir

Restless_Dancer.ino, Sentence.ino and Winking_Face.ino are demo codes made with led8x8rgb.h library.

Note that MOD-LED8x8RGB is not simple shift register matrix, but have microcontroller inside, so once you shift the info IN and LATCH it the microcontroller takes care to refresh the image on the matrix, this way with slow SPI you can drive large displays as no need to permanently shift new and new images to the screen as on the dummy RGB matrixes.

Here is video of the demo code from the GitHUb:

http://www.youtube.com/watch?v=EImDHxnk6Pw

DUINOMITE: TESTING NEW COMMANDS SHIFTOUT

Image

These who used Basic stamps in the past remember how useful were the SHIFTIN and SHIFTOUT commands to send and receive serial data. These commands were missing in DM-BASIC  and I was wondering how to interface our new MOD-LED8X8 stackable LED bricks. Using normal BASIC commands which execute for 32 uS each would make the output very slow, so I wrote on KSD forum – I need desperately SHIFTIN/SHFTOUT commands :).

Ken is busy right now with the USB host implemetation so Keyboards, Mouses and USB memory sticks to be implemeted in DM-BASIC so I was not expecting that he will have time soon to work on this, but for my nice surprise Iggy from the forum said I will try to implement this over the evening.

Today he sent me DuinoMite.HEX with SHIFTOUT command with this syntax:

SHIFTOUT DataPin, ClockPin, Mode, STRING$, numebr-of-bits-to-be-sent

I immediately wired the MOD-LCD8x8 and wrote this small piece of code:

10 DP =1: CP = 2: LP=3 ‘define data, clock and latch pins
20 SETPIN DP,8: SETPIN CP,8: SETPIN LP,8 ‘make them outputs
30 A$ = CHR$(&h55)+CHR$(&h55)+CHR$(&h55) ‘ 10101010 10101010 101010
35 B$ = CHR$(&hAA)+CHR$(&HAA)+CHR$(&HAA) ‘01010101 01010101 01010101
40 SHIFTOUT DP,CP,0,A$,24 ‘send first pattern
50 PIN(LP)=1: PIN(LP)=0 ‘latch to display it
60 PAUSE 100 ‘wait a little bit
70 SHIFTOUT DP,CP,0,B$,24 ‘sent second pattern
80 PIN(LP)=1: PIN(LP)=0 ‘latch to display it
90 PAUSE 100 ‘wait a little bit
100 GOTO 40

as expected everything was working and I got nice blinking pattern on my LED-matrix

The great thing with MOD-LED8x8 is that I can stack them together to make any size LED display.

SHIFTOUT now works up to 235Khz so it also can be used to generate nice frequency digital patterns on any DuinoMite PIN.

Well done Iggy! Now Ken have just to include this code in the DuinoMite main firmware.

THIS IS THE POWER OF THE OPEN SOURCE!

the SHIFTIN code is also being prepared, and I have nice project with SHIFTIN command use in mind 😉