Image Zoom In/out Sample. This program uses GraphicsFramework library and GP2Y0A21YK sensor. Please use distance sensor in the range of 10-30cm.
Dependencies: GR-PEACH_video GraphicsFramework R_BSP mbed-rtos mbed
Fork of RGA_HelloWorld by
About GP2Y0A21YK
GP2Y0A21YK is a distance sensor and can be controlled by using the AnalogIn.
The range of this sensor is 10-80cm.
- Datasheet of GP2Y0A21YK
https://www.sparkfun.com/datasheets/Components/GP2Y0A21YK.pdf
About wiring
Sensor | GR-PEACH |
White wire | A0 |
Orange wire | GND |
Black wire | 5.0V |
rga_func.cpp@6:6cad61e4a4c1, 2016-05-20 (annotated)
- Committer:
- 1050186
- Date:
- Fri May 20 02:33:41 2016 +0000
- Revision:
- 6:6cad61e4a4c1
- Parent:
- 4:ffbd2a93b02f
Modify main.cpp
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
1050186 | 0:84e4649e7707 | 1 | /* |
1050186 | 0:84e4649e7707 | 2 | Permission is hereby granted, free of charge, to any person obtaining a copy |
1050186 | 0:84e4649e7707 | 3 | of this software and associated documentation files (the "Software"), to deal |
1050186 | 0:84e4649e7707 | 4 | in the Software without restriction, including without limitation the rights |
1050186 | 0:84e4649e7707 | 5 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
1050186 | 0:84e4649e7707 | 6 | copies of the Software, and to permit persons to whom the Software is |
1050186 | 0:84e4649e7707 | 7 | furnished to do so, subject to the following conditions: |
1050186 | 0:84e4649e7707 | 8 | |
1050186 | 0:84e4649e7707 | 9 | The above copyright notice and this permission notice shall be included in |
1050186 | 0:84e4649e7707 | 10 | all copies or substantial portions of the Software. |
1050186 | 0:84e4649e7707 | 11 | |
1050186 | 0:84e4649e7707 | 12 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
1050186 | 0:84e4649e7707 | 13 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
1050186 | 0:84e4649e7707 | 14 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
1050186 | 0:84e4649e7707 | 15 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
1050186 | 0:84e4649e7707 | 16 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
1050186 | 0:84e4649e7707 | 17 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
1050186 | 0:84e4649e7707 | 18 | THE SOFTWARE. |
1050186 | 0:84e4649e7707 | 19 | */ |
1050186 | 0:84e4649e7707 | 20 | |
1050186 | 0:84e4649e7707 | 21 | #include "mbed.h" |
1050186 | 0:84e4649e7707 | 22 | #include "rga_func.h" |
1050186 | 0:84e4649e7707 | 23 | #include "Images/BinaryImage_RZ_A1H.h" |
1050186 | 0:84e4649e7707 | 24 | |
1050186 | 4:ffbd2a93b02f | 25 | #define ZOOM_SRC_CENTER_X IMAGE_WIDTH_ZOOM_FUNC / 2 |
1050186 | 4:ffbd2a93b02f | 26 | #define ZOOM_SRC_CENTER_Y IMAGE_HEIGHT_ZOOM_FUNC / 2 |
1050186 | 0:84e4649e7707 | 27 | |
1050186 | 0:84e4649e7707 | 28 | Canvas2D_ContextClass canvas2d; |
1050186 | 0:84e4649e7707 | 29 | |
1050186 | 0:84e4649e7707 | 30 | void Set_RGAObject(frame_buffer_t* frmbuf_info) { |
1050186 | 0:84e4649e7707 | 31 | errnum_t err; |
1050186 | 0:84e4649e7707 | 32 | Canvas2D_ContextConfigClass config; |
1050186 | 0:84e4649e7707 | 33 | |
1050186 | 0:84e4649e7707 | 34 | config.frame_buffer = frmbuf_info; |
1050186 | 0:84e4649e7707 | 35 | canvas2d = R_RGA_New_Canvas2D_ContextClass(config); |
1050186 | 0:84e4649e7707 | 36 | err = R_OSPL_GetErrNum(); |
1050186 | 0:84e4649e7707 | 37 | if (err != 0) { |
1050186 | 0:84e4649e7707 | 38 | printf("Line %d, error %d\n", __LINE__, err); |
1050186 | 0:84e4649e7707 | 39 | while (1); |
1050186 | 0:84e4649e7707 | 40 | } |
1050186 | 0:84e4649e7707 | 41 | } |
1050186 | 0:84e4649e7707 | 42 | |
1050186 | 0:84e4649e7707 | 43 | void RGA_Func_Zoom(frame_buffer_t* frmbuf_info, int src_height_pos) { |
1050186 | 0:84e4649e7707 | 44 | /* Clear */ |
1050186 | 0:84e4649e7707 | 45 | canvas2d.clearRect(0, 0, frmbuf_info->width, frmbuf_info->height); |
1050186 | 0:84e4649e7707 | 46 | /* Zoom out */ |
1050186 | 0:84e4649e7707 | 47 | canvas2d.drawImage(Landscape_wide_jpg_File, |
1050186 | 0:84e4649e7707 | 48 | /* src X */ ZOOM_SRC_CENTER_X - (src_height_pos * IMG_DRAW_WIDTH / IMG_DRAW_HEIGHT), |
1050186 | 0:84e4649e7707 | 49 | /* src Y */ ZOOM_SRC_CENTER_Y - src_height_pos, |
1050186 | 0:84e4649e7707 | 50 | /* src W */ src_height_pos * 2 * IMG_DRAW_WIDTH / IMG_DRAW_HEIGHT, |
1050186 | 0:84e4649e7707 | 51 | /* src H */ src_height_pos * 2, |
1050186 | 4:ffbd2a93b02f | 52 | /* dst */ 10, 10, IMG_DRAW_WIDTH, IMG_DRAW_HEIGHT); |
dkato | 2:c7faef0ef374 | 53 | |
1050186 | 0:84e4649e7707 | 54 | /* Complete drawing */ |
1050186 | 0:84e4649e7707 | 55 | R_GRAPHICS_Finish(canvas2d.c_LanguageContext); |
1050186 | 0:84e4649e7707 | 56 | } |