modify for C210 webcam and Startboard Orange.
Dependencies: TextLCD USBHost mbed
Fork of USBHostC270_example by
Norimasa Okamoto さんの http://mbed.org/users/va009039/code/USBHostC270_example/ を C210 webcam と StarBoard Orange での SD カード保存用に変更。
main.cpp@11:944c66b16508, 2013-03-19 (annotated)
- Committer:
- masato
- Date:
- Tue Mar 19 12:21:08 2013 +0000
- Revision:
- 11:944c66b16508
- Parent:
- 10:387c49b2fc7e
- Child:
- 12:c827ed52021d
change for C210 and SDFileSystem
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
masato | 11:944c66b16508 | 1 | // #include "USBHostMSD.h" |
va009039 | 10:387c49b2fc7e | 2 | #include "USBHostC270.h" |
masato | 11:944c66b16508 | 3 | #include "SDFileSystem.h" |
va009039 | 10:387c49b2fc7e | 4 | |
va009039 | 10:387c49b2fc7e | 5 | Serial pc(USBTX, USBRX); |
va009039 | 10:387c49b2fc7e | 6 | BusOut leds(LED1, LED2, LED3); |
masato | 11:944c66b16508 | 7 | SDFileSystem sd(p5, p6, p7, p8, "sd"); |
va009039 | 10:387c49b2fc7e | 8 | |
va009039 | 10:387c49b2fc7e | 9 | int main() { |
va009039 | 10:387c49b2fc7e | 10 | pc.baud(921600); |
va009039 | 10:387c49b2fc7e | 11 | |
masato | 11:944c66b16508 | 12 | // USBHostMSD* msd = new USBHostMSD("usb"); // USB flash drive |
va009039 | 10:387c49b2fc7e | 13 | |
va009039 | 10:387c49b2fc7e | 14 | USBHostC270* cam = new USBHostC270(C270_MJPEG, C270_160x120, _5FPS); // Logitech C270 |
va009039 | 10:387c49b2fc7e | 15 | while(!cam->connect()) { |
va009039 | 10:387c49b2fc7e | 16 | Thread::wait(500); |
va009039 | 10:387c49b2fc7e | 17 | } |
va009039 | 10:387c49b2fc7e | 18 | |
va009039 | 10:387c49b2fc7e | 19 | uint8_t buf[1024*3]; |
va009039 | 10:387c49b2fc7e | 20 | Timer interval_t; |
va009039 | 10:387c49b2fc7e | 21 | interval_t.reset(); |
va009039 | 10:387c49b2fc7e | 22 | interval_t.start(); |
va009039 | 10:387c49b2fc7e | 23 | int shot = 0; |
va009039 | 10:387c49b2fc7e | 24 | while(1) { |
masato | 11:944c66b16508 | 25 | if (interval_t.read_ms() > 2000) { |
masato | 11:944c66b16508 | 26 | printf("start\r\n"); |
va009039 | 10:387c49b2fc7e | 27 | int r = cam->readJPEG(buf, sizeof(buf)); |
va009039 | 10:387c49b2fc7e | 28 | char path[32]; |
masato | 11:944c66b16508 | 29 | // snprintf(path, sizeof(path), "/usb/image%02d.jpg", shot % 20); |
masato | 11:944c66b16508 | 30 | snprintf(path, sizeof(path), "/sd/image%02d.jpg", shot % 20); |
masato | 11:944c66b16508 | 31 | printf("%d %s %d bytes\r\n", shot, path, r); |
masato | 11:944c66b16508 | 32 | // if (msd->connected()) |
masato | 11:944c66b16508 | 33 | { |
va009039 | 10:387c49b2fc7e | 34 | FILE* fp = fopen(path, "wb"); |
va009039 | 10:387c49b2fc7e | 35 | if (fp) { |
masato | 11:944c66b16508 | 36 | printf("write\r\n"); |
va009039 | 10:387c49b2fc7e | 37 | fwrite(buf, r, 1, fp); |
va009039 | 10:387c49b2fc7e | 38 | fclose(fp); |
va009039 | 10:387c49b2fc7e | 39 | } |
va009039 | 10:387c49b2fc7e | 40 | shot++; |
va009039 | 10:387c49b2fc7e | 41 | leds = shot % 8; |
va009039 | 10:387c49b2fc7e | 42 | } |
va009039 | 10:387c49b2fc7e | 43 | interval_t.reset(); |
masato | 11:944c66b16508 | 44 | printf("end\r\n"); |
va009039 | 10:387c49b2fc7e | 45 | } |
masato | 11:944c66b16508 | 46 | // if (!msd->connected()) msd->connect(); |
va009039 | 10:387c49b2fc7e | 47 | cam->poll(); |
va009039 | 10:387c49b2fc7e | 48 | } |
va009039 | 10:387c49b2fc7e | 49 | } |