Showing posts sorted by date for query arduino-37-sensor. Sort by relevance Show all posts
Showing posts sorted by date for query arduino-37-sensor. Sort by relevance Show all posts

Thursday, 16 April 2015

VB6.0 DAN DELPHI :: Koneksi Arduino Dengan Visual Basic 6.0 dan Delphi

Visual Basic merupakan turunan bahasa pemrograman BASIC dan menawarkan pengembangan perangkat lunak komputer berbasis grafik dengan cepat. lebih lengkapnya baca disini
dengan VB berikut ini contoh potongan programnya.
  1. Program sensor suhu untuk input dari VB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// deklarasi variabel
float tempC;
int tempPin = 0;
void setup()
{
 // buka serial port, set baud rate 9600 bps
 Serial.begin(9600);
}
void loop()
{
 // baca data dari sensor
 tempC = analogRead(tempPin);
 // konversi analog ke suhu
 tempC = (5.0 * tempC * 100.0)/1024.0;
 // kirim data via serial berupa nilai biner
 Serial.print((int)tempC,BYTE);
 // tarik nafas sejenak
 delay(1000);
}
  1. Buat sebuah form pada VB6 dan salin program sebagai berikut
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; white-space: normal;">
<pre class="brush:vb"><pre class="brush:vb"><pre class="brush:vb">Private Sub Form_Load()
  With MSComm1
    'non aktifkan dulu serial port
    If .PortOpen Then .PortOpen = False
    'set serial port yang ingin digunakan
    .CommPort = 3
    'set baud rate,parity,databits,stopbits
    .Settings = "9600,N,8,1"
    'set DTR and RTS
    .DTREnable = True
    .RTSEnable = True
    'aktifkan event oncomm event
    .RThreshold = 1
    'non aktifkan event oncomm
    .SThreshold = 0
    'aktifkan serial port
    .PortOpen = True
  End With 'MSComm1
  'tampilkan tanda derajat
  Label2.Caption = Chr(176) + "C"
End Sub
Private Sub MSComm1_OnComm()
  Dim strInput As String
  With MSComm1
    'test event data masuk
    Select Case .CommEvent
      Case comEvReceive
        'tampilkan data dari Arduino
        strInput = .Input
        Label1.Caption = Asc(Mid(strInput, 1, 1))
    End Select
  End With 'MSComm1
End Sub</pre>
</pre>
</pre>
<p> </p>
<p></p></span>



Monday, 23 February 2015

HARDWARE :: sensor api pengganti UVtron dan Thermal array


 
UVtron, Thermal Array, IR camera
yaitu pake remotenya nintendo wii.
  

remote wiimote dari nintendo
sensor api paket hemat dari remote wii ini rupanya cuman setengah harga dari UVtron+driver loh (kalo pake harga batam).
  
 
pada bagian depan dari remote ini memiliki kamera infra merah dengan spesifikasi berikut:
1. kamera resolusi 1024×768
2. Up to 4 blob (cahaya IR terang melebihi thresholdnya)
3. 100 proses gambar perdetik
3. interfacing i2c
4. output i2c berupa koordinat dari 4 blob tersebut.
wiring cameranya:
Jika menggunakan crystal quartz (4kaki) :
 
jika menggunakan crystal resonator (2kaki) perhatikan yang didalam kotak ya
 
bentuk jadinya
    
yang keren dari internet, yang tengah / yang jelek itu punya saya
cuman lum dilanjutkan, timahnya habis trus resistor ma capasitor ada dibawah pcb :p
setelah itu tinggal dihubungkan ke arduino dan pasang kaca hitam bawaannya.
jika ingin pakai library arduinonya download PVision.zip  ubah ke ZIP ya
tapi jika gak mau pakai library, ini contoh akses IR kamera nya:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
// Wii Remote IR sensor  test sample code  by kako
// modified output for Wii-BlobTrack program by RobotFreak
 
#include
 
int IRsensorAddress = 0xB0;
int slaveAddress;
int ledPin = 13;
boolean ledState = false;
byte data_buf[16];
int i;
 
int Ix[4];
int Iy[4];
int s;
 
void Write_2bytes(byte d1, byte d2)
{
    Wire.beginTransmission(slaveAddress);
    Wire.send(d1); Wire.send(d2);
    Wire.endTransmission();
}
 
void setup()
{
    slaveAddress = IRsensorAddress >> 1;   // This results in 0x21 as the address to pass to TWI
    Serial.begin(38400);
    pinMode(ledPin, OUTPUT);      // Set the LED pin as output
    Wire.begin();
    // IR sensor initialize
    Write_2bytes(0x30,0x01); delay(10);
    Write_2bytes(0x30,0x08); delay(10);
    Write_2bytes(0x06,0x90); delay(10);
    Write_2bytes(0x08,0xC0); delay(10);
    Write_2bytes(0x1A,0x40); delay(10);
    Write_2bytes(0x33,0x33); delay(10);
    delay(100);
}
void loop()
{
    ledState = !ledState;
    if (ledState) { digitalWrite(ledPin,HIGH); } else { digitalWrite(ledPin,LOW); }
 
    //IR sensor read
    Wire.beginTransmission(slaveAddress);
    Wire.send(0x36);
    Wire.endTransmission();
 
    Wire.requestFrom(slaveAddress, 16);        // Request the 2 byte heading (MSB comes first)
    for (i=0;i    i=0;
    while(Wire.available() && i < 16) {
        data_buf[i] = Wire.receive();
        i++;
    }
 
    Ix[0] = data_buf[1];
    Iy[0] = data_buf[2];
    s   = data_buf[3];
    Ix[0] += (s & 0x30) <    Iy[0] += (s & 0xC0) <
    Ix[1] = data_buf[4];
    Iy[1] = data_buf[5];
    s   = data_buf[6];
    Ix[1] += (s & 0x30) <    Iy[1] += (s & 0xC0) <
    Ix[2] = data_buf[7];
    Iy[2] = data_buf[8];
    s   = data_buf[9];
    Ix[2] += (s & 0x30) <    Iy[2] += (s & 0xC0) <
    Ix[3] = data_buf[10];
    Iy[3] = data_buf[11];
    s   = data_buf[12];
    Ix[3] += (s & 0x30) <    Iy[3] += (s & 0xC0) <
    for(i=0; i    {
      if (Ix[i] < 1000)
        Serial.print(" ");
      if (Ix[i] < 100)
        Serial.print(" ");
      if (Ix[i] < 10)
        Serial.print(" ");
      Serial.print( int(Ix[i]) );
      Serial.print(",");
      if (Iy[i] < 1000)
        Serial.print(" ");
      if (Iy[i] < 100)
        Serial.print(" ");
      if (Iy[i] < 10)
        Serial.print(" ");
      Serial.print( int(Iy[i]) );
      if (i        Serial.print(",");
    }
    Serial.println("");
    delay(3);
}
sumber:
https://handritoar.wordpress.com/2011/11/28/sensor-api-paket-hemat-tapi-efisien/
.