It’s been a while since I last coded in Python. Gotta give Python the love it deserves!
Here’s a quick demo of automatic number plate recognition of vehicle plates from a video stream using OpenALPR in Python
I’m surprised at the speed difference I obtained using OpenALPR in Python vs VB.NET, maybe I need to review my VB.NET code 😐 Silly me! I forgot that I had intentionally used timers to slow down the results in VB.NET
Also I feel adding motion detection might be a nice feature and would prevent the results from flooding at the output.
I wanted to design something capable of Automatic Number Plate Recognition, but soon realised it’s quite a tedious task, so began searching for an SDK or API. I found a bunch of commercial ones, but all I wanted was something to play with. Thank goodness for open source software, I found a neat library called OpenALPR. So, decided to give it a shot.
OpenALPR provides bindings in C#, Python, Node.js, Go, and Java. I’m mostly familiar with VB.NET, so I sat down to convert their C# example and designed something simple as a test. In the initial version, I allowed the user to browse for an image file which is fed to OpenALPR. If OpenALPR successfully finds a plate, the results are then displayed in a listbox. It also gives the regions in the image where the plate is detected. What’s cool is, it could even detect multiple plates in an image, even in dark images. Continue reading
My initial attempts at building an RC boat were a disaster. The first one I built used 433MHz RF modules that somehow worked properly only on land. The moment I placed the boat in the water, the electronics would go crazy (probably due to EM noise) and I had to dive in to save the boat. So I decided my next one would use 2.4GHz RF modules, and this post here is about my successful attempt 😀
I used a 2 liter Pepsi bottle as the boat hull. For the RF link, I used nRF24L01+ RF modules , and the friendly Arduino as the boats brains.
This time I went about building my own low cost Arduino clone. To make sure that my design was consistent with arduino boards, I used Sparkfuns RedBoard design as a reference.
At first I wanted to attempt a single layer layout. As you can see, I ended up using lots of jumpers 😦 Also, I customized the board to use SOT223 packages for the voltage regulators (bottom layer). I had to use male header pins for the IO’s as my component stash was void of female headers.
Downloads: Eagle Schematic and Layout
The board makes use of an atmega328 with an UNO bootloader. You can either purchase a bootloaded chip or load the bootloader using a programmer. Here’s a list of sites that sell a pre-bootloaded Atmega328: Continue reading
Today I opened a guitar pedal that I had constructed during my Masters degree. A good friend of mine, Mangesh, had helped design the wooden enclosure.
When I opened the pedal, I couldn’t recall which effect version it contained. At first I thought it was a Chaos pedal. But then I spotted that it had some transistors too. So I scoured through some old notebooks and print outs searching for my guitar effect schematics. Eventually I found the one, turned out it was the Clay Jones Overdrive.
Schematic of the Clay Jones Pedal:
Here’s an interesting read about the pedal
Here are some interesting insights about the creative process, by PBS Digital Studios
Points I found interesting:
- Creativity, for the most part, is a very messy affair.
- The notion that it comes from nowhere, is false.
- One of the keys to creativity is the ability to stay in a place where you don’t exactly know what’s going to happen next.
- Chase down Ideas, but understand that not all of them will lead somewhere.
- The experience of pursuing an idea will influence the next idea.
- Creativity is a spiral of excitement and despair. Allow the despair as it leads to new things.
- A good healthy collaboration will always make a creative piece better.
- Your ideas are not you. Criticisms of your ideas are not you.
- You shouldn’t be married to your ideas and should be ready to let go.
- Nothing is original. You process influences. Let go of the notion of originality.
- You create things using a remix like process.
- If you keep pushing, you can get to some place beyond what you thought was possible.
After months of keeping my 4 wire resistive touch screen stored safely at the bottom of a small box, I felt a sudden urge to bring it out for experimentation. I was hoping to make a simple touch interface to control some stuff using my Arduino.
Excitedly I spent about half a day researching the touch screen. After reading a bunch of app notes and sample codes I felt confident enough to start.
Here are some helpful links:
Adafruit touch screen library
touch control panel by Practicalarduino.com
Touch screen example by Lars Schumann
Arduino and a Nintendo DS touch screen
Application note by Atmel
Application note by Texas Instruments
USB touchscreen mouse, example by Sparkfun
Get touchy, example on bildr
I had bought the touch screen (from digibay.in) without a separate connector. All it had was some delicate plastic film with the copper tracks. I would probably require connectors such as this or this to interface it to the Arduino.
I searched through some old motherboards, CD player PCB’s and Hard disk drives for a suitable connector, but couldn’t find any. Now, desperate to proceed, I began to carefully solder some wires directly to the tracks on the thin connecting film. I somehow regulated my tremors and managed to solder the wires. Then I applied a layer of hot glue just to strengthen the joint.