Posts

Showing posts with the label Long Post

Making an 8DOF Quadruped

Image
  I tried my hand at making a Quadruped Robot; an 8-DOF one as opposed to the typical 12-DOF ones. It is still very much a WIP, but I just couldn’t wait to make a post about it. In the top most photo you can see how it is taking serial inputs from a GUI application. The application itself was made using Processing. The GIF below shows how I send the servo values using the interactive knobs and pressing the respective servo buttons. For instance, HLF would mean Hip Left Front and KLB would be Knee Left Back. So if I set the HLF knob to be of a certain value, and then press the HLF button, it will send a command to move the front left servo connected to the hip, to the desired position. The GUI establishes Serial communication with the Arduino.  Spent so many hours 3D Printing the body. (The STL files were obtained from this Instructables page ). To provide sufficient current to all my servos, I al...

PoV Display? Well I tried making one but...

Image
There comes a time in every Maker’s journey where they feel a strong urge to create a PoV Display (Persistence of Vision Display). I am, of course, generalizing here. But odds are that if you are a Maker or an electronics enthusiast, you may have come across a PoV Display project. Perhaps on Youtube, on hobbyist forums, blogs or Facebook Makers’ groups. Part of the reason why these projects are so popular is because of how simple and cheap they are to make. You need very few materials, programming is (somewhat) straightforward and you have flexibility in your choice of sensors. To sum it up, it is very easy to make a PoV Display, yet so easy to get it wrong. Unfortunately, my experience was in the latter. I’ll go into that later in the post. So let’s briefly go through what PoV (Persistence of Vision) actually means: Persistence of Vision refers to how your eyes (more like your brain) perceives objects that move faster than 1/12th of a second. If they move fast enough, the image “pe...

Face Tracking Duck (and Sheep!)

Image
Did you know that you can control your DSLR camera via command line instructions. Not me! And I wouldn’t have until I attempted this project. But that’s besides the point, this project goes beyond me simply using a DSLR camera to obtain a video feed. I used a 2-DOF pan-tilt rig powered by Arduino and the OpenCV library to track the movement of a person’s face. In a way, one could call this a rudimentary example of an animatronic head. If you move upwards, the head will tilt upwards to look at you. Almost like its gaze will follow in whichever direction you move. (Provided you remain within the frame, of course!) I tried placing several cute toys on the pan-tilt rig such as a duck or a sheep, and a ladybird. Setting up a DSLR camera for your video feed: I used a DSLR camera so that I can position the camera wherever I wanted to. In addition, you get a higher frame rate, better image quality etc… This project works with a laptop camera as well, which is what I was using at the be...

Designing and creating a Suspended Strandbeest

Image
Note: This GIF has been sped up x 2 I took one look at Theo Jansen’s Strandbeest moving machines and thought to myself, “Wow I’d like to recreate that”. And recreate I did, but on a smaller scale. I also inadvertently made them less creepy as well. Here’s a video showing the originals models in movement. Pretty cool, right? Theo Jansen has also designed several more cool machines, do check them out on the official Strandbeest website [3].   According to the Strandbeest website and this paper [ 6 ], the model adheres to a group of Holy Numbers. The model and its respective Holy Numbers are shown above. The linkage is made up of two 3 bar linkages (our triangles) and 2 four bar linkages. [2] Image obtained from [2] The overall trajectory of the end-point forms a specific shape, known as the locus. Apparently, the locus’ phases have dedicated names, shown above. The set of Holy Numbers affect the shape of the locus. On e can optimize the locus’ shape to fit their requirements...

An attempt at creating "ASCII" Art but with Unicode characters

Image
Following a quick read of this article on Medium [4], I felt tempted to try my hand at making ASCII art. Well, ASCII art but including Urdu/Arabic characters in it. So in other words, not “ASCII” art at all. This means we’re going beyond the realm of a restrictive 127 character set. Making ASCII art has been tried and done hundreds of times. For this project, I used C++ (my go-to programming language). Upon researching the working principle behind ASCII art [10] and how others approached this in C# [2], Python [4] and JavaScript [3] , I found that implementing an intensity-dependent program is the simplest solution. It can be summed up in 4 steps. 1) Set a char array with several characters sorted by “intensity” 2) Get a grayscale, contrast-adjusted image. 3) Loop through each pixel and select a corresponding character for each pixel, based on the grayscale value (0-255). 4) Print out the corresponding characters. I used the SFML library to load the ima...