EC1 EasySteps

This EasyStep shows you how Easy it is to get an EC1 to control an RGB LED from an Android device via Bluetooth.

The program combines three other EasySteps, which you must have done first (and have all the hardware for) for this one to make sense. They are:

It should take you way less than an hour to do this EasyStep, depending on how deeply you delve into the SPLat code. The video clip below shows you the end result using a rolled up sheet of paper as a diffuser.

To run the program

I am going to jump straight into the program. This EasyStep really is just a remix of previous steps, plus a new program. The program is not overly complicated. If you studied the previous ones most of it should be obvious. There’s one new element, which has a “mouseover” explanation.

  • Close all running copies of SPLat/PC
  • Click this link to download the program and launch it into SPLat/PC. Depending on what browser you are running, you will need to select the appropriate option to run the file in the matching application (SPLat/PC).
  • Connect SPLat/PC to the EC1. Details. The Module window in SPLat/PC should now look something like this:
  • Hit CTRL+F12 to translate the program and send it to the EC1 and run it;
  • Connect to the EC1 from your Android ‘phone. EasyStep;
  • Have fun.
The program

The full program is listed below. To show/hide the program listing click here. One single pop-up annotation is on an instruction that is almost certainly new to you. It is marked like this:

;[…]

Place your mouse over the ;[…] to see the pop-up.

;RGB/SimpleHMI colourwheel demo for EC1

aoRed           oEQU    0   
aoGrn           oEQU    1   
aoBlu           oEQU    2   

HMIPort         EQU     252		;Assign a value to a symbolic name

#       Open_Serial Port(HMIPort) User(9600,8,N)   
#       HMI Port(HMIPort) ConnectEvent(evConnect)  ;Declare the handler for the Connected event

        GoSub           TopMenu         ;Paint the initial screen
        LaunchTask      HeartBeat
        RunTasksForever
            
;Paint the home screen on SimpleHMI aka Top Menu           
evConnect:
        GoSub   TopMenu
        Return
        
;------ Display Colour wheel ------------------
TopMenu:
# HMI Reset() Cls() HideAllButtons()
# HMI ColourWheel(evColourWheel)
        Return
;----------------------------------------------
;New colour input from the colour wheel. RGB values are 0-255
evColourWheel:     
        fLoadQ          0.003923      ;Scale factor

;[...]
        aCOMRx_fGetNum  HMIPort,255   ;Retrieve the Red value
        fMul                          ;Scale from 0-255 to 0-.99999999
        fAnout          aoRed         ;Set the red LED

        aCOMRx_fGetNum  HMIPort,255   ;Retrieve the Green value
        fMul
        fAnout          aoGrn   

        aCOMRx_fGetNum  HMIPort,255   ;Retrieve the Blue value
        fMul
        fAnout          aoBlu   

        Return
;====================================================================
;Heartbeat task
HeartBeat:
        On              0
        Pause           10
        Off             0
        Pause           40
        GoTo            HeartBeat