Posts

Showing posts from September, 2013

Arduino Starter

Image
Even though whopping amount of blogs and tutorials are available about Arduino and its applications, i though about leaving a small note on how to start with Arduino. For the noob . What is Arduino...?    Arduino hardware is nothing different than an ordinary Micro controller. All Arduino boards contain an ATMEL controller with USB connectivity for programming and debugging. So.. why is this Arduino hype...? I know micrcontrollers exists for more than 35 years.How is this different ? Yes... arduino is different in the sense by which user interacts with it. Or in other words.. the arduino development software is so simple and self explanatory for any one with basic coding and hardware skills. Arduino IDE just provides an abstraction such that if user wants a time delay in his program, he can just call a built in function and pass the time delay value. User is taken away from the hectic need of understanding the timers in microcontroller and the math required to produce the delay

Bidirectional 3.3v 5v Level Shifter

Image
Hi guys.. welcome to another simple DIY project... Lets make a level shifter, which will just shift a 5v data line to 3.3v or vice versa... Okie why we need such a shifter..  ? or what is this stuff actually.... ? We run around huge bunch of devices that run in various voltage levels.. for example Raspberry Pi runs in 3.3v, and its all GPIO I/O pins are at this level, even though we provide a 5v USB input. And so it is not tolerent to 5V input levels from another device or sensor modules connected to it over I/O pins using SPI, UART, i2C... whatever.... Another example is Arduino UNO which runs in 5V, normally is driving all its I/O at 5V levels.  So interfacing boards at different I/O voltage levels requires a level shifter. Simple voltage divider circuits can help for an extent.. but they dont provide low voltage  device protection or bidirectional shifting. Wait a minute ... Bidirectional... what is it ? Okie.. some communication protocols like i2C are bidirectional,

A word on Software Defined Radios (SDR)

Software Defined Radio (SDR ), resembles the techniques for creating software blocks of functional radio for reception/transmission. The concept extends from plain AM/ FM to Wi-Max/LTE radio transceivers and beyond. In other words, software defined radio (SDR) is defined as a radio in which the digitization is performed at some stage downstream from the antenna. Then the radio can use flexible and reconfigurable functional blocks for the implementation of digital signal processing algorithms. As technology advances, the digitization might be at, or very close to the antenna, such that almost all the radio functionalities are realized using software using high speed and reprogrammable digital signal processing engine             The old age radios had everything, from RF tuner to A/V detection in complete anlog domain with limited controls based on some varying resistance or impedance. The current radios consist of a mixture of analog and digital building blocks. The radio freq

Glow/Dim an LED using Rasp Pi

Image
This is an introduction to PWM generation with Raspberry pi using Python. We all love blinking LEDs. Setting the GPIO pins  high or low to lit or off LED seems so simple. But creating a dim/glow LED requires a little bit info about PWM generation.Simply PWM is all about varying the percentage of duty cycle of a square wave. Duty cycle means the diff between ON time and OFF time in one cycle of a wave. Duty cycle refers to the actual work done time in a single cycle, which is the ON time. We can say a DC signal is '100% ON time wave or has 100% duty-cycle. Paradox : DC signal has 0% OFF time, so we can't call it a wave ... :) Okey... lets start.. Raspberry has particular numbers of GPIO pins which could be used for this experiment. And we would use python to code with...So let us first write the program and discuss the logic... Assuming you are working through SSH to conect to your Pi. And no GUI is available...Login to R pi.. and assuming home folder as working d