27 Aug 2012

Wall-E Robot (object/face recognition, sound recognition, AI)




[ 27/08/2012 ] Test 1 - Colour Tracking




[ 05/09/2012 ] Test 2 - Servos and motor driver






[ 08/09/2012 ] Test 3 - Controlling Wall-E from PC




[ 11/09/2012 ] Test 4 - Speech Recognition





=============================================

Flow chart

          commands
PC -------->-------->--------> Robot (Arduino)
PC < ------<--------<------- Camera (wireless)
               video


PC -----> Bluetooth ------> Air -----> Bluetooth -----> Arduino
     Serial
  communication


7 Aug 2012

First Android App controls android via bluetooth LEDs

A fairly simple one. I will only describe how the seek bar works, and part of how commands are recognized by arduino (arduino code). I will do another one about bluetooth another day.




31 May 2012

Weibo Security System (IR sensor, arduino, php, VB)



23/05/2012


I am renting at the moment but doors have no locks, so i am planning to build a system that sends me a warning whenever the doors is cracked open. I am think to use Weibo (twitter in China), and email. it will also activate the CCTV system and start recording.


The following is the diagram that roughly explains how it works.



现在租房,但门没有锁所以打算做个微博警报器,门要是一打开,电脑就会发微博并 @梁小航OSCAR (我)。原理大概像这图吧,画得不好。最难的部份:用第三方软件发微博的代码已经拼出来了,下一步就是写 PHP 跟 VB 的 interface,最后就写 Arduino跟sensor的代码。。






18 Feb 2012

[C++] Fast Trigonometric Functions

Why?

To improve algorithm performance, one direct way is to shorten calculation time. The part that consumes the most computation power would be the trig functions.

The built-in trig functions are generally very good in terms of accuracy. But we don't need that level of precision, so we can sacrifice accuracy to achieve faster speed.

We only use SIN, COS, ACOS and ATAN in our algorithm, so this post will describe only these functions.


9 Jan 2012

Inverse Kinematics And Trigonometry Basics




So firstly, why do we need kinematics? What are they?

Motivation

With your robot having legs the position of those legs dictates where its feet are. Where its feet are dictate its point of balance.

As you undoubtedly know balance can be defined as the robot's centre of mass (affectionately referred to as its centre of gravity) being between its centre of pivots (i.e. the edges of where its feet contact the ground).

If the centre of mass is above the centre of pivots and between them the robot will balance (almost an unstable equilibrium, if you're an applied mathemetician).

If the centre of mass is above but outside the centre of pivots (i.e. beyond the edges of his feet) the robot will overbalance and fall. Fast.




2 Jan 2012

Control Arduino Through Serial Connection (USB) VB Visual Basic program

Content Has been moved to my new blog


http://blog.oscarliang.net/control-arduino-through-serial-connection-usb-vb-visual-basic-program/





LED Example:




Hexapod Example:


Why?

When we are debugging and testing our circuits and codings, most of the times we reset the Arduino board and upload the new program. But the thing is everything has a finite lifetime, and by doing harmful things to the body would even reduce life quicker. 

Just like smoking could kill you, repetitively uploading could kill your arduino too! I still remember I read from somewhere, and someone said an Arduino board has an average uploading limit of about 1000 times... I don't know if this is true, but if we could avoid doing something that could harm the arduino, then why not?

So here we are, I was looking for a way to test and develop new moves and gaits for my hexapod robot. But frequently uploading new codes really cost me time and risking killing the arduino, so I thought it would be nice to test it just by sending the arduino a command through USB connection (Serial communication), therefore the possibility of program uploading could be minimized.

This is also useful when we use bluetooth to control arduino.


1 Jan 2012

Hexapod Robot with 2 DOF legs (degree of freedom)

First Motion, Legs flexibility:


stalker is dead... but the body and components are preserved well, so I decided to reuse them and therefore Mini is born.


Lastest update (12/01/2012)