Friday, March 22, 2013

Voice Recognition VR Module Review

Voice Recognition VR kit is one product we always wanted to have in our product lines. Only a handful of specialty manufacturers build this board. This makes them incredibly hard to find, not to mention the high price tag that usually comes with it.

That’s why when our first VR module sample arrived a couple of days ago, I was not able to contain my excitement in such a way that I simply dropped everything else and set to immediately start examining and evaluating the VR module. After a brief struggle with the manual testing my reading comprehension, I hooked up the VR with a gizDuino, and worked an Arduino sketch to test and demonstrate its core VR functions.

Following is a short summary of VR module features:

Up to 15 speaker dependent SD voice commands
organized as 3 groups of 5 voice commands each. Due to limited capacity of the on board voice controller, it can only process one group, or 5 voice commands at a time. The host controller takes the responsibility of loading the appropriate voice command set.  Each SD voice command can be up to 1.3 seconds long. 

Non- volatile voice commands storage.
The VR module retains all voice commands prints even after power cycling. Voice commands will only be replaced or erased at the instruction of the host controller.

UART TTL interface.
This allows it to connect with any 5V MCU host that is similarly equipped with UART port. It can even interface directly with 3.3V MCU host as long as the host input is 5V tolerant.


Another BUG Bites the Plus (gizDuino +)

A bug had been discovered by e-Gizmo on the IDE software that will affect the gizDuino plus boards using the

ATMEGA644P/ATMEGA324P/ATMEGA164P processors.

There is a pin mix-up occurring on the analogRead() function. Specifically, the analogRead() function returns an analog readout from a port not on the one you specified in the function. Furthermore, these pin seems to change if you recompile the code using a different processor. While a quick workaround can be effected (by a user remap of the pin assignment), it is nevertheless a huge potential source of confusion and trouble.

This bug was fixed with the most recent update of the (click link >) gizDuino Patch file.

Patch Files to Add gizDuino in Arduino IDE Board List Menu (Updated November 12, 2015)

Our recent additions of many Arduino compatibles controller board products is now causing a lot of confusion in the board selection during the Arduino IDE set up. It became essential for us to create a board list, a patch file if you will, so that our gizDuino (Arduino Compatible) lines could now appear as well in the Arduino IDE Tools>Board list.

The Arduino IDE bundled with gizDuino already had the software patch installed, hence you will now see gizDuino variants listed among the Arduino board list. If your current Arduino IDE installation does not shows the gizDuino lines, you can install the patch files yourself by following this simple procedure:

What’s Cooking @ e-Gizmo Episode 10: Introducing gizDuino Plus (gizDuino+)

In line with our current effort to expand our gizDuino line (Arduino compatible MCU platform), gizDuino mini was introduced about a month ago. These boards are preloaded with Arduino optiboot bootloader, has a breadboard friendly pin spacing, and has just the bare essentials on board for a complete ready-to-deploy microcontroller platform.

A few weeks later, we quietly added the gizDuino plus mini series (gizDuino+ mini). This board is inspired by the Sanguino project, an off-shoot of the Arduino project (or Wiring project, as some people may insists). It is also Arduino IDE compatible, meaning, you can use the same Arduino SDK and Libraries, plus the Sanguino libraries. Probably the most important difference is, it has more I/O than the gizDuino, an additional of 12 I/Os in fact.

But this blog is not just all about gizDuino+ minis…

What’s Cooking @ e-Gizmo Episode 9: gizDuino mini

The growing popularity of the Arduino platform among our locals is nothing short of phenomenal. Before we introduced gizDuino (Arduino compatible hardware platform) about a couple of years ago, Arduino is practically as foreign as it sounded to our locals, though it is already making its waves big time in other countries. I am aware that a few individuals and companies actually made an attempt to market their own Arduino compatibles locally, but ended up with little success.

The Arduino Team. They created the Arduino, and gave it to the world. We owe it to these guys.
(back) Dave Mellis, Tom Igoe; (front) Gianluca Martino, David Cuartielles, Massimo Banzi
Photo Credit: http://www.arduino.cc
When we first toyed with the idea of bringing in the Arduino, I was a bit reluctant. It featured something that gave me a bit of discomfort – it was too easy to use. Why would that be a problem? Ease of use has its consequences. So much details are hidden when one start working at the top (Arduino) level. My worst fear is people may go about using it without ever learning the basics (of microcontrollers and peripherals).

But ease of use, on the other hand, has its advantages too. There is that likelihood that ease of use can lure more people to try their hands with it, hence, through it, enters the world of microcontrollers and their applications. That’s a strong reason that convinced me to go ahead building our local version of the Arduino hardware- the gizDuino.

And so with the help of friends (of e-Gizmo) and a lot of noises, we got the attention of our locals – teachers, students, and hobbyists. Two years thereafter, everybody now wants an Arduino (gizDuino).


Introducing gizDuino minis

Encouraged by the wide acceptance of our gizDuino, we are now introducing several hardware variants of the gizDuino, starting with the mini lines. 

The gizDuino minis are fully functional Arduino compatibles in small PCB footprint. They have the crystal and reset circuit on board and are all preloaded with arduino bootloader. I/O pins are arranged in standard 600mils DIP size so that you can now plug and use these with your breadboards and protoboards, just like a regular 600mil wide DIP package IC. They are perfect for permanent deployment to end products since the board assembly does not carry much excess baggage, not to mention their low cost.




A USB programmer dongle for the gizDuino mini can be built easily using an e-Gizmo USB to UART converter kit. If that sounds like a hard work to you, you can buy a ready to use kit from e-Gizmo.  

A separate USB to UART converter board is required to program the gizDuino minis using the Arduino IDE. Should you decide to level up and want to program the device using advance programming tools, such as winAVR, an ICSP in-circuit programming port is present on-board. 

 USB-UART kit wired for use as a gizDuino mini programming dongle.


