SI1143 Gesture Sensor
.
The Parallax SI1143 Gesture Sensor is a low-power, reflectance-based, infrared proximity, and ambient light sensor with I2C digital interface and programmable-event interrupt output.
Hello World!
Import program
00001 #include "mbed.h" 00002 #include "SI1143.h" 00003 00004 SI1143 sensor(p28, p27); 00005 00006 DigitalOut led1(LED1); 00007 DigitalOut led2(LED2); 00008 DigitalOut led3(LED3); 00009 00010 int main() 00011 { 00012 int sense1,sense2,sense3; 00013 00014 // Setup the baseline 00015 sensor.bias(1,5); 00016 wait(1); 00017 00018 while(1) 00019 { 00020 // Read each led sensor 00021 sense1 = sensor.get_ps1(1); 00022 sense2 = sensor.get_ps2(1); 00023 sense3 = sensor.get_ps3(1); 00024 00025 // Can be changed for different sensitivity 00026 if (sense1 > 80 || sense2 > 80 || sense3 > 80) 00027 { 00028 if (sense1 > sense2 && sense1 > sense3) 00029 { 00030 led1=1; 00031 led2=0; 00032 led3=0; 00033 } 00034 00035 else if(sense2 > sense1 && sense2 > sense3) 00036 { 00037 led1=0; 00038 led2=1; 00039 led3=0; 00040 } 00041 00042 else if(sense3 > sense1 && sense3 > sense2) 00043 { 00044 led1=0; 00045 led2=0; 00046 led3=1; 00047 } 00048 } 00049 00050 else 00051 { 00052 led1=0; 00053 led2=0; 00054 led3=0; 00055 } 00056 00057 //Numeriacl output through terminal 00058 printf("%d-%d-%d\r\n",sense1,sense2,sense3); 00059 } 00060 }
This program will check to see where an object is and light up an led on the mbed. Led1 corresponds to the bottom left, led2 corresponds to the top, and led3 corresponds to the bottom right.
Library
Import librarySI1143
Starting library to get the SI1143 Gesture Sensor to work. Currently only works in forced conversion mode.
Wiring
SI1143 pins | mbed pins |
---|---|
GND | 0V |
VIN | 3.3V |
INT | not connected |
SCL | p27, via 4.7k resistor to VIN |
SDA | p28, via 4.7k resistor to VIN |
API
Import library
Public Member Functions |
|
SI1143 (PinName sda, PinName scl) | |
Constructor.
|
|
void | restart (void) |
Restarts the device.
|
|
void | bias (int ready, int repeat) |
Creates a baseline for sampling measurements.
|
|
int | get_ps1 (int repeat) |
Takes a number of samples from the proximity of led1 and returns a raw output.
|
|
int | get_ps2 (int repeat) |
Takes a number of samples from the proximity of led2 and returns a raw output.
|
|
int | get_ps3 (int repeat) |
Takes a number of samples from the proximity of led3 and returns a raw output.
|
|
int | get_vis (int repeat) |
Takes a number of samples for ambient light on device and returns a raw output.
|
|
int | get_ir (int repeat) |
Takes a number of samples for infrared light on device and returns a raw output.
|
Reference
Please log in to post comments.