character LCD module to I2C adapter http://mbed.org/users/okini3939/notebook/i2c-lcd-library/
Embed:
(wiki syntax)
Show/hide line numbers
Pixy2_Libray.cpp
00001 /* 00002 * mbed library for Pixy2 Camera 00003 * Copyright (c) 2019 Jordan DUCHÊNE 00004 */ 00005 00006 #include "mbed.h" 00007 #include "Pixy2_Library.h" 00008 00009 00010 00011 00012 Pixy2_Library::Pixy2_Library (PinName p_sda, PinName p_scl, int address) // Class Constructor 00013 { 00014 composant = new I2C(p_sda,p_scl); //sda, sc1 00015 composant ->frequency(100000); 00016 I2Caddress = address; 00017 } 00018 00019 00020 void Pixy2_Library::Pixy2_WhiteLED(bool STATE) // White LEDs BuiltIN ON/OFF methode 00021 { 00022 00023 unsigned char readdata[21]; 00024 unsigned char lampeON[6]= {0xae,0xc1,22,2,1,0}; 00025 unsigned char lampeOFF[6]= {0xae,0xc1,22,2,0,0}; 00026 if(STATE == true) { 00027 do { 00028 composant->write(I2Caddress,(char*)lampeON,6); 00029 composant->read(I2Caddress,(char*)readdata,10); 00030 wait(0.01); 00031 } while(readdata[0] != 175 && readdata[1] != 193); 00032 } else { 00033 do { 00034 composant->write(I2Caddress,(char*)lampeOFF,6); 00035 composant->read(I2Caddress,(char*)readdata,10); 00036 wait(0.01); 00037 } while(readdata[0] != 175 && readdata[1] != 193); 00038 } 00039 00040 } 00041 void Pixy2_Library::Pixy2_SetServo(int PAN, int TILT) // Head Servo Crontrol methode 00042 { 00043 int lowP, hightP, lowT, hightT; 00044 hightP = PAN >> 8 ; 00045 lowP = PAN & 0x0f; 00046 hightT = TILT >> 8 ; 00047 lowT = TILT & 0x0f; 00048 unsigned char readdata[21]; 00049 unsigned char SetServ[8]= {0xae,0xc1,18,4,lowP,hightP,lowT,hightP}; 00050 do { 00051 composant->write(I2Caddress,(char*)SetServ,6); 00052 composant->read(I2Caddress,(char*)readdata,10); 00053 wait(0.01); 00054 } while(readdata[0] != 175 && readdata[1] != 193); 00055 } 00056 00057 00058 void Pixy2_Library::Pixy2_RGBLED(bool STATE) 00059 { 00060 00061 unsigned char readdata[21]; 00062 unsigned char lampeON[6]= {0xae,0xc1,22,2,0,1}; 00063 unsigned char lampeOFF[6]= {0xae,0xc1,22,2,0,0}; 00064 if(STATE == true) { 00065 do { 00066 composant->write(I2Caddress,(char*)lampeON,6); 00067 composant->read(I2Caddress,(char*)readdata,10); 00068 wait(0.01); 00069 } while(readdata[0] != 175 && readdata[1] != 193); 00070 } else { 00071 do { 00072 composant->write(I2Caddress,(char*)lampeOFF,6); 00073 composant->read(I2Caddress,(char*)readdata,10); 00074 wait(0.01); 00075 } while(readdata[0] != 175 && readdata[1] != 193); 00076 } 00077 00078 } 00079 00080 int Pixy2_Library::Pixy2_GetBlock(char DATA, int BLOCK_NUMBER) 00081 { 00082 int DataSize = BLOCK_NUMBER * 14 + 6; 00083 unsigned char writedata[6]= {0xae,0xc1,32,2,255,20}; 00084 unsigned char readdata[DataSize + 1]; 00085 do { 00086 composant->write(I2Caddress,(char*)writedata,6); 00087 composant->read(I2Caddress,(char*)readdata,DataSize); 00088 wait(0.1); 00089 } while(readdata[0] != 175 && readdata[1] != 193); 00090 switch(DATA) { 00091 case 's': 00092 if(readdata[DataSize - 13]<2) return readdata[7]*256+readdata[DataSize - 14]; 00093 if(readdata[DataSize - 13]>=2) return -2; 00094 break; 00095 case 'x': 00096 if(readdata[DataSize - 11]<2) return readdata[DataSize - 11]*256+readdata[DataSize - 12]; 00097 if(readdata[DataSize - 11]>=2) return -2; 00098 break; 00099 case 'y': 00100 if(readdata[DataSize - 9]<2) return readdata[DataSize - 9]*256+readdata[DataSize - 10]; 00101 if(readdata[DataSize - 9]>=2) return -2; 00102 break; 00103 case 'w': 00104 if(readdata[DataSize - 7]<2) return readdata[DataSize - 7]*256+readdata[DataSize - 8]; 00105 if(readdata[DataSize - 7]>=2) return -2; 00106 break; 00107 case 'h': 00108 if(readdata[DataSize - 5]<2) return readdata[DataSize - 5]*256+readdata[DataSize - 6]; 00109 if(readdata[DataSize - 5]>=2) return -2; 00110 break; 00111 case 'a': 00112 if(readdata[DataSize - 3]<2) return readdata[DataSize - 3]*256+readdata[DataSize - 4]; 00113 if(readdata[DataSize - 3]>=2) return -2; 00114 break; 00115 case 'i': 00116 if(readdata[DataSize - 1]<2) return readdata[DataSize - 1]*256+readdata[DataSize - 2]; //////////////////////// 1 00117 if(readdata[DataSize - 1]>=2) return -2; 00118 break; 00119 } 00120 } 00121 00122 00123
Generated on Sun Jul 31 2022 09:33:15 by
1.7.2