gizDuino mini can be used on breadboards and prototyping PCBs. It will even fit with ordinary IC sockets should you want to use one for it.


gizDuino minis will be initially available in four variants, listed as follows according to the MCU type. This gives you the option to pick one suitable enough for the intended application- no more paying for extras you do not need.

gizDuino mini             Bootloader           MCU              Memory Size          Speed
gizDuino mini8           Optiboot           ATMEGA8L              8K Flash            8MHz
gizDuino mini88         Bootloader        ATMEGA88               8K Flash          16MHz
gizDuino mini168       Optiboot          ATMEGA168             16K Flash          16MHz
gizDuino mini328       Optiboot          ATMEGA328             32K Flash          16MHz
 
gizDuino minis are also available without the I/O header pins installed. This gives you freedom to choose and install the type of connectors more suitable for your kind of assembly.

What’s Cooking @e-Gizmo- Episode 8: Going Audio!

As I mentioned in my earlier blogs, we figured it is time to expand our DIY products to include traditional analog electronics kits as well. The last few weeks, I busied myself designing audio amplifier kits. …Yes, you read it right, audio amplifier kits.

It’s not like the local hobby market has a shortage for this stuff. The local hobby market is indeed flooded with this stuff, that adding one more may seem to counter wisdom. But we at e-Gizmo has an important resources at hand that will set our kits apart from the rest.

Experience. We, or rather, I worked for at least 20 years designing among other things, O.E.M. audio products, distributed by a large  American electronics chain of stores bearing its brand. I was involved not just with design, but with almost every engineering aspect of the manufacturing lines, up to product quality assurance.

Equipment. Our lab is likewise properly equipped to do comprehensive audio test and qualifications. I am knowledgeable with industry accepted audio test procedures. Hence, you can be sure that the performance figures we will present with the product are gathered through actual tests and measurements, and not just copied from the IC device datasheet.

This will probably surprise you, but the actual performance of the product depends largely on the way the end product is designed and built. For example, even a high performance IC, if built on a poorly designed PCB, will not perform quite well. IC datasheet specifications indicate only how well the IC can perform, and cannot be used to assume that it performs as such. An actual measurement is required.

Introducing: e-Gizmo Audio Kit Product lines

These are what I came up with so far – our initial audio product offerings, and a preview of more to come:

Low Power 0.5W Audio Amplifier with On Board Loudspeaker

This general purpose low power audio amplifier will be a welcome addition to your electronics project building toolkit. Just hook it up on a 5-12VDC power source and it is ready to go. The amplifier has a built in loudspeaker, and the PCB functions as the front speaker baffle corner mounting holes.

Medium Power 5W + 5W  rms(sine average) 2 channel Audio Amplifier

This is a low cost, medium power stereo amplifier with sufficient output power for medium fidelity sound reproduction. You can use it to boost the music output of your personal players. When used to drive bookshelf loudspeakers, the sound output will be loud enough to fill every corner of a fairly large room with good fidelity music. You will find it quite useful as a test amplifier on your workbench.

20W+20W rms(sine average) BTL  Stereo Audio Amplifier

  
A 20W per channel stereo amplifier cut out for automotive applications. If you are thinking of building a DIY amplifier for your motorbike, you just found the right stuff. It has enough reserve power to impress your friends with its clean music power even in a noisy environment. The amplifier will work with supply voltage of 9-18VDC. Lower supply voltage results in lower power output capability.

The 20W Amplifier has a pretty good THD+Noise performance (0.05%) as actual measurement in our lab reveals. Frequency response is flat within the 20Hz-20Khz audio bandwidth. This qualifies it for use as a hi-fi home amplifier as well. A more elaborate measured data will be published with the product documentation of this amplifier.


Programmable Preamplifier and Tone Control

Still under development is a universal preamplifier and tone control module that can be incorporated with any audio amplifier. The preamplifier employs digital control to keep all signal paths within the board, hence minimizing noises, crosstalk, interference, and ugly wirings that typically plague DIY built audio equipment. Volume, Bass, and Treble control, even input selector, are all digitally controlled.

  
Probably, the most striking feature of this preamplifier is, the controller module (MCU board) is user programmable. It employs an AVR microcontroller with Arduino bootloader- yes, you can program it and add features if you want to using the all popular Arduino IDE environment! For example, you can add a Bluetooth module and have it remotely controlled using your Bluetooth enabled PC or android phone.

Future Prospects

As I am writing this blog, I am already looking for the next member of this series. A 40W to 60W Audio Amplifier is next in order, and with little encouragement coming from you, we will take a shot at the >100W heavyweight division.  
  

e-Gizmo turns 8!

e-Gizmo is now on its 8th year of serving the Filipino electronics and robotics geeks. Wow! Thank you! I really don’t know what to say. It is so unreal. Thank you so much for your continuing support!

Looking back, the early years of e-Gizmo is not much different from the tales and experiences often foretold in running a business the first time. The first three years was particularly hard. Everyday of our existence we have to deal with the prospect of bankruptcy (we were in fact bankrupt then by any measure). Every centavo we had were spent to keep e-Gizmo open for a day more. We could not even bring home money to feed our families. We depended mainly on the sustenance of our families to go through these difficult times

Nobody really thought e-Gizmo could make it or even continue operating for very long. After all, we, the cofounders of e-gizmo, are just a couple of dudes who knew very little in running a business. We are dreamers, armed only with a strong desire to do what we liked doing most: building circuits and gadgets. But what we lacked in business skill is compensated by our long history of experience in electronics design and manufacturing. And on top of that, we have your continued patronage. Thanks to you, we did the unlikely.

e-Gizmo Kits: Should our kits be made to look like, hmmn… kits?

