If I remember correctly, my first introduction to circuits was in my 4th grade when my dad’s friend gave me a neat science-projects like kit. The kit contained components to teach the basics of electronics - switches, a buzzer, small incandescent bulbs (I absolutely dislike using these bulbs nowadays because of the power they drain), wires, steel wool, and other such things.
I was in the US at that time, and Lucas, a friend, and I, used to perform the ‘experiments’ given the handbook. I don’t know what Lucas’ dad did exactly, but to me he was some sort of god; he had tons of toasters and mixers and radios and TVs and machines lying open in his house. My mom would definitely have hit the roof had she seen such an untidy house. But I loved that house because, I suppose, it contributed a lot towards encouraging me to explore electronics as a hobby. And would you believe I’ve still got components from that kit!
In the 6th grade I read something about an FM transmitter and pestered my mum to take me ‘shopping’. I bought a couple of condenser mikes and speakers, but not knowing anything about transistors and chips, got absolutely nowhere. I did, however, manage to build a working crystal radio – very interesting things, I must say.
I always loved mechanics, and continued tinkering with small motors and toy cars and bulbs till the 10th grade. Finally, when I moved to junior college, I got my first formal introduction to electronics. I had loved the mechanical aspect of things, and could put my hand to anything that had gears and rods and levers. So junior college, with its electronics, was a new experience.
Every year I keep growing in experience and exposure, and my ‘To Do’ list keeps expanding. There are a lot of things that I want to build, but I’ve either not had the time or the knowledge to see them through. A lot of the things in the list are half complete; some of them have passed the proof-of-concept stage and are awaiting, to borrow from software lingo, the transition from beta to release version. Summer break is the perfect time to hit these projects with a vengeance, and I certainly plan to achieve a lot during these two and a half months.
The only problem – as I’m researching one project I invariably come across something new and attractive, which but naturally, gets appended to the To Do list, making it longer still!
Here’s my list, in current form:
Project | Status |
Linear PSU | v3; Revision required |
SMPS | Proof-of-concept |
Home Energy Meter | To be done |
Air Conditioner Controller | v1; Revision required |
Computer Controller DMX | To be done |
Ultrasonic Rangefinder | Proof-of-concept |
Digital LC Meter | To be done |
Temperature Controller for Soldering Iron | Proof-of-concept |
Long Range Walkie Talkies | To be done; (searching for info) |
Home Intercom Using Old Phones | To be done |
Drill Press | To be done (currently collecting parts) |
CNC Milling Machine | To be done (currently collecting parts) |
iTrip Mod | v1; Working |
iPod Mini Remote | To be done |
Auto-balancing Inverted Pendulum | To be done |
PIC to VGA | To be done |
Optical Mouse Based Navigation System for Small Robots | Proof-of-concept |
Very Long Range IR Transmitter | Proof-of-concept; (currently collecting parts) |
USB PIC Programmer | To be done |
Class D Audio Amplifier | v1; Revision required |
Digital Weigh Scale | To be done |
Low Cost USB Oscilloscope | Proof-of-concept |
Nokia 3310 / 6610 LCD Interface | Proof-of-concept |
CYUSB6934 Radio Interface | Proof-of-concept |
Lightweight Multipurpose Robotic Platforms (to be christened ‘Saxiest’ :-D ) | v2; Revision required (currently collecting parts) |
Foot Speed Controller for my Dremel XPR | To be done; (searching for info) |
As you can see, several projects still need to be started. Any advice/help/experience is most welcome :-)
You're making a CNC milling machine? O_o
ReplyDeleteVMC or HMC?
Hey desa what's the code for your tag cloud? plz share :) ty!
ReplyDelete@veyron: http://explorecomputerworld.blogspot.com/2009/05/flash-animated-label-cloud-for-blogger.html
ReplyDeletede..reg the Optical Mouse Based Navigation System for Small Robots i interfaced the optical mouse to the AVR and got the distance readings on an LCD, both x and y directions. however i was never able to get consistent readings. if i move the mouse 5cm in x direction then i would get a count of say 1200. but when i would bring it back to the starting position i would never get it to 0. it would be say 100 or -25 and if i keep repeating this without resetting then the error keeps accumulating and reading become totally unreliable. does it have something to do with the sensitivity? from what i observed its quite dynamic as you may have experienced on moving ur cursor over the desktop at varying speeds. do get back to me by mail if you know of any solution or anyone else facing similar problems. thanks!
ReplyDelete@andy:
ReplyDeleteThe ADNS2610, which is the sensor I used, is an 8-pin device from Avago.
Irrespective of the speed you move it at, it gives the *raw* value of distance moved every time the accumulator register is read. Each 'read' clears the accumulator. So, if you read it at some point in time, then move it up 3cm really slow, then move it down 3cm fast, and now read the accumulator, you should get '0'.
The difference in cursor movement speeds observed in a mouse are due to software, ie, microcontroller code, only. If a mouse is slowly moved 1cm, the on-screen cursor also tracks 1cm. However, if the mouse is moved 1cm rapidly, the cursor tracks a much larger distance.
The 'constant tracking' kind of behaviour can be implemented as:
*read accumulator
*wait time delta t
*read accumulator
*(second read value)-(first read value)= moved distance
*on-screen distance=moved distance
*move cursor by a value on-screen distance
The 'variable speed tracking' can be implemented using the following algorithm in which a 'velocity' is calculated:
*read accumulator
*wait time delta t
*read accumulator
*calculate [(second read value)-(first read value)]/(delta t)
* on-screen distance=(some constant) x moved distance
*move cursor by above calculated value
Though this might not be the exact algorithm followed, it resembles a 'real' mouse very closely.
Rohit
@desa: we did not try the avago sensor directly mainly due to lack of time (we had already used 2 weeks to read PS/2 and seeing the unsatisfactory results wasnt a great motivation). However, a few months earlier I was looking around for some good sensors for micromouse and stumbled onto the avago chip again, where people had managaed to make winning mice by calculating the distance directly from the IC. But since the scale of the mouse was quite small it required a robust mechanical construction to get reliable readings.
ReplyDeleteBut isnt there some solution to the PS/2 sensitivity issue at all? or is stripping down an optical mouse the best solution?
I don't think there's a workaround to the PS/2 sensitivity issue primarily because of the very low sampling rates that a PS/2 mouse has (average of about 80-100 samples per second). I think the low sampling speed is the culprit for such 'backlash' errors.
ReplyDeleteI would go with stripping down the optical mouse - its not too difficult to work with the Avago chip. I have some C prototypes if you're interested. They're for the PIC, but they can just as easily be modified for whichever processor you're working with.
BTW, can you post the link to the micromouse site where these sensors were used?