June 25th
Functional Test Details
The General Approach
I'm taking and incremental integration approach to getting this project up and working.
I'm adding elements one at a time as I'm getting them to work.
This leaves me with a trail of working configurations allowing me to regress back to a previous configuration if something should go wrong.
The first element working is the Nokia LCD Screen.
This was followed by the all the digital controls for the toy.
For the moment the audio analog interface as been disconnected because I will have to find room to squeeze the code into the current memory foot print.
To conserve memory, the LCD font definition table only contains upper case characters and some commonly used symbols.
Lower case characters are displayed in upper case and unsupported characters are replaced with a blanks.
Wi-Fi Software Integration approach
Rather than starting from scratch I have leveraged CC3000 wifi basic application and modified it to work as required.
Some portions that are interactively set using a serial terminal have been changed. This includes
IP Configuration - This now configured as a part of the initialisation process.
Open socket - This has been configured as a part of the initialisation process.
Bind to port - This has been configured as a part of the initialisation process.
Recv data - This is now a part of the main application loop in main().
For the moment, I have retained the use of port UDP5100 for simplicity.
When data is received, the payload is parsed and processed.
I've used a simplistic format where the first byte is the command byte followed by a parameter list.
I've kept the commands and data to use ASCII characters for the moment to make them easily used.
Current Command Table
H<x> - Headlights Control
L Light
U Unlight
S<x> - Suspension Control
A Activate
D Deactivate
N<x> - Neck Control
U Up
D Down
M<x> - Mouth Control
O Open
C Close
P - Power Button Control
Emulate Press Power button
E<x><y><text> - Display on LCD
x (0 through 13) + '0'
y (0 through 5) + '0'
text text to be displayed
No handshaking with the requestor is being performed at this moment.
It is working under the assumption that all commands are received and completed successfully.
Full support for handshaking will be added later as this is required for reliability and safety.
Animating the toy is simple.
At this stage this needs to be done by the remote application
All one has to do is send down the commands in the desired sequence in real time.
The toy will respond accordingly.
For the functional tests I used UDP Test Tool 3.0.
All I had to do was
Select the target IP address 192.168.1.2
Selected the target UDP port 51000
Input the data to be sent (Commands)
Click the Send button to send.
The first video is just a test of the P Power Button Control Command.
This is equivalent of momentarily pressing the yellow power button.
The toy turns on and plays the sequence stored in its embedded controller.
The second is a a test of the other working functions.
This time the toy remains inactive and we control the toy's functions via the commands via Wi-FI.
HL HeadLights Light
HU HeadLighs Unlight
NU Neck Up
MO Mouth Open
MC Mouth Close
ND Neck Down
SA Suspension Activate
SD Suspension Deactivate
MO Mouth Open (To show that mouth can open independently of Neck position)
The third video is a test of the LCD display function.
E43HELLO
E44THERE