During the early years of e-Gizmo, one major decision we have to make was how we want to present our kits. During those years, the prevailing mindset is DIY kits should be made to appear like one: a jumbled collection of parts soldered over an ugly printed circuit board. The uglier it is the better. Even up to the present, most local kit manufacturers built their kit around the cheapest Printed Circuit Board (PCB) base material available: single sided, paper phenolic base material. Not a problem, really, were it not for the fact they are manufactured using hopelessly ancient, crude and sloppy techniques. Don’t look for quality, you cannot even hope for one. The PCBs are so badly made that building a circuit out of these guarantees a little chance of success in making your kit work the first time. Yet, in a strange and mind boggling manner, this is what the customers actually want!

Being a hobbyist myself, I understood the reason why. We’ve been exposed with sub par kits far too long that we are conditioned us to believe that DIY kit should not appear professionally made. Otherwise, nobody will believe that you made it yourself. Should we conform to the current trend and simply do what everybody else was doing? We decided its time we change all this. Going against the advice of friends and close colleagues, we gambled and use high quality commercial grade PCBs on our kits. We are probably the first local kit provider that consistently used high grade FR4 plated through holes PCBs with our kits.

The next leap: Use of Surface Mount Devices SMD

A better PCB is just the start. The next questions is whether to go with another conventional wisdom that favors through hole components over surface mount devices (SMD) components. Through holes components are still preferred because they are easier to work with, and so they say. Nothing could be farther from the truth. Actually it is the other way around. The only reasons we hobbyists thinks that way is we never tried working with them in the first place. Soldering SMD components may difficult the first time, but once you got the hang of it, you will never turn back. Take this from a middle age man with failing eyesight, but still find more joy in working with SMD components.

So here, we took another “risk”, as we opted to use SMD components in our kits. We find it a lot easier and faster to assemble the kits resulting with the best quality. But more importantly, through-hole components are on their way out. Their days are numbered. Volume manufacturers don’t want them anymore. SMD is the future of electronics. You don’t want to hone your skill to a technology that is going obsolete.

Better Home Grown Kits

Those two decisions proved pivotal in the success of e-Gizmo and earning us a reputation as a high quality electronics kit provider, In fact, even those who had been in the kit business long before us are now following our lead. They too started using good quality PCBs to build their own kits; some are now even doing SMDs too. Finally, our local hobbyists and students are getting good quality kits they long deserved.

We will continue to work hard to give you better kits all the time. This will be our lasting commitment to you. Once again, thank you and happy building!   

What’s cooking @ e-Gizmo Episode 7: Cheaper GPS, GSM module, plus more

We never stop thinking of ways to make the hobby more enjoyable to you. Of course one good way to make the kit more enjoyable is by providing you one with a lowest possible price.

We are in the process of redesigning some more of our popular kits to make them more reliable, at the same time cheaper. For example, in the works is a new GPS kit that has at least the same, if not better, performance than our already retired models. It has a gizDuino (Arduino compatible) pin layout: by soldering header pins to the terminals, you can use it like an Arduino shield. Likewise, our GSM modem kit, is undergoing a similar facelift, you will see a replacement model soon. Both promises to cost significantly less than the current model!

GPS Shield

Also due for release this February is a family of low cost adjustable DC/DC converter modules. These modules will allow you to generate various supply voltage derived from a single 5V to 12V supply rail. One variant can produce positive voltages of up to +24VDC, and another will produce a negative voltages of up to -24VDC. These modules are made with the same pin outs of standard three terminal regulators, so you can treat these DC/DC coverter modules as drop in replacement for TO-220 voltage regulator devices.

DC/DC Converter module generates positive adjustable voltage up to +24VDC from a single 5VDC input.

This DC/DC Converter module can generate a adjustable negative supply voltage of -24VDC from a +5VDC power supply input.


We just finished evaluating a handmade prototype of our new color sensor. This sensor has four independent sensors that can simultaneously measure the R,G, B and Luminance content of light, and can provide up to 16 bit conversion resolution. ADCs are on-board, communication with a host controller is carried out via an I2C interface.

And there is more. As I mentioned in my previous blog, this year we are expanding our product line to include analog kit. You might be surprised to know that analog is actually my thing. I love working with analog circuits, including RF and instrumentation circuits.  But I kept my distance with this class of kit for quite some time. Not that I did not want them. It is a token of respect and humility to people who were once close to my heart…

What’s Cooking @ e-Gizmo: Episode 6 – New Kits for 2012

It’s 2012, the year the World ends. Whichever world it is, no one is quite sure yet. Well,  it’s life as usual @ e-Gizmo.

To start the year off, one of our main-stay product, the gizDuino – not an exact clone, but an Arduino compatible programmable controller board, will take a significant price plunge. Early December 2011, we decided to buy the main components of the gizDuino in volume. This resulted in huge savings that will be passed to you in terms of significantly reduced price.

Also this January, the first few units of our Universal Microcontroller Trainer Board will probably be available for sale. This trainer board will allow owners to self educate or hone their skills more easily with their favorite microcontroller – AVR, Zilog Encore!, PIC, and STM32 ARM7 , using any one of e-Gizmo gizDuino style boards fitted with these microcontroller, including gizDuino itself.

Now that I mentioned it, a STM32 ARM Cortex M3 board, a 32-bit speed demon, is now currently under development. We are making a start with an entry level high performance variant processor running at 30DMIPS. Even this entry level variant will leave to dust a similarly priced 8 bit microcontroller. If you have an application in mind that requires a lot of number crunching and fast processing speed, this is the one you want. We will probably see this in store by the middle of February this year.

Also, some new sensor kits are in the works. This includes a new Optical Color Sensor kit and an X-Y Motion Direction sensor.

