Skip to main content

Posts

My MicroSD shield quit on me! Alternative: SparkFun OpenLog

It's really frustrating when you buy a piece of hardware without thoroughly reading the feedback comments from different users. Well this was the case when I got myself a MicroSD shield from SparkFun . At first it worked very nice with the different libraries giving you quite an array of choices in terms of what you can do with the field. But the major drawback was that it took FIVE digital pins out the the Arduino to work namely: MOSI - pin 11 MISO - pin 12 CLK - pin 13 CS - pin 4 ChipSelect - pin 8 - Pin 10 also needed to remain as an OUTPUT for the shield to remain operational. This was in direct conflict with servo controller board. So it was quite clear that given the number of inputs (i.e servos, sensors etc...), this was going to cripple the development of the flight controller and perhaps prevent the continuation of this project. So a broken MicroSD shield forced me to look at alternative for a data logger and there came the OpenLog device , with simply connects t...

And now I can cut foam shapes

Like most engineering processes, the ability to perform concurrent processes always lead to a more efficient and flexible product. Having said that, It is often prudent to not "eat more than you can chew" referring to developing electronics and an UAV airframe concurrently. Throwing caution out the wind and the fact that building 'foamies' is one of the easiest and quickest way to get an airplane concept in the air, the objective was clear... Build my own hot wire cutter. This little piece of magic hardware, will save you hours of foam sanding and cutting ( Or countless hours of balsa cutting and gluing). So after some research (quite a bit actually) a came across this piece of document that helped spec my power supply, and wire. I added a motor speed controller (which I had to assemble/solder myself - nerve-wrecking!) to easily regulate the temperature of the hot wire in between cuts. I know it's popular to use light dimmers but the motor controller seemed...

Finally made by first PCB board

Like all electronics projects, the skill of "PCB making" is of paramount consequence. After doing my research, I finally assembled the ingredients to develop a servo control PCB. The Goal: I wanted the UAV to have be capability of Manual or Autopilot Mode while in flight as a safety option. This was to be controlled by the Control Station (RC transmitter for now) using a switch. The Parts: Single sided PCB board PCB toner transfer paper (I tried using HP Photosmart paper - DIDN'T WORK) Clothing Iron - Temperature set on "Medium" Wooden cutting board (Just beg the wife!) Ferric Chloride Solution (Here in SA try Mantech or RS Online Drill Machine Drill bits (0.6mm or 0.8mm). I used 0.8mm.  Plastic gloves (Please wife!) Plastic Container (Any container will do as long as it's plastic). So as the point 2 say, I tried using HP Photosmart paper  but it failed dismally. The glossy side of the paper melted and got stuck to the copper clad and it ...

RC Transmitter switching logic using a transistor

It took me a while to figure out how transistors  work. Although the theory is quite simple, the application was  something else. The goal was simple: To use the RC transmitter Channel 5 switch to "switch" ON or OFF "Manual Mode" in the micro-controller. This will enable the ground station to override control of the UAV in any time of the mission flight. Again goal simple enough. The application in many respect was simple enough. what was needed was to understand the signal range of the the transmitter switch in order to raise or lower the base current of the transistor for signal input. The objective is to be able to switch between AutoPilot and Manual mode using a switch on the RC transmitter. Hope I get there!

9DOF IMU on an Arduino MicroSD shield

The SDA and SCL bus lines for the three sensors (magnetometer HMC 5883L, accelerometer and gyro) were joined with not issues checked through the serial communication. (picture below). Biasing was completed with the following pseudo code. It makes use of a  running summation and computes an average once a number of measurements have been collected. /* This is a script to remove signal bias from filtered signal. Author: Paulin Kantue Date: June 2013 */ #define COUNT 50 //Number of values to be counted for biasing boolean computeBias(int raw_vec[], int bias_vec[], int8_t size_count, int8_t *bias_count){   int8_t counter = *bias_count;    boolean flag; // flag to compute sensor bias;   if (counter < COUNT){     for (int i = 0; i < size_count; i++){       bias_vec[i] += raw_vec[i];     }     *bias_count+=1;     flag = true;   }   else {     for (int i = 0; i ...