MEMS (Part 2) – Guide to using gyroscope L3G4200D

Gyro

Taken from wikipedia

 

For most of the people probably the next step in the world of MEMS is to interface gyroscope. Most likely use gyroscope data to fuse with accelerometer data. If you have implanted acc before, you’ll know that acc is very responsive and noisy when it comes to measuring pitch and roll. It is possible to smooth out the data via sensor fusion. In this tutorial I will explain what data we will be getting from gyroscope, how to use the data to calculate pitch, roll and yaw and finally how to fuse sensor data with complimentary filter.


Continue reading...

MEMS (Part 1) - Guide to using accelerometer ADXL345

Acceloremeter

Recently I’ve been playing with cheap GY-80 module, more precisely 10DOF module with accelerometer, gyroscope, magnetometer and barometer.  Eventually I’ll write how to use all four of them. I’ll start with accelerometer (accel). This guide could potentially be used for interfacing most of the MEMS accels, and definitely as a guide how to interpret data coming from the accel, not only from MEMS but also how to use the data coming from Smartphone, wiimote etc. They are basically the same thing. However, I won’t be describing features as tap sensing and double tap sensing, this will be only an introduction about the raw accelerometer.


Continue reading...

Programming micro-controller (Arduino) with cheap HC-06 Bluetooth

I and my friend Zenios Agapiou thought of constructing a simple two wheel balancer robot. At the beginning we thought we will just program our Atmega88pa micro-controller through standard JTAG. However, we quickly realized we have Bluetooth connected to the RX/TX device, so we thought whether we can upload Arduino bootloader to the atmega and program it wirelessly.  However it wasn’t that simple as we initially anticipated.



Continue reading...



QHotkey

 

QHotkey logo

QHotkey is simple application for changing the MS Windows volume with your prefered keys. Also it will show nice popup with the current level of volume.

Basically, I had problems with my laptops hotkey application, it has a very long response time which renders the volume keys and all the other function keys unusable. So I decided to make QHotkey, so at least I can change volume as quick as possible. There were already some solutions available, but I found them either not looking as good as I want to or lacking key customization.

 


Continue reading...

Guide to Xmega USART aka. Serial communication

data brain

Most of my projects involves having some sort of communication between PC and my micro. Either useful data is being transmitted between those two, or just for the sake of debugging, since I don't have any of the high end AVR debugging tools. Whatever reason, serial communication is always useful and I view it as a must have and very important module of any micro. In this article I'll be describing how to set up serial communication with XMEGA, also how to use standard printf and scanf functions in your C and C++ code. I won't be explaining what is a USART, I expect you to already be comfortable with the theory behind it and I'll leave out interrupts.


Continue reading...

Configuring xmega system clock

quartz crystal

For me, one of the first things I wanted to test is how to setup the system clock. In this tutorial I'll be explaining how to set up external oscillator from 8-16Mhz and how to set up the xmega to use internal 32MHz clock. I think, by providing instructions for these two types of system clocks, anyone should be able to understand the logic behind the datasheet and set up whichever clock he/she wants.


Continue reading...

Playing with AtXmega16e5 breakout

xmega16e5 breakout board

 

For my final year project I ended up experimenting with ATxmega16e5 microcontroller, after major step backs with TI ARM microprocessors (don't get me wrong ARM is very powerful).
At the first glance these new xmega series uC are quite impressive. 32MHz internal clock, incredibly fast ADC (16e5 can have up to 300ksps), 12 bit adc, DAC, two or more USARTs and list goes on. Moreover you are able to use tools you're familiar with, when it comes to program AVR family micros, providing you have programmed AVR family before. I have yet to test full capabilites of the new xmega series, but I'll write posts about individual modules, like ADC, USART, DAC etc.


Continue reading...



Pigaso - SVG to gcode coverter

For about a month I've been working on a SVG parser, which translates the SVG primitves to gcode, for the use with 3d printer. I started developing the Pigaso so I can easly plot PCBs with my 3D printer. Unfortunately for me, there wasn't any application, which would easily enable me to generate gcode from SVG image, or any image in that matter. So I though of making my own application to do just that. My main goal, is to develop a converted which is easy to use, and specialized for generating gcode, no hacking required. Continue reading for a demonstration.


Continue reading...

DIY 3D printer, AKA RepRap

 

Parallel to my work, I always do some kind of project every summer. Last summer was a game, which I didn’t manage to finish (got lazy on designing the levels). However, this summer I took on to a journey in a field I have almost no experience. Basically, I built my own 3D printer. Without any kits, I wanted to take away from this journey as much as I could.  I’ll try to remember all I did, and write as detailed as possible about this journey.  In any case, I would advise anyone to try and do this project, it’s a very good learning experience, but be warned that it isn’t a walk in a park, like I thought. When I started this project, I though it wouldn’t take more than 2 weeks to finish it. Well if you know what you are doing, probably it would take less than one day to assemble it, but I didn’t.


Continue reading...

Passing methods as function parameters C++

C++

This is more like a quick reference for myself, how to pass a method as a function argument. It turned out to be very useful for one of programming tasks. I had a lot of  "get" type methods with the same return value, and needed to construct a table of results. And passing method as argument, was a very neat solution.


Continue reading...

Favourite quote:

"We live in a society exquisitely dependent on science and technology, in which hardly anyone knows anything about science and technology."

Carl Sagan


RockTube
  RockTube


Top 10 articles



© Raivis Strogonovs, 2009 - 2014