We have a lot of other ideas in store for 2012. And this year, our kit and modules product lines will probably take a broader scope. Traditionally, e-Gizmo product lines had been focusing on robotics, microcontrollers, and sensors circuitry. Its time we take a shot on analog, audio, communications and general electronics kit that may be of interest to the pinoy hobbyists. Expect kits belonging to this class to start appearing by the second quarter of this year.

Electronics kits designed and made in the Philippines. We are now entering our 8th year serving you. e-Gizmo is owned and run by hobbyists like you. We are not the largest electronics kit provider in the Philippines, not yet, but with your inspiring support, we are now a leader, a leading innovator. I would like to grab this occasion to express our deep gratitude for your continuing support.

A happy and prosperous new year to all!

MixedSignal        January 1,2012

e-Gizmo Mechatronix Central

Manila, Philippines

What’s cooking @ e-Gizmo Episode 5: Low Cost Bluetooth Module

e-Gizmo upcoming Bluetooth Module is a class 2 discoverable UART wireless cable replacement device. It is logic compatible with 3.3V logic UART devices (MCU). A simple level translator is needed to interface it with 5V logic system. It costs much less compared to its older soon-to-be retired kins.p>
 
 
For something like a year, I’ve been scouting several supplier of Bluetooth module in search of a more affordable alternative to our existing models.  The quest had so far, had been discouraging. I purchased quite a number of samples from several Chinese manufacturers, unlucky me somehow, I always received samples that are either not built for UART wireless replacement applications (no SPP profile), or for some reason, are invisible to a master Bluetooth host (i.e. cannot be paired with a PC Bluetooth). English Instruction manuals, if I get lucky enough to obtain one, are obviously machine translated hence largely unreadable. Trying to figure out what each sentence means takes a lot of hard work, and often leaves me more confused than before when I started. On-line support did not helped either, not that they are not willing to help, I suspect it’s the language barrier having its way.
 
The sample module that is the subject this blog actually arrived as early as January this year – about the time when I basically lost interest and gave up looking. Hence these modules went straight to my “might-be-useful-someday” scouring box. As fate would have it, I suddenly had an urgent need for a Bluetooth module, and these modules finally got the attention they deserved. And to my pleasant surprise, unlike those that came before it, these modules are in fact programmed and works as serial cable replacement!
 
 
 
 
 
 
 
The modules that I currently have- lets give it a tentative name as EGBT04S- is loaded with firmware pre-configured as slave only. This is not a problem at all if you intend to use it to connect with a PC or another Bluetooth master device. In fact, users will quickly benefit from it in that only a few user setups are needed to use it. If the default configuration suits your application, no setup is even required. You will be able to use the module straight out of the box as a UART cable wireless replacement.
 
The EGBT04S can be mounted and pins soldered on a 24-pin hirel socket to form a breadboard friendly module.
 
 
 
 
 
 
But of course, hobbyists are a playful lot. They love features, and most would not mind a few steps of device setup (it is not terribly hard anyway). So we are eyeing the model that can be configured to work either as a master or a slave. A master Bluetooth device is probably needed if you want your device to connect to another Bluetooth device other than a PC.
 
Meanwhile, let’s take a quick look at the EGBT04S. This module measures only about 13×27.5mm. Its terminal layout is not exactly breadboard friendly – 1.5mm pitch pcb edge terminals type. Fortunately, only a few pins are actually needed to connect it to a UART circuit, and these pins are comfortably spread out. This, in combination of its just- about-the-right-size, allowed it to be soldered on a 24-pin hi-rel type IC socket. Now we have a breadboard friendly Bluetooth module!
 
We are waiting for the delivery of the final product. Once it arrives, we will describe in greater details how we can use it in our application circuits.

Multi-coin Acceptor Debugged

The model 623 multi coin acceptor was made available early this year. It was welcome addition to e-Gizmo product line.  In fact, the first few dozen was immediately sold out in just a short while after availability was announced.

Things did not went very well for the first few dozens though. To our horror, we realized that the manufacturer had programmed to device for us to output pulses that does not correspond to the amount of the coin inserted. Worse, too many pulses were being generated: the Five peso coin churns out 40 pulses; the ten peso coin generates 80 pulses! Even at its fastest pulse rate setting, one will have to wait 40 seconds before the acceptor finishes the pulse transfer of a 10 peso coin.

We immediately stopped selling our remaining stock and contacted our supplier for a resolution to this problem. Even with this fault,  people who had brought this acceptor were not willing to return back the units (for various reasons), so we invented some workaround to make the unit usable even while it is crippled with this problem.

Now the good news is, the manufacturer promptly corrected this problem, and starting this April, only the multi coin acceptor with the correct output pulses will be sold @ e-Gizmo.



The new Model 623 coin acceptor is pre- programmed to accept Philippine Coin in 1 peso, 5 pesos, and 10 pesos denomination. The coin acceptor will now output pulses corresponding to the coin amount as follows:

1 Peso = 1 pulse

5 Pesos = 5 pulses

10 Pesos = 10 pulses


The coin acceptor can be used straight out of the box without the need for further user programming. But to improve its coin recognition ability, you may want to ‘train’ the 623. How you will do this is described in detail in the accompanying manual. You will need a lot of coin samples to perform the ‘training’.


Other features of the model 623 coin acceptors are illustrated in the following captioned photos.

1 – Coin detection accuracy setting
MGN – Tolerant
NOM – Normal acceptance
MAX – Maximum Accuracy


2 – Output State
NO – Normally Open
NC – Normally Closed


3- Set button
Used to initiate coin recognition training


4- Output Pulse speed
Fast
Medium
Slow


5- Accepted Coin Denomination LED indicators

6 – Power and Output Pulse Terminal

What’s cooking @ e-Gizmo: Episode 4 – Easy to use USB Host for Microcontrollers

