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
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
The BC04 bluetooth module allowed me to control my mobile robot using my Android phones Bluetooth. In case you’re clueless about the BC04 module, refer to my earlier blog post
Download the APK
App Source Code
I wanted to control an Arduino UNO board using my android phones Bluetooth. The UNO board doesn’t have Bluetooth and so requires an external Bluetooth module. I found a small Bluetooth module (BOLUTEK BLK-MD-BC04-B) at digibay.in and purchased it for experimenting.
The BC04 module can be interfaced to your designs using UART. Before pairing with a device, the module enters into a command mode and can be configured using AT commands. Upon pairing with a device the module enters into a communication mode.
Documentation of the module:
BLK-MD-BC04-B Bluetooth Module Specification
BOLUTEK BLK-MD-BC04-B Bluetooth Module AT Commands
Testing the BC04 Bluetooth module:
Since I bought only one module I wanted to be extra careful, and so built a PCB for the module. The design is just an extension of the Application Circuit Diagram from the module specification file.
Eagle Schematic and Layout
BC04 Eagle Library
Schematic and Layouts as PDF
A long time back, during my college days, I had built a line following robot using an 8051 microcontroller. After college that robot aged and died in my backyard shed. Ever since I’ve been planning on resurrecting her, and finally did, using an Arduino Uno.
To make the robot platform I used two geared motors from an old toy crane, and a cheese tub.
Line follower robot platform
Here’s a view after attaching a front wheel and IR sensors.