Sunday, December 11, 2011

Observer Alpha

So I was finally able to build my first driving robot.  

  

It's still an Alpha version so it has no special functions but in future I would like add more sensors and maybe even a digital camera that will record what's going on around. Since this is just first release I won't put here any code or tutorial but I will be updating this post. 

Monday, November 21, 2011

Servo etcher

Since I like to fabricate my own PCB’s, it’s obvious that I etch a lot. For that purpose I’m using old CD container.


Thing that I hate is that the whole process is slow and ineffective. Thus I’ve decided to use one of the servo’s that was lying around. I’ve hot glued servo to the plastic cover of CD container. All I needed then was to program an Arduino, so it could change speed of servo with a values that comes of a potentiomer.
(Code I'm using is "Knob" from Arduino IDE Servo library) 



Sunday, October 30, 2011

Evil Pumpkin

I'm from Europe and we’re not celebrating Halloween, but I always wanted to carve a pumpkin.

So I’ve bought one and I carved it. At first I thought that a simple candle inside would be enough, but then I decided to go with arduino, LED, speaker and distance sensor. I’ve used my Nano, and for sensor I used my IR sensor. Here’s the video and code.


code:
int IRSense = A0;
int IRTrans = 2;
int Flick = 10;
int valueAmbient = 0;

void setup() {
 pinMode(IRSense, INPUT);
 pinMode(IRTrans, OUTPUT);
 digitalWrite(IRTrans,LOW);
}

void ambient()
{
 digitalWrite(IRTrans,HIGH);
 delay(20); 
 valueAmbient = analogRead(IRSense);
 delay(20);
}

void loop() 
{
 ambient();
 digitalWrite(IRTrans,LOW);
 delay(20);
 int value = analogRead(IRSense);
 int value2 = round(value - valueAmbient);
 int dist = (((value2+15.0)/(value2*(value2+100.0)))*2000.0);
 if(dist<20) 
  {
   analogWrite(Flick,random(0,256));
   tone(8, 38);
  }
 else
  {
   analogWrite(Flick,0);
   noTone(8);
  } 

Sunday, October 16, 2011

Arduino wireless sketch uploading via Bluetooth

Few months ago I’ve showed you my Bluetooth Xbee module. Back then I was able to send some commands through it to Arduino. But I wasn’t able to upload code wirelessly. 


I’ve been trying to solve this problem and I was successful. I found out that the issue is resetting the board. Since with this setup I’m not using USB connection I can’t use DTR pin on FTDI chip. So the trick to hold a reset button press upload and when information about size pops up just wait second or two and release the reset button. Right now I’m working on some sort of method (software or hardware) to make it automatic. I also found out that the baud rate of Bluetooth module and com port on your PC must be same as the uploading speed of the board you are using. For instance I’ve been using Arduino Duemilanove for this demonstration. Its upload speed is 57600. So I had to change baud rates of Bluetooth module and com port to 57600 as well. If you’re using laptop with a Bluetooth or pc with some USB Bluetooth module you need to buy only one module for your Arduino. You don’t even need to buy Xbee shield, because this particular one works if you connect just TX,RX,3v3 and GND pins. I was trying to use it with standalone Atmega8 but for some reason it didn’t worked so I’m also working on that. If you’re trying to achieve same thing and you’re having some issues with setup or whatever just contact me. And don’t forget to watch the video.

Thursday, September 29, 2011

LM335 + Arduino temperature sensor

Few weeks ago I’ve bought a LCD 16x2 display. I wanted to create a room temperature sensor. 


I’ve been using pocket arduino and there’s been some issues with resetting. I had to burn bootloader once again, so it took me longer to make this post. Also I’ve picked LM35 for this project (cool but expensive), but I’ve burned it. So I was forced to go with LM335 (not that cool but cheap). You can download code and watch video below. 

Code : 

#include <LiquidCrystal.h>
float raw;
float temperature;
LiquidCrystal lcd(3, 4, 5, 6, 7, 8);
byte degree[8] = 
{
B01100,
B10010,
B10010,
B01100,
B00000,
B00000,
B00000,
B00000
};

void setup()
{
  lcd.begin(16, 2);
  lcd.print("Temperature :");
  lcd.createChar(0, degree); 
  lcd.setCursor(7,1);
  lcd.write(0);
  lcd.setCursor(8,1);
  lcd.print("C"); 
}

void loop()
{
 raw = analogRead(0);
 temperature = ((raw*480.0/1024.0)-273); 
 lcd.setCursor(1,1);
 lcd.print(temperature);
 delay(500);
}



Sunday, September 18, 2011

Sound/noise sensor for Arduino

For quite some time I’ve been looking for some sort of sound or noise sensor. I had some electrolytic microphones lying around, so the only problem was amplifier. 



Well you can choose either some IC or some simple transistor ones. At first I’ve tried LM386, but I found out that it’s not very good. The reason is that this IC is not meant to be used as a pre-amp. I’ve decided to use this single transistor setup with 2N3904. I’ve also bought big white board and drawn the circuit. It’s really cheap sound/noise detecting sensor and it work’s good.

Arduino code :

void setup()
{
 Serial.begin(9600); 
}

void loop()
{
 int minimum = 1024;
 int maximum = 0;
 for(int i=0;i<1000;i++)
 {
  int value = analogRead(A0); 
  minimum = min(minimum, value);
  maximum = max(maximum, value);
 }
 Serial.print("noise=");
 Serial.print(maximum-minimum);
 Serial.println(); 
}



Saturday, September 10, 2011

Pocket Arduino

Well, I have to admit that I’m little bit obsessed with Arduino clones. I always wanted to create my own pocket portable Arduino. 


I thought that Altiods tin would be perfect housing for such a project. I also had one ATmega328 laying around. There were few abilities I wanted my pocket Arduino to have. Since I wanted my Arduino to be pocket or let say portable there should be some sort of power source inside. I quickly chose 9V battery for that purpose, because arduino itself doesn’t have that big power consumption and there are still pins that I can use for other voltage input. Then I needed somehow to upload code to Arduino, so I needed some way to communicate between Arduino and PC. I chose one of that small USB to TTL converters. Keeping in mind that this Arduino has to be portable I’ve desoldered female USB type D connector that was there and replaced it with male USB connector. With this option I don’t need any USB cable, (maybe USB extender if you don’t have laptop) I can just plug the whole Altoids tin inside my PC. Another thing I wanted was small breadboard, because that’s the thing that makes Arduino portable. There were more things I wanted to have there, but even with these, it was really hard to close the tin after I've placed everything inside. But after all I’m really satisfied with the success. Arduino is fully operational, portable and still looks like mints case.




Friday, August 26, 2011

Soldering iron holder with fume extractor

As you’ve may already noticed, I’m soldering a lot and those fumes are bothering me.



Yes of course I have that big fume extractor but nearly half of time I’m working soldering iron is in the holder and fume extractor can’t reach fumes there so I’m slowly killing myself. So I’ve decided to implement small fume extractor to the holder. It’s 30mm fan 5V and 0,7W and its really strong for such small thing. There is also active carbon filter. Check out video and some pics.




Monday, August 22, 2011

Regulated Power Supply UPDATE

Finally I was able to find cheap panel voltage meter, which I can use for new version of my LM317 regulated voltage supply.


Few months ago I made LM317 voltage regulator, but it has no display to show you actual voltage. Only way how to determine actual voltage on old version is to make scale, but that is not reliable. So I’ve decided to take the old circuit put it into new project box and add this display. Now it finally looks like a power supply and I can be sure that I know what I’m getting on the output.


Thursday, August 4, 2011

Small Arduino using AtMega8

Few days ago I’ve bought Atmel Mega 8 chip and I’ve decided to create some sort of small Arduino.


I’ve got one Altoids Smalls can available so I wanted to create Arduino so small it could fit into the can. I’ve used just prefboard, but I think it’s great. All needed pins are accessible. After I’ve done soldering there was just one more thing to do: burn bootloader. There are several ways how to burn bootloader, easiest how to achieve that is with use of parallel port. However my PC don’t have one, so I’ve decided to program my Arduino Duemilanove as AVR programmer. If you chose this option be aware that it doesn’t have to work first time. I myself burned bootloader 3 or 4 times. After you have burned bootloader you need just one more thing and that is TTL to RS-232 adapter to be able to program the chip. I’ve used my XBEE-USB adapter which has got FTDI chip. I’ve got one more AtMega8 so I’ll probably create other Arduino it was kinda fun and I’ve spared some money.



Thursday, July 21, 2011

Walker 1.0.1

Hi there I've just made my first robot ! I'm still improving some things so I will be updading current progress


Thursday, July 7, 2011

Breadboard Power Supply

I’m using breadboards quiet often. When it comes to breadboards most tricky (at least for me) is power supply. 



Yes of course you can just use two cables, but I was looking for something smoother. On the internet you can find lot of versions of breadboard power supplies. Some of them can switch between 3.3V and 5V, but I’m not using 3.3 that often so I’ve decided to go with 5V and actual input voltage. You can see result at the pictures it works pretty well.



Sunday, June 12, 2011

Arduino communicating with PC via Bluetooth



I like arduino because it has almost limitless potential. One of few a things that I hate is that when you want to control the arduino it has to be connected directly to the PC via USB.


So I’ve decided to buy some hardware to make my arduino communicate with PC wirelessly. There are few options how to achieve that. You can either use Bluetooth or Wi-Fi. With Wi-Fi You’ll be using XBee radios. There are few versions of them and they the cost about 30 dollars. But you will also need an arduino XBee shield and XBee usb dongle. So the whole price is about 70 dollars if you’re lucky. Or you can use Bluetooth. There are few options. You can use BlueSMiRF which is pretty expensive or any other Bluetooth modem. I have used really cheap one from eBay. But this Bluetooth modem was in XBee form. So I’ve also bought arduino XBee shield. After you assemble it you have to move switch on a Bluetooth modem to AT position.

Next tricky thing is connecting arduino to PC. Your PC has to have some Bluetooth device that supports Bluetooth serial port communication. Then upload this sketch to arduino :


const int ledPin = 13;
int value;    


void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
}


void loop() {
  if (Serial.available() > 0) {
    value = Serial.read();
    if (value == 'H') {
      digitalWrite(ledPin, HIGH);
      Serial.println("ON");
    }
    if (value == 'L') {
      digitalWrite(ledPin, LOW);
      Serial.println("OFF");
    }
  }
}




Then unplug arduino from PC and put in 9V battery. Search for Bluetooth devices and you should find your device (mine is called WIDE_HK) select pair and then connect. Then just turn on some terminal app (puTTy, Arduino IDE….) connect it to serial port of your Bluetooth device and send it H to turn it ON or L to turn it OFF.

Video :

Wednesday, May 25, 2011

Illuminated Helping Hands

Hi there.
I'm using helping hands regulary. Most of the time I work at night and i hate when a I can't see what am I soldering. So I've decided to make an easy led light that can be added to regular helping hands.



Instructable here : http://www.instructables.com/id/Illuminated-Helping-Hands/






Friday, April 29, 2011

Self-Rechargeable Power Supply


Summer quickly approaches and sun is starting to shine really bright. I found some old 0,5W solar panels in my drawer. 


These panels are really good at full brightness you can get 6V and 80mA. So I’ve been thinking what I could possibly do with them. Recently I’ve been using arduino just for some small applications like reading an analog input of some sensor. While reading input arduino have small power consumption. So I’ve bought 4 AAA rechargeable batteries and put together a portable self rechargeable power source. Batteries have 900mAh capacity so they can be fully charged in 10-12 hours which is not the best time, but as I’ve mentioned arduino have small power consumption (if you’re not using motors or etc.). So this device can be actually useful and also you can buy stronger panel and 9V rechargeable battery.







Wednesday, April 20, 2011

Regulated Power Supply Update (testing my new Sony Cyber Shot DSC-WX7)



Hi there. I’ve got a Sony Cyber Shot DSC-WX7 for my birthday. It has stunning video, so I’ve decided to upload something. It’s an update to a Regulated Power Supply. I’ve added a scale showing how much voltage is currently going out.



Monday, March 28, 2011

Arduino IR Distance Sensor UPDATE


Recently I’ve been trying to make my IR distance sensor look like real sensor. I’ve created it from small piece of protoboard and male headers. It’s still just Beta I’ve had some issues with it, but now it seems that it works good. [Update 22 July 2012] I have added picture of circuit.



Sunday, March 13, 2011

Arduino IR distance sensor

For a long time I’ve been trying to create some sort of robot, to accomplish that I need a bunch of different sensors. One of the big problems for me was a distance sensor.


I’ve found PING ultrasonic sensor, but it’s almost impossible to get one in my county. So I’ve been looking for a cheap solution. I’ve decided to use 2x IR LEDs one receiver and one transmitter.  Transmitter transmits for human invisible IR light it bounces from the object and returns to the receiver. Receiver it’s hooked up to an analog pin on the arduino. At first I’ve made measurements and then I’ve made equation based on which  you can get distance in centimeters.




Code for Arduino :

int IRSense = A0;
int IRTrans = 2;
int valueAmbient = 0;

void setup()
{
pinMode(IRSense, INPUT);
pinMode(IRTrans, OUTPUT);
Serial.begin(9600);
digitalWrite(IRTrans,LOW);
}

void ambient()
{
digitalWrite(IRTrans,HIGH);
delay(20);
valueAmbient = analogRead(IRSense);
delay(20);
}

void loop()
{
ambient();
digitalWrite(IRTrans,LOW);
delay(20);
int value = analogRead(IRSense);
int value2 = round(value - valueAmbient);
int dist = (((value2+15.0)/(value2*(value2+100.0)))*2000.0);
Serial.print(dist);
Serial.print("cm.");
Serial.println("");
delay(20);
}


Code for Processing :

import processing.serial.*;
Serial Port;
String distance ="";
String data ="";
int index = 0;
PFont font;

void setup()
{
size(500,500); 
Port = new Serial(this, "COM3", 9600);
Port.bufferUntil('.');
font = loadFont("AgencyFB-Bold-200.vlw");
textFont(font, 200);
}

void draw()
{
background(0,0,0);
fill(200,0,0);
text(distance,50,300);
}

void serialEvent (Serial port)
{
data = port.readStringUntil('.');
data = data.substring(0, data.length() - 1);
distance = data;
}

Thursday, March 3, 2011

RGB Mixer

Hi there today I will show you project with which I’ll be attending a competition. I hope I’ll be choosed for a grand final. It’s a RGB mixer and it’s a toolkit for teaching how RGB color mixing works. So I hope you’ll like it. 

Monday, February 21, 2011

Portable Soldering Station 2



Few months ago I’ve started to create series of portable devices that should together make a portable soldering station. Now I present you Beta version of this. It’s stored in a box of candies. When you open the box inside you’ll find soldering iron with stand, solder, breadboard with power supply, fume extractor and parts container. This project is portable, however it uses 12V wall adapter but that’s perfect for me, because I’ll be using this project in the school. Remember it’s still a Beta version, I’m now looking for stronger Fan, desoldering pump and helping hands. So check out video and pictures and wait for full release.