FDTI Vinculum II Second Generation USB Controller Chip is a user programmable 16-bit microcontroller supported with a free ‘C’ language Vinculum Software Tool suite and libraries.
With a gazillion of cheap USB devices abound, one may find it hard to believe why microcontroller fanatics seem to generally ignore these devices in favor of home brew equivalents that eventually cost more.

The truth is, they have good reasons to be so. USB devices are cheap, but they require unwieldy programs to set up (and put in use). In fact, the memory and processing power of a typical 8 bit microcontroller running as a USB host may be easily overwhelmed by just the required USB housekeeping functions. Not to mention the long patience and endurance you have to put up if you have to write these routines yourself.

VDIP2 Vincullum compact development development modules has DIP style I/O pin-out layout, and features two USB ports, one of which can be programmed by the user either as a host or a slave interface.
A friend teaching at the University of the Philippines tipped me off about a chip that makes it relatively easy to interface USB devices with a microcontroller, albeit to a limited extent. FDTI, as it turned out, has for years already have a programmable USB Host solution, the Vinculum Chip VNC2.  A chip with VNC2 features had been in my wish list for quite a while. Why I never heard of it before still baffles me.

VNC2 Debugger/Programmer module is necessary if you plan to develop a specific application yourself or has to program the chip the first time. Otherwise, an ordinary USB flash disk is all you need to perform a firmware upgrade.
Fueled with excitement, I got hold on a pair of V2DIP2-48 and debugger module kit ordered from an on-line distributor for a quick test drive. I assembled a test platform with an on board regulator (to protect it from myself) and a port for a RS-232C converter, and loaded the V2DIP2 module with the latest V2DAP firmware. I used a PC running windows hyperterminal software as the control console.

USB Flash Disk

V2DAP allows you to access and manage the flash disk content using human readable DOS-like command. You can examine the disk directory, create and delete files and subdirectories, check disk parameters, and of course, read from and write to files in ASCII and binary format. It is as easy as it can get. No more FAT, sectors, protocols, etc. to worry about. The VNC2 chips allows control and data transfer via UART, SPI, or parallel FIFO Bus.

Being a DOS user for a good part of my life, I felt nostalgic after the D> prompt appeared a moment after I plugged a USB flash disk. The commands are not exactly DOS alike, but are close enough. Hobbyists who long for an easy USB Flash Disk access will instantly fall in love with the VNC2. 

Keyboard, Mouse, and Joysticks

V2DAP also readily accepts HID devices, but you should not expect these to be a plug and play experience.  I am not familiar how HID devices transmit their data, but based on the three devices I tested, there seems to be no common format. Light hacking is probably required. 

A CDR-KING (Extreme Flight) USB joy stick streams out a binary data whenever I move or press a function button in the joy stick. A data pattern shows up easily. I could tell immediately which portion describes the joy stick analog X-Y readings and the key status.

Next, I tried an A4Tech USB Mouse. As expected, a stream of binary data is dumped every time the mouse is moved or a key is pressed. I made no effort at this point to make sense of this data, but it should not be hard to decode this.  

Finally, an A4Tech USB Keyboard was plugged in. I was expecting the VNC2 to churn out something whenever I press a key, but that was not happening. Some keys were unresponsive while others results in funny character outputs. I suspect the USB keyboard requires an initialization of sort to start up. I will work this out soon.

Bluetooth Dongle and USB GSM Modem

A functional evaluation module was quickly assembled using prototyping PCBs and a few extra components. The VNC2 debugger module is shown in this photo installed on the VDIP2 development module programming port. A e-Gizmo UART TTL to RS-232C conversion module is used to connect the VDIP2 module monitor port with a PC (through a COM port) running hyperterminal software.
I can imagine how you folks would want to make these devices work on your micro, but it appears we still have to wait. As of this time of writing, FDTI has no VNC2 libraries that will allow us to interface those cheap USB Bluetooth and Modem devices with our micros. I tried CDR-King Bluetooth dongle, it listed as unrecognized. Same thing happened with SmartBro GSM Dongle. A let down, I’d say.

USB Devices using FDTI USB to UART Bridge

The V2DAP will read data from any USB Device using FDTI USB to UART chips. Examples of these devices may include USB GPS Dongle, Bar code reader.

Coming Soon: e-Gizmo USB Host Controller

VNC2 offers microcontroller junkies an easy and affordable solution to interface a number of USB devices with their devices, notwithstanding the limitations as described. e-Gizmo is now working on a USB Host kit based on this chip. This is slated to be available to the local hobbyists before the end of May this year. Before the release date, I will write a separate blog on how to use data coming from a USB Joystick, USB Mouse, USB Keyboard, perhaps plus a few more devices.  

e-Gizmo USB Host Controller Module based on the VNC2 Chip is current under development. First few units may be available for sale by end of May, 2011.
    















Visual Programming for the Gizduino Mobot Set

Some time after the release of the e-Gizmo Mobile Robot, there was a peculiar software that was discovered (through an informant) which was almost immediately configured for use with the e-Gizmo Mobot. The software, a third-party program called ‘Babuino’, is a program that introduces a simplified and graphical method of mobot programming (a GUI).

What is simply astounding about the Babuino mobot programming software is its introduction of a very easy and intuitive method of creating a body of code or instruction for a mobot. This easy and intuitive method, called ‘Block-Oriented Programming’ involves the use of graphics (blocks) to assemble a body of code (similar to the programming platform of the LEGO Mindstorms product). With that, perhaps even a 10-year old avid hobbyist of robotics could understand and successfully utilize the program to create a variety of actions for his or her mobot.

Primarily, the Babuino software makes it possible for mobot enthusiasts to immediately start creating their desired mobot program codes without the need to first learn a considerable amount of information regarding conventional programming languages such as ‘C’ or ‘C++’. Although this may seem to encourage laziness in learning the proper coding (as it is always better to learn the proper programming languages), the software offers its users a grasp of the concepts of logic flow in robotic programming and how different functions and operations work in different positions within a body of code.

