duminică, 4 ianuarie 2015

Robo 2oI5


The PCB...
Isn't perfect, but it my first pcb made with photoresist method
 


PCB photoresist method


 

 

 

I tested my new box for the production of PCB (printed circuit board)
I used photo-resistive laminates (http://www.bungard.de)






My exposure box (unfinished)
I used a homemade arduino.
It has a menu for setting exposure time and a Start button


luni, 1 decembrie 2014

Double Arduino with Motor driver


 



Gcode for CNC:

(Generated bottom outlines, bottom drill, )
(Unit of measure: mm)
(Metric Mode)
G21
(Absolute Coordinates)
G90
G00 X0.0000 Y0.0000
M03
G04 P3.000000
G00 Z4.0000
G00 X-56.8232 Y19.5310
G01 Z-0.3000 F127.00
G01 X-56.3610 Y19.9932 F254.00
G01 X-56.3610 Y20.6468
G01 X-56.8232 Y21.1090
G01 X-57.4847 Y21.1090
G01 X-57.7044 Y21.2358
G01 X-58.0987 Y21.6302
G01 X-58.3141 Y21.8456
G01 X-59.7959 Y21.8456
G01 X-60.4668 Y21.1746 


[...]

G82 X-6.3500 Y55.9200
G00 Z12.7000
M05
M02


vineri, 19 iulie 2013

my graduation project





No! I have not disappeared! I worked on the graduation project. Watch the video!

Thanks to all my teachers!

I'll come back soon with new examples

luni, 25 februarie 2013

Arduino i2c - Testing an Automatic Control System





2 Arduino connected through i2c
Slave Arduino reads data from phototransistor and send them to Arduino Master
This change PWM command so that the engine has run 4 rotations per second as set.

duminică, 6 ianuarie 2013

C# communicate with Arduino Part.3




I made a C # application to control two servos via USB with Arduino.




When you pull the slider bar, the value is sent to the Arduino, which represent the positions of the servo.
Each servo has his own bar.






 
C# code :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
using System.Threading;

namespace SERIAL_ANALOG_WRITE
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void bara1_ValueChanged(object sender, EventArgs e)
        {
            val_bara1.Text = Convert.ToString(bara1.Value);
            transmite1();
        }





        

[... do you want the rest of the code???? ...]



        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (serialPort1.IsOpen) serialPort1.Close();
        }
    }
}


Arduino code :


#include <Servo.h> 
int v, v1, v2, v3, v4;
Servo servo1;
Servo servo2;

void setup()
{
   servo1.attach(9);
   servo2.attach(10);
   Serial.begin(9600);
}

void loop()
{
  if (Serial.available()>0)
  {

[... bla-bla-bla...]

  }
  
  delay(10);
}


C# communicate with Arduino Part.2





I tried to command a servo, via usb, from C # application to an Arduino.



When you pull the slider bar, the value is sent to the Arduino, which represent the positions of the servo.




C# code:

using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace SERIAL_ANALOG_WRITE
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void bara_ValueChanged(object sender, EventArgs e)
        {
           

[ do you want the rest of the code???? ]


        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (serialPort1.IsOpen) serialPort1.Close();
        }
    }
}

 

luni, 31 decembrie 2012

Happy New Year!!!



My present project, C# interfacing with Arduino





Bidirectional serial communication between C # and Arduino.
Analog and digital communication, both at the same time.
I built the PCB around ATMEGA8.
I used a 16x2 LCD to check sent / received data.

I/O:

2 digital outputs (2 LEDs),
1 PWM output (1 DC motor),
2 digital inputs (2 switches),
2 analog inputs (1 potentiometer and 1 phototransistor).









 

Watch video:

C# communicate with Arduino Part.1


I tried a simple demonstration of communication, via usb, between C # and Arduino.



We have 3 buttons that help turn on / off 3 LED.

  
 The first push of the green button turns ON green LED, the second push of the green buttonturns OFF green LED. Is the same for the rest of the buttons.

 


C# code: 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace SERIAL_DIGITAL_WRITE
{
    public partial class Form1 : Form
    {
        int green=0;
        int blue=0;
        int red=0;
      
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
          
            serialPort1.Open();
            if (green==0)
            {
                serialPort1.Write("1");
                green = 1;
            }
            else if (green == 1)
            {
                serialPort1.Write("2");
                green = 0;
            }
            serialPort1.Close();

        }

        private void button2_Click(object sender, EventArgs e)
        {

            serialPort1.Open();
            if (blue == 0)
            {
                serialPort1.Write("3");
                blue = 1;
            }
            else if (blue == 1)
            {
                serialPort1.Write("4");
                blue = 0;
            }
            serialPort1.Close();

        }

        private void button3_Click(object sender, EventArgs e)
        {

            serialPort1.Open();
            if (red == 0)
            {
                serialPort1.Write("5");
                red = 1;
            }
            else if (red == 1)
            {
                serialPort1.Write("6");
                red = 0;
            }
            serialPort1.Close();

        }

    }
}




Arduino code:

///----------------------------------------///
///         by gabimincu 31.12.2012        ///
///       testing serial digital write     ///
///           gabimincu@gmail.com          ///
///        www.robot-fun.blogspot.com      ///
///----------------------------------------///

int green = 4; // using pin 4 for the GREEN LED
int blue = 3; // using pin 4 for the BLUE LED
int red = 2; // using pin 4 for the RED LED
int i;
int data = 222;

void setup()
{
  Serial.begin(9600); // Opens serial port, sets data rate to 9600 bps
  pinMode(green, OUTPUT); // sets pin as output for green led
  pinMode(blue, OUTPUT); // sets pin as output for blue led
  pinMode(red, OUTPUT); // sets pin as output for red led

  for (i=0;i<5;i++)  // it shows that programs works
  {
    digitalWrite(green,HIGH);
    delay(44);
    digitalWrite(blue,HIGH);
    delay(44);
    digitalWrite(red,HIGH);
    delay(44);
    digitalWrite(green,LOW);
    delay(44);
    digitalWrite(blue,LOW);
    delay(44);
    digitalWrite(red,LOW);
    delay(44);
  }
   
}

void loop()
{
  if (Serial.available() > 0)
  {
    data=Serial.read();
    switch(data)
    {
      case '1':
      digitalWrite(green, HIGH);   // set the GREEN LED on
      break;

      case '2':
      digitalWrite(green,LOW);   // set the GREEN LED off
      break;
     
      case '3':
      digitalWrite(blue, HIGH);   // set the BLUE LED on
      break;

      case '4':
      digitalWrite(blue,LOW);   // set the BLUE LED off
      break;
           
      case '5':
      digitalWrite(red, HIGH);   // set the RED LED on
      break;

      case '6':
      digitalWrite(red,LOW);   // set the RED LED off
      break;
    }
  }
}


Next time I will try to illustrate analog read from C# application.

sâmbătă, 29 decembrie 2012

my remixed robot


 
Video part 1, with original Arduino.



Video part 2, with my homemade Arduino clone.

sâmbătă, 12 mai 2012

Ultrasound Measurement Device - part.1


Work in progress...

The objective of this work is to design and manufacture a machine to measure distances using an ultrasonic sensor. Because sound speed variation with temperature, will be implemented and a temperature sensor, which will increase measurement accuracy.

The schematics:
The PCB:



The components:
IC1 – ATMEGA8,
IC2 – LM7805,
D1 – 1N4004,
C6,C7 – 47uF,
C2,C3 – 22pF,
C1,C4,C5,C8,C9,C12 – 100nF,
R1,R4 – 10K,
R2 – 330R,
R3 – 220R,
R7 – 1K,
Trimmer 10K,
Q1 – 16MHz,
L1,L2 – Led,

 Code i used for testing:

///----------------------------------------///
///         by gabimincu 10.05.2012        ///
///  masurarea distantelor cu ultrasunete  ///
///           gabimincu@gmail.com          ///
///        www.robot-fun.blogspot.com      ///
///----------------------------------------///

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int pingPin = 7;               // pin trig senzor
const int inPin = 9;                 // pin echo senzor
int t=0;
int i;
float tempc = 0,temp;                     //variabile temperatura
int d;                        
float durata,cm;                     //variabile distanta

void setup()
{
  Serial.begin(9600);
  lcd.begin(16, 2);
  pinMode(8,INPUT);
}

void loop()
{  
  afisare();






Do you want the rest of the code?

}





Next step: construction of box