顯示具有 Arduino 標籤的文章。 顯示所有文章
顯示具有 Arduino 標籤的文章。 顯示所有文章

2010年8月8日 星期日

EMG Signals Drive Servo



This simple project is what I really want to do before. I used Biopac system to amplify my EMG signals and acquired these signals by NI USB-6009.

Originally, I want to use serial communication to send the control signals to arduino, but I don't know how to send the unsigned long integer in labview instead of string. As the result of that, I used USB-6009 to generate analog output to arduino.


Every hardware thing is ready, next is to write the program. As I mentioned before, I used labview to acquire EMG signals, so I just acquired the signals, calculated by RMS, and transformed the number into the range 0-5 to have the USB-6009 generate analog output voltage between 0 and 5.


The arduino program is also very simple. It just uses analogInput to receive the voltage from USB-6009 and controls the servo by the voltage value.


However, as you can see, the control is not good. I think this is the key point that I need to establish a good control strategy in the future.

2010年7月2日 星期五

Arduino + Processing



I made it to control my robotic arm originally. However, it's bad looking, so I used wii nunckuk instead.

Yesterday, I was thinking how I can do to simply model hand motion and display in computer screen. I am not good at 3D painting, so I used RGB cube that I saw some people used it to demonstrate some programs. You can also find the processing code from the above link.





In this simple project, I used two potentiometers to control two axises. I am sorry that I don't have any idea to use the flex sensor, but I pasted it before, so I did not take it out.







Here is the code in arduino board:

int val_1;  //flex sensor
int val_2;  //middle potentiometer
int val_3;  //bottom potentiometer

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

void loop()
{
  val_1=analogRead(0);
  val_2=analogRead(1);
  val_3=analogRead(2);
 
  val_2=map(val_2,340,1023,0,360);
  val_3=map(val_3,0,1023,640,0);
 
  To2bytes(val_2);
  To2bytes(val_3);
 
  /*
  Serial.print(val_1);
  Serial.print("\t");
  Serial.print(val_2);
  Serial.print("\t");
  Serial.println(val_3);
  */
  delay(200);
}

void To2bytes(unsigned int inX){
  byte H_Byte;
  byte L_Byte;
 // int a=B01111111
  H_Byte=inX>>8; 
  L_Byte=(inX%256);
  Serial.print(H_Byte,BYTE);
  Serial.print(L_Byte,BYTE);
}


And I only add some codes in RGB cube code.
In void setup


println(Serial.list());// List all the available serial ports
  myPort = new Serial(this, Serial.list()[1], 9600);
 
  //You have to import serial class before.
  //import processing.serial.*;
  //Serial myPort;  // The serial port


In void draw()


int[] inByte = new int[4];
  while (myPort.available() == 4) { 
    inByte[0]= myPort.read();
    inByte[1]= myPort.read();
    inByte[2]= myPort.read();
    inByte[3]= myPort.read();
    inY=(inByte[0]<<8)+inByte[1];
    inX=(inByte[2]<<8)+inByte[3];
     print("X" +inX);
     print("\t");
     println("Y" +inY);
  }


2010年6月1日 星期二

Control a Servo by a Mouse via python and arduino

After I watched this interesting movie, I tried to do it by using python. However, I am a novel of python and arduino, so I spent lots of time to find the reference.



In python, I need:
1. win32gui module: to get the mouse position
2. pySerial module: to send the data to arduino


Here is my python code


import win32gui
import time
import serial

ser = serial.Serial(4)

while (True):
x,y = win32gui.GetCursorPos()
time.sleep(0.2)
pos=int(179*x/1599)
ser.write(chr(pos))
print x,y



And my code in arduino


#include

Servo myservo;
int val;

void setup(){
myservo.attach(9);
Serial.begin(9600);
}

void loop(){
if(Serial.available()){
val=Serial.read();
myservo.write(val);
delay(15);
}
}

An Electrogoniometer Controls a Servo Motor

I think that it is my final project(or called game) before my TOEFL test. The concept is very simple. The arduino reads the voltage of an electrogoniometer and sends the analog signals to servo. However, the voltage of the electrogoniometer is unstable, so you can see the servo motor is shaking. No wander when I used the electrogoniometer for my research, I needed to smooth the data.

Wii motion plus + Arduino

My wii nunchuk adapter comes today, I can wait testing it in wii motion plus. (Not nunchuk)Here is the movie. (I know the resolution is worst!!)



I have to great thank the amazing guy who decodes the wii motion plus and I use the code in arduino directly. Here is his blog: http://randomhacksofboredom.blogspot.com/2009/06/wii-motion-plus-arduino-love.html. What I only need to do is to connect the wires between the wii adapter and arduino.











Robotic arm controlled by wii nunchuk

Recently, I was doing my robotic arm by using corrugated because I did not receieve any education of mechanism and I do not have other materials such as plastic, acrylic or stainless to build it.




My girlfriend, Jean, helped me redesigning and improving some structures, so now it is more solid than before.( The movie I posted yesterday. See What the hell is this??!!)


The code of wii nunchuk I used from here. I think it is easy to find the code of wii nunchuk from some smart guys. A guy drawed this picture about the pins of wii motion plus and it is the same with wii nunchuk. I added some commands to control servo.


| 1 2 3 |
|       |
| 6 5 4 |
|_-----_|
1 - green - data
2 - nothing
3 - red - 3.3+v
4 - yellow - clock
5 - nothing
6 - white - ground


By the way, this time I asked my girlfriend to demonstate this movie because my hand hairs are so many that once time my mother asked me why my hand is so dirty without wearing her glasses. = =""

What the hell is this??!!

Is there anyone who can tell what is it?? If you can, you must be a very smart guy or you must know me very well.




I wanted to build a robotic arm in the beginning. But now it looks a little bit like the dinosaur which can move automatically in the museum. = =''

New robotic arm controlled by wii nunchuk

Continue by the Robotic arm controlled by wii nunchuk. I changed the material corrugated to acrylic, so it must be more consolidated. Also, I saw some videos on the youtube about grippers and tried to design my Robot Gripper.