That is enough for introductions. Now we move on to how we incorporate the Babuino software into the Gizduino of the e-Gizmo Mobot!

————————————————————————————————————————————————–

Obtaining Files

There are actually two installations to complete. The first is the installation of the Babuino into the Gizduino. The second would be the program providing the ‘Block-Oriented Programming’ environment, this software is called ‘Blocos’ and goes hand-in-hand with the Babuino platform.

Begin by downloading all the necessary files. The programs are all freely downloadable, and can be obtained from these links:

Babuino Platformhttp://tech.groups.yahoo.com/group/babuinoproject/

Blocos Softwarehttp://sourceforge.net/projects/br-gogo/files/

Now you will notice that the download page for the Babuino Platform is a Yahoo! Groups webpage. For this you will have to log-in and join to access the ‘Files’ section of the groups. Once there, the figure of the ‘Files’ page will show the files you need to download. Make sure to get the ‘Command Reference’ file – it is a complete manual for using Blocos on Babuino. Next, click on ‘Firmware’. Look for the latest ‘.hex’ file in this page and save it through the save file command found after right-clicking on it. It is this file that will be uploaded to the Gizduino.

In the Blocos download page, you will see many different files available for download. Download the ‘Br_Gogo_python.exe’ file, then any of the files with the label ‘r141’. However, we recommend that you download the ‘r141.tar.gz’ as it is compatible with more compression/decompression programs such as WinZip, WinRAR, and the default windows ZIP program.

 ————————————————————————————————————————————————–

Uploading Babuino Platform

To upload the the Babuino Platform into your Gizduino module, use the Arduino Uploader program to upload the latest ‘.hex’ file you downloaded from the Babuino Yahoo! Groups webpage.

For a more elaborate guide, go to this webpage: http://babuinoproject.blogspot.com/2009/09/how-to-upload-babuino-software-to-your.html 

 ————————————————————————————————————————————————–

Blocos Installation

Windows:

For users of the Windows operating system, after you have acquired all the necessary files, open the ‘Br_Gogo_python.exe’ to run the Python installation process (this is needed since the Blocos software is written in Python). Run the executable file as an administrator to avoid the computer from blocking the installation, and after having done this, the installation process should start.

