SKU:SEN0158 (https://www.dfrobot.com/product-1088.html)


(https://www.dfrobot.com/product-1088.html).

DFRobot SEN0158 Gravity IR Positioning Camera 0

Selelekela

This camera is a small form positioning IR camera, which could track 4 IR objects at the same time. The applications are various and ranges from tracking robots with IR transmitters for navigation to light barriers, or determining an objects direction.

Additionally, it can also function as a flame sensor, which could track heat sources and a flames position.

The sensor is easy to install and to connect. All you need is just four wires, two for power supply and two for I2C.

Tlhaloso
  • Power consumption requirements: 3.3V/44mA, 5V/48mA
  • Detecting distance: 0~3m
  • Communication protocol: 12C
  • Horizontal detecting angle: 33 degrees
  • Vertical detecting angel: 23 degrees
  • Resolution is 128×96 pixel, with hardware image processing, which can track four objects (IR emitting or reflecting objects)
  • Dimensions: 32 x 16 (cylinder shape)
Pinout
  • Red – VCC+
  • Yellow – SDA
  • Green – SCL
  • Lefifi - GND
Setšoantšo sa Khokahano

DFRobot SEN0158 Gravity IR Positioning Camera 1

SampKhoutu
Taelo

Once the camera detects a signal, it will display its coordinates on the first position. And others will be empty(returns 1023,1023). If the camera detects several objects, it will arrange them according to the detecting order. If one of them is out of the view, that position will be empty(return 1023,1023). It can only support tracking 4 objects at the same time.

Khoutu ea Arduino

// Wii Remote IR sensor test sample code by kako http://www.kako.com
// modified output for Wii-BlobTrack program by RobotFreak http://www.letsmakerobots.com
// modified for https://dfrobot.com by Lumi, Jan. 2014

# kenyeletsa

int IRsensorAddress = 0xB0;
//int IRsensorAddress = 0x58;
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 dl, byte d2)

{

Wire.beginTransmission(slaveAddress);
Wire.write(dl); Wire.write(d2);
Wire.endTransmission();

}

void setup()

{

slaveAddress = IRsensorAddress >> 1; // This results in 0x21 as the address to p
Serial.qala(19200);
pinMode(ledPin, OUTPUT); // Set the LED pin as output
Mohala.qala();
// 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);
tieho(100);

}
void loop()
{

ledState = !ledState;
if (ledState) { digitalWrite(ledPin,HIGH); } else { digitalWrite(ledPin,LOW); }
//IR sensor read
Wire.beginTransmission(slaveAddress);
Wire.write(0x36);
Wire.endTransmission();

Wire.requestFrom(slaveAddress, 16); // Request the 2 byte heading (MSB come
for (i=0;i<16;i++) { data_buf[i]=0; }
ke=0;
while(Wire.available() && i < 16) {
data_buf[i] = Wire.read();
ke++;

}

Ix[0] = data_buf[1];
Iy[0] = data_buf[2];
s = data_buf[3];
Ix[0] += (s & 0x30) «4;
Iy[0] += (s & 0xC0) «2;

Ix[1] = data_buf[4];
Iy[1] = data_buf[5];
s = data_buf[6];
Ix[1] += (s & 0x30) «4;
Iy[1] += (s & 0xC0) «2;

Ix[2] = data_buf[7];
Iy[2] = data_buf[8];
s = data_buf[9];
Ix[2] += (s & 0x30) «4;
Iy[2] += (s & 0xC0) «2;

Ix[3] = data_buf[10];
Iy[3] = data_buf[11];
s = data_buf[12];
Ix[3] += (s & 0x30) <<4;
Iy[3] += (s & 0xC0) «2;

for(i=0; i<4; 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<3)
Serial.print(“,”);

}

Serial.println(“”);
tieho(15);

}

Processing Code

// Example by Tom Igoe
// Modified for https://www.dfrobot.com by Lumi, Jan. 2014

/*
This code should show one colored blob for each detected IR source (max four) at th
*/

import process.serial.*;

int if = 10; // Linefeed in ASCII
String myString = null;
Serial myPort; // The serial port

ho seta letho () {
// List all the available serial ports
println(Serial.list());
// Open the port you are using at the rate you want:
myPort = new Serial(this, Serial.list()[0], 19200);
myPort.clear();
// Throw out the first reading, in case we started reading
// in the middle of a string from the sender.
myString = myPort.readStringUntil(lf);
myString = null;
size(800,800);
//frameRate(30);
}

void draw() {
background(77);
//while (myPort.available() > 0) {
myString = myPort.readStringUntil(lf);
if (myString != null) {
int[] output = int (split(myString, ‘,I)),

println(myString); // display the incoming string

int xx = output[0];
int yy = output[1];

int ww = output[2];
int zz = output[3];

int xxx = output[4];
int yyy = output[5];

int www = output[6];
int zzz = output[7];

ellipseMode(RADIUS); // Set ellipseMode to RADIUS
fill(255, 0, 0); // Set fill to white

ellipse(xx, yy, 20, 20);
ellipseMode(RADIUS); // Set ellipseMode to RADIUS
fill(0, 255, 0); // Set fill to white
ellipse(ww, zz, 20, 20);

ellipseMode(RADIUS); // Set ellipseMode to RADIUS
fill(0, 0, 255); // Set fill to white
ellipse(xxx, yyy, 20, 20);
ellipseMode(RADIUS); // Set ellipseMode to RADIUS
fill(255); // Set fill to white
ellipse(www, zzz, 20, 20);

}

}

LBH
Q&A Some general Arduino Problems/FAQ/Tips
Q What is the thread size on the SEN0158 part?
A It is M18.
Q In the manual, it mentions that the horizontal detecting angle is 33 degrees, Q while the vertical detecting angle is 23 degrees. How do I differentiate which is horizontal and which is vertical?
A Please read more here, Wiimote/Pointing > Finding the Sensor Bar (http://wiibrew.org/wiki/Wiimote/Pointing).

For any questions/advice/cool ideas to share, please visit DFRobot Forum
(https://www.dfrobot.com/forum/).

Litokomane tse ling

Litokomane / Lisebelisoa

DFRobot SEN0158 Gravity IR Positioning Camera [pdf] Bukana ea Mosebelisi
A700000013081448, SEN0158 Gravity IR Positioning Camera, SEN0158, Gravity IR Positioning Camera, IR Positioning Camera, Positioning Camera, Camera

Litšupiso

Tlohela maikutlo

Aterese ea hau ea lengolo-tsoibila e ke ke ea phatlalatsoa. Libaka tse hlokahalang li tšoailoe *