HOme Sheriff And Lamp
Dependencies: CameraC328 HCSR04 SDFileSystem WIZnetInterface mbed
Fork of HoSAL by
Revision 2:3c7526a1893a, committed 2015-08-11
- Comitter:
- uasonice
- Date:
- Tue Aug 11 16:30:37 2015 +0000
- Parent:
- 1:bf5b84edf434
- Child:
- 3:8c4e0e7c8cea
- Commit message:
- update get_distance(); support param instance handle
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CameraC328.lib Tue Aug 11 16:30:37 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/shintamainjp/code/CameraC328/#49cfda6c547f
--- a/main.cpp Tue Aug 11 16:07:05 2015 +0000 +++ b/main.cpp Tue Aug 11 16:30:37 2015 +0000 @@ -17,7 +17,8 @@ Serial uart(USBTX, USBRX); // tx, rx -HCSR04 sensor(D12, D11); +//HCSR04 sensor(D12, D11); +HCSR04 *g_pHcrs; DigitalOut led1(LED1); //server listning status DigitalOut led2(LED2); //socket connecting status @@ -37,38 +38,12 @@ ledTick.attach(&ledTickfunc,0.5); uart.baud(115200); - DM_fLN("Start ----> HCSR04"); + DM_fLN("init"); + g_pHcrs = new HCSR04(D12, D11); while(1) { -#if 0 - long distance = sensor.distance(); - - //ryuhs74@20150712 START - - if( index_dist < 3){ - sum_dist[index_dist] = distance; - DM_fLN("sum_dist[%d] = %d", index_dist, sum_dist[index_dist]); - index_dist ++; - wait_ms(200); - } else { - avg_dist = 0; - index_dist = 0; - - for(int i =0; i<3;i++){ - avg_dist += sum_dist[i]; - } - - avg_dist /= 3; - DM_fLN("average: %d", avg_dist); - - if( avg_dist <= CHECK_DISTANCE ){ - - } - wait_ms(1000); - } -#else - get_distance(); + get_distance(g_pHcrs); wait_ms(1000); -#endif } }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rev_Camera.cpp Tue Aug 11 16:30:37 2015 +0000 @@ -0,0 +1,107 @@ +/* +# coded by revival / uasonice (at) gmail.com +# DATE: 2015/08/09 / Sun Aug 9 23:55:31 KST 2015 +# +# DESCRIPTION: +# rev Camera utility +*/ + +#include "mbed.h" +#include "CameraC328.h" + +#define DEBUG_TYPE 1 +#define P_ uart.printf +#include "rev_config.h" + +#include "rev_Camera.h" + + +#if defined(USE_CAMERA) +static FILE *fp_jpeg; + +//CameraC328 cam(PA_14, PA_13, CameraC328::Baud14400); +//CameraC328::JpegResolution camResul; + + +/** + * A callback function for jpeg images. + * You can block this function until saving the image datas. + * + * @param buf A pointer to the image buffer. + * @param siz A size of the image buffer. + */ +void cb_jpeg(char *buf, size_t szImage) { + for (int i = 0; i < (int)szImage; i++) { + fprintf(fp_jpeg, "%c", buf[i]); + } +} + +/** + * Synchronizing. + */ +void revSync(void) { + CameraC328::ErrorNumber err = CameraC328::NoError; + + err = cam.sync(); + if (CameraC328::NoError == err) { + DM_fLN("[ OK ] : CameraC328::sync"); + } else { + DM_fLN("[FAIL] : CameraC328::sync (Error=%02X)", (int)err); + } +} + +/** + * jpeg snapshot picture. + * param strFile: "/fs/file01.jpg" + * param resol : CameraC328::JpegResolution640x480, CameraC328::JpegResolution320x240 + */ +void revJpeg_snapshot(char *strFile, CameraC328::JpegResolution resol) { + CameraC328::ErrorNumber err = CameraC328::NoError; + + err = cam.init(CameraC328::Jpeg, CameraC328::RawResolution80x60, resol); + if (CameraC328::NoError == err) { + DM_fLN("[ OK ] : CameraC328::init"); + } else { + DM_fLN("[FAIL] : CameraC328::init (Error=%02X)", (int)err); + } + + fp_jpeg = fopen(strFile, "w"); + err = cam.getJpegSnapshotPicture(cb_jpeg); + if (CameraC328::NoError == err) { + DM_fLN("[ OK ] : CameraC328::getJpegPreview"); + } else { + DM_fLN("[FAIL] : CameraC328::getJpegPreview (Error=%02X)", (int)err); + } + + fclose(fp_jpeg); +} + +/** + * jpeg preview picture. + * param strFile: "/fs/file01.jpg" + * param resol : CameraC328::JpegResolution640x480, CameraC328::JpegResolution320x240 + */ +void revJpeg_preview(char *strFile, CameraC328::JpegResolution resol) { + CameraC328::ErrorNumber err = CameraC328::NoError; + err = cam.init(CameraC328::Jpeg, CameraC328::RawResolution80x60, resol); + if (CameraC328::NoError == err) { + DM_fLN("[ OK ] : CameraC328::init"); + } else { + DM_fLN("[FAIL] : CameraC328::init (Error=%02X)", (int)err); + } + + fp_jpeg = fopen(strFile, "w"); + + err = cam.getJpegPreviewPicture(cb_jpeg); + if (CameraC328::NoError == err) { + DM_fLN("[ OK ] : CameraC328::getJpegPreview"); + } else { + DM_fLN("[FAIL] : CameraC328::getJpegPreview (Error=%02X)", (int)err); + } + + fclose(fp_jpeg); +} + +#endif // defined(USE_CAMERA) + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rev_Camera.h Tue Aug 11 16:30:37 2015 +0000 @@ -0,0 +1,25 @@ +/* +# coded by revival / uasonice (at) gmail.com +# DATE: 2015/08/09 / Sun Aug 9 23:55:31 KST 2015 +# +# DESCRIPTION: +# rev Camera utility + */ + +#ifndef __REV_CAMERA_H__ +#define __REV_CAMERA_H__ +#include "CameraC328.h" + + +extern CameraC328 cam; +extern CameraC328::JpegResolution camResul; + +void revSync(void) ; +void revUncompressed_snapshot(char *strFile) ; +void revUncompressed_preview(char *strFile) ; +void revJpeg_snapshot(char *strFile, CameraC328::JpegResolution resol) ; +void revJpeg_preview(char *strFile, CameraC328::JpegResolution resol) ; + +#endif // __REV_CAMERA_H__ + +
--- a/rev_Hcsr04.cpp Tue Aug 11 16:07:05 2015 +0000 +++ b/rev_Hcsr04.cpp Tue Aug 11 16:30:37 2015 +0000 @@ -17,20 +17,18 @@ #include "rev_Hcsr04.h" -//HCSR04 sensor(D12, D11); -extern HCSR04 sensor; - -int sum_dist[3]; -int avg_dist = 0; -int index_dist = 0; -long distance_cm = 0; //ryuhs74@20150810 - Add #if defined(USE_MEASURE_DISTANCE) -int get_distance(void) +long avg_dist = 0; +long distance_cm = 0; //ryuhs74@20150810 - Add +uint8_t index_dist = 0; +long sum_dist[3]; + +int get_distance(HCSR04 *pH) { - + while (true) { - distance_cm = sensor.distance(); //ryuhs74@20150810 - cm 단위 측정 거리 return + distance_cm = pH->distance(); //ryuhs74@20150810 - cm 단위 측정 거리 return if( index_dist < 3){ //ryuhs74@20150810 sum_dist[index_dist] = distance_cm; DM_fLN("sum_dist[%d] = %d", index_dist, sum_dist[index_dist]); @@ -44,6 +42,7 @@ } avg_dist /= 3; + DM_fLN("avg: %d", avg_dist); return avg_dist; } #if 0
--- a/rev_Hcsr04.h Tue Aug 11 16:07:05 2015 +0000 +++ b/rev_Hcsr04.h Tue Aug 11 16:30:37 2015 +0000 @@ -13,9 +13,8 @@ #include "hcsr04.h" //ryuhs74@20150810 - Add -int get_distance(void); +int get_distance(HCSR04 *pH); #endif // __REV_HCSR04_H__ -