The complete process will present a number of sub-installations, and all of these sub-installations are required. To put simply, just keep saying yes to all the occurring installation prompts that will appear throughout the main installation. There is the chance that you might be notified of missing files. If this occurs, and the entire software does not work, you can search for possible solutions or post questions at the Blocos forums (http://groups.google.com/group/br-gogo).

Linux:

To install the Python in Linux, open a terminal window and enter the command ‘apt-get update’. At the next prompt, type in ‘apt-get install python2.5 python-cairo python-gtk2 python-kiwi python-serial’, bear the time taken for it to process and in no time will Python be successfully installed.

Macintosh:

In the case of a Macintosh computer installation, installation using ‘Macports’ would be best, Macports ensures that the installation does not interfere with any system software. The MacPorts user’s guide can be found at http://guide.macports.org/. Following the directions, install the following in this order: python-cairo, python-gtk2, python-kiwi, and python-serial.

After the Python installation is complete, you may now unzip the ‘r141.tar.gz’ file to a desired and hopefully new folder. The executable file that opens the Blocos program is the file named ‘Blocos.py’.

(The above instructions are summarized from the original guide at http://www.instructables.com/id/Cheap-Easy-Robotics-for-the-Non-Programmer/step3/Creating-your-own-Babuino/)

 ————————————————————————————————————————————————–

Mobot Configurations

Once you have been acquainted with the Blocos software (with the help of the ‘Command Reference’ file which you should have downloaded), especially with the ‘Control’, ‘Flow’, and ‘Condition’ command categories, you can now use the software to program your e-Gizmo Mobot.

In the first place, you will need a switch that turns the mobot on and off. We suggest the tact switch type for this purpose, but you are free to choose any other switch that is to your desire (although a tact switch would ideally suffice). Attach the tact switch to the following digital I/O pins found on your Gizduino attached to your mobot: ‘GND’ and ‘12’.

The ‘On’ block from the ‘Control’ commands category simply denotes the code that turns on the mobot motors. For our case, the e-Gizmo Mobot only takes on the letters ‘a’ and ‘b’ of the ‘On’ block command, these correspond to the two motors of the mobot.

Of course, you might want to utilize the mobot sensors as switches to some action. For example, you might program your mobot to stop when a collision sensor activates, thus the sensor is a switch to the mobot’s ‘stop’ command. Here is a sample code of the example: 






The code above commands the mobot to continuously (loop) have its motors activated until the ‘Switch 1’ condition is met. ‘Switch 1’ is the condition that is concerned about the state of the sensor associated with ‘Switch 1’, which should be a collision sensor. The ‘loop’ command ensures that if the sensor is not activated, then the mobot will again continue to move.

If you select the ‘Switch’ block command (green-colored oblong thingy), you will notice that a list of numbered switches at the right-hand side of the Blocos program window will appear. These switches refer to sensors available on your mobot. However, for the e-Gizmo Mobot, these switches are directly connected the first four analog I/Os. Thus there are only four available switches one can use for this case, and to access the sensors on the mobot, you have to connect jumpers from the digital I/Os that handle the sensors to only the first four analog I/Os.




For our current example, to set the front (middle) collision sensor to the ‘switch 1’, you must attach a jumper wire from the digital I/O pin number 3 to the analog I/O pin number 0. The same applies for other sensors attach to any of the four analog I/Os.

Jumper at Digital I/O 3
Jumnper at Analog I/O A0
If you have correctly done the above, and assuming you tried the example on your own, then your mobot should continue to rotate its wheels until an object (such as your hand) interrupts the very front IR collision sensor. So long as an object interrupts the collision sensor, the wheels should stop turning and continue again once the interrupting object has been removed.

 ————————————————————————————————————————————————–

Comments

Actually, there is a peculiar thing that happens wherein the motors would turn on only when the collision sensor is activated (the example code above has been configured so that this does not happen for the front collision sensor). The cause for this, if it happens, is from the logic flow of the conditional statement ‘If – then’, and the activation type of the sensor in question. Under an ‘If-then’ conditional block there are two possible outcomes that depend on the state of the condition, which in our case is the state of the ‘Switch 1’. The left outcome occurs under the condition that ‘Switch 1’ is inactive, while the right outcome occurs under the condition that the switch is activated. 

For collision sensors, you will know that it is detecting an object when its corresponding indicator LED emits light, which sets the ‘Switch 1’ active. As such, to have the mobot stop when the collision sensor detects something, the command to turn off its motors goes to the right-hand side of the two outcomes of the ‘If-then’ conditional block, and to have your mobot continue moving when detection stops, the ‘On-ab’ block command goes to the left-hand side of the ‘If-then’ block. 

Front Collision Sensor Activated
 If it is in your desire to use one of the line sensors instead of a collision sensor to make your mobot stop upon detection – or some other desired action for that matter, then the two outcomes of the ‘If-then’ conditional block must be reversed. This is because (as is readily observable) the activation of a line sensor operates oppositely to that of a collision sensor. Its corresponding indicator LED is active whenever the line sensor is uninterrupted and is inactive when detection occurs.

Line Sensor Activated (unlit LED)

Electronic Eyes

For purposes of proximity or distance-sensing, the Photo-reflective sensor is amongst the commonly chosen electronic components. As a concrete example of its capabilities, one of the fairly common applications of this sensor can be seen from automatic sliding doors. You may, or unfortunately, may not have had encountered such a peculiar door, but to those who have had the luxury of seeing one, you might remember how it opens and closes without you or anyone else ever making an effort of pushing or pulling on it! (And we all know how difficult it is nowadays to manually open and close a door) One only needs to walk up to it, and wait for it to open.

Obviously, the doors are slid using electrical power. But in the first place, how does the peculiar door inform itself of your nearby presence and decide to open the doors like a respectful and courteous doorman would?

Such a feat is the kind of functionality that a Photo-reflective sensor introduces to its device. With the sensor, one could obtain information about the distances of objects or determine whether there exist objects within a certain range of the sensor. With this, you can configure a device to react to whatever the sensor detects! Another example would be those ‘automatic’ hand dryers found mostly at well-maintained public restrooms. By placing your hands underneath the dryer at a certain distance, the Photo-reflective sensor notifies the machine to turn on and deliver an amazing draft of warm air to your hands. But besides the unexciting example above, you could perhaps (hopefully more for security than for mischief) use the sensor to detect a person becoming too close to your treasure chest and launch a tranquilizing dart from somewhere to strike the unfortunate, unsuspecting person and afterward have him or her wake up tied to a chair for interrogation.

The Photo-reflective sensor is not only limited to detection-triggering of mechanisms as it might seem. In the more subtle field of Robotics, the sensor is literally purposed to become ‘eyes’ of a robot, granting it reactions to objects around it. The e-Gizmo practices the use of Photo-reflective sensors by applying it to its Mobots. One of the demonstrations of the Mobot photo-reflective sensing is the retraction of the Mobot from markings on the floor that are shaded black. When the Mobot was placed within an area of the floor bordered with some black paint, it will remain moving only within the area enclosed by the black markings.

But to have you appreciate the Photo-reflective sensor besides the many applications it grants, we will provide information about the operations, variations and the general circuit involving the sensor.

————————————————————————————————————————————————–

Basic Operation

In general, a Photo-reflective sensor detects the presence of an object within a given proximity by the interruption of a light beam. The interruption could be in the form of reflecting a light beam upon an object and subsequently receiving the reflected light beam, or it could be that a light beam that is continuously detected is blocked by some object. In either case, the general concept of detection is the same – interruption of a light beam by an object.

Nowadays, because of the tremendous amounts of advances in technology, most Photo-reflective sensors are now able to detect objects with diameters of less than 1 millimeter. Other kinds of Photo-reflective sensors have sensing ranges that have been reported to reach up to 60 meters

The simplest and basic Photo-reflective consists of only the emitter (LED) and the receiver (Photo-transistor). Example models of the different basic Photo-reflective sensors presented below are the CNY70 being an infrared emitting sensor, and a visible-ranged emitting sensor.

Visible Photo-reflective Sensor
IR Photo-reflective Sensor
 ————————————————————————————————————————————————–

General Photo-reflective Sensor Circuit

The general Photo-reflective sensors circuit consist of four primary parts (total number of parts including non-primary ones exceed four). These are the light-emitting source (LED), a light-receiving component (Photo-transistor), which is sometimes simply a single basic Photo-reflective sensor, a signal converter, and an amplifier. The inclusion of the first two parts by now should be self-evident. The need for a signal converter is to verify that the received light signal is that which was emitted by the Photo-reflective sensor. The amplifier simply strengthens the received signal before it goes to the signal converter, so that the steps of a complete Photo-reflective sensor circuit operation are:

‘Light-emission > light reflection > light absorption > signal amplification > signal discrimination/verification > some output’.

 ————————————————————————————————————————————————–

Photo-Reflective Sensor Configuration

All kinds of Photo-reflector circuits/systems, as they exist in the present time, more or less operate in the same way as the above. But the sensor owes its wide range of applicability to the different configurations it can take. There are two categories in which the sensor varies in configuration, the first is the sensor output configuration and the second is the sensor detection modes.

There are two general types of outputs a Photo-reflective sensor provides, these are the called the ‘Light-On’ and ‘Dark-On’ outputs.

1.)Dark-OnAn output that exists and is active while the receiver (Photo-transistor) does not receive light from the emitter.

2.)Light-On– An output that exists and is active only when the receiver is receiving light from the emitter.

Let us imagine that we have a robot that is capable of mobility, and we program it to constantly move forward when it does not detect a specific object in front of it. If there are no objects in the way of the robot then light from the Photo-reflective sensor emitter does not return to its receiver, and the robot frolics forward with confidence. The output for the robot to move forward for this case is the ‘Dark-On’ output. The robot frolics when there is no light detected.

However, if some evil force were to place a poisoned apple in front of the robot and the robot is programmed to stop at the detection of an object by the Photo-reflective sensor. This output is seen to be a ‘Light-On’. The robot stops and stands frozen in fear because we instruct it to, and because the receiver is receiving light from the reflection of the emitted light on the apple (alternatively, you could set the robot to launch a little missile against an object it detects so that when the object is disintegrated, the robot will not be able to detect the object anymore and will resume its ‘Dark-On’ output, which is to frolic happily. This is an example of ‘Light-On’ and ‘Dark-On’ outputs operating hand-in-hand).

From the two general output configurations above, many sub-specific sensing modes come about (mostly for ‘Light-On’ configurations). All of the sensing modes each possess their own strengths and weaknesses in terms of application. As such, the nature of the application determines the kind of Photo-reflective sensing mode to be used; and with the amount of sensing modes, you are entitled to a wide range of applications.

 ————————————————————————————————————————————————– 

Photo-Reflective Sensing Modes 

A.) Through-Beam Mode – This mode is one of the well-known Photo-reflective modes. The mode detects the presence of an object by having a light beam that is continuously emitted towards the receiver broken by the object. Because of its simplicity in structure and manner of detection, it provides one of the longest ranges of Photo-reflective detection (25 to 60 meters, depending on emitter LED type), as well as the detection of objects as small as 3 millimeters (and smaller at closer ranges). However, the through-beam mode does not provide compactness and cost-efficiency, as the emitter and receiver systems must be housed separately.

The e-Gizmo has its own instance of this mode at: http://www.e-gizmo.com/KIT/trubeam.HTM

B.) Retro-Reflective Mode – Similar to the Through-Beam mode, this mode also detects objects by the interruption of its light beam. However, the difference of this mode to that of the Through-Beam is that both the emitter and the receiver are both situated within the same housing, thereby introducing compactness and cost-reduction. The light beam in this way is sent instead to a reflective surface and reflected to the receiver. Although this mode is in every way better than the Through-Beam, it also has its own troubles nonexistent in the Through-Beam mode.

Firstly, objects with a considerable amount of reflectivity could pass through the light beam undetected because an ample amount of light could still be absorbed by the receiver to have it consider the light beam as uninterrupted (There are some models now that have fixed this problem. By using a polarization filter, the Photo-reflective sensor activates whenever the polarization of light that has been received is not the polarization of light that reflects from the mirror). Secondly, Retro-reflective modes only have detection ranges up to around 10 meters.

C.) Diffused Mode – Diffused mode of Photo-reflective detection operates oppositely with the two previous modes. While the Through-Beam and Retro-Reflective modes activate their outputs with the absence of light absorption by the receiver, Diffused modes activate their outputs upon the reception of the light beam produced by the emitter when the light beam is reflected from an object. For this case, both emitter and receiver are under a single housing.

Diffused modes operate almost the same as eyesight. When there is no light, you cannot see whether there are objects within range of your eyesight. Thus, to see in the dark one needs a light source such as a flashlight to emit a light beam upon objects so that when the light is reflected upon them, your eyes receive the reflected light and thus allows you to see the objects.

There are many factors that affect the efficiency of Diffused detection modes, and most of these factors arise from the characteristics of the reflecting object. Color, surface finish, and size all affect the detecting power of Diffused modes. In addition, because only a small percentage of light is absorbed by the receiver from reflection, sensing ranges of Diffused modes are shorter than those of the two previous modes.

The e-Gizmo has its own instance of this mode at: http://www.e-gizmo.com/KIT/Collision.HTM

————————————————————————————————————————————————–

Application-Specific, Photo-Reflective Sensors

Industry today, with the nature of the demands and necessities of society, experiences the greatest need for specialized electronic technologies that fit specific industrial needs. As such, specialized electronic detectors have been developed, and Photo-reflective sensors are of no exception. Here are some of the operation-specific Photo-reflective sensors.

a.) Color-Specific Sensors – These Photo-reflective sensors detect only colors configured to it. The basic color-specific sensors are called ‘single channel units’ and detect only a single prescribed color. Many-color sensors do exist, and allow different shades and colors to be detected.

b.) Luminescent-Specific Sensors – Objects with luminescent properties such as greases, inks, paints, chalks, or glues are detected by luminescent-specific sensors through the use of ultra-violet light. 

c.) Contrast-Specific Sensors – Contrast-specific sensors are used to detect the difference in two colors or media of a target. To do this, the sensor is initially configured to hold two different conditions. Upon detection of an object, the reflected light is analyzed whether the received light is closer to the first condition. If it is, then the output is not activated. On the other hand, if the received light is closer to the second condition, the output will be executed.

d.) Passive Infrared Sensors – Unlike the majority of the Photo-reflective sensing operations that utilize the absorption of its own light, passive-infrared sensors detect objects through absorption of infrared radiation emitted by the object. As such, it detects objects with a higher temperature than that of its environment.

e.) Light Grid Sensors – These sensors are simply an array of line sensors arranged in such a way as to create a light screen or sheet. In most cases these sensors are used for applications wherein the physical dimensions of the targets are in question. That is, they check for deformities in the targets or if a certain form is detected, and the output is executed.