
ãŠã£ãããã£ã¢ã«ãããšã ã¿ã€ã ã©ãã¹æ®åœ±ãŸãã¯ã¹ããŒã¢ãŒã·ã§ã³æ®åœ±ã¯ãæšæºã®æ®åœ±ããã³æ圱ã®é »åºŠã§ãã24ãã¬ãŒã /ç§ãããäœãé »åºŠã§æ®åœ±ãããŠããŸãã
GIFã¿ã€ã ã©ãã¹

STM32ãã€ã¯ãã³ã³ãããŒã©ãŒã®ç 究ãéå§ããç¹æ» ããLEDã§ãHellowWorldããèšè¿°ããåŸãSTM32ãããããç解ããã«ã¯ãããå€ãã®ãã€ã¯ãã³ã³ãããŒã©ãŒåšèŸºæ©åšã䜿çšããŠããè€éãªãã®ãå®è£ ããå¿ èŠãããããšã«æ°ä»ããŸããã ã¿ã€ã ã©ãã¹ã«ã¡ã©ãäœæãããšããã¢ã€ãã¢ã
ç§ãéçºããã«ã¡ã©ã¯ãçŽ5ç§ããšã«åçãæ®åœ±ããããããjpeg圢åŒã§SDã«ãŒãã«ä¿åããŸãã 次ã«ãããããã³ã³ãã¥ãŒã¿ãŒã§ãããªãã¡ã€ã«ã«çµåããå¿ èŠããããŸãã
ã«ã¡ã©ãäœæããããã«ã次ã®ã³ã³ããŒãã³ãã䜿çšããŸããã
1ïŒ STM32L-DISCOVERYãããã°ããŒãã äœé»åããã€ã¹ã®å®è£ çšã«ç¹å¥ã«èšèšãããSTM32L152RBT6ãã€ã¯ãã³ã³ãããŒã©ãŒããããã«ã¡ã©ã®ããããªãŒé»åãå®çŸããã®ã«åœ¹ç«ã¡ãŸãã

2ïŒ LinkSprite JPEGã«ã©ãŒã«ã¡ã©ã¢ãžã¥ãŒã«ãUARTã€ã³ã¿ãŒãã§ã€ã¹äžã§åäœã ãã®ã¢ãžã¥ãŒã«ã¯æ¢è£œã®ã«ã¡ã©ã§ãUARTã«ããJPEG圢åŒã§åçãåºåããŸãã æ§æãšç®¡çããã®ã€ã³ã¿ãŒãã§ã€ã¹ã§å®è¡ãããŸãã

LinkSpriteã¢ãžã¥ãŒã«ã®ä»æ§ïŒ
- ãµããŒããããŠããåçã®è§£å床ïŒVGA / QVGA / 160 * 120;
- 9600ãã115200ïŒããã©ã«ãã§ã¯38400ïŒã®é床ã
- 5Vé»æº;
- ãµã€ãº32mm X 32mm;
- æ¶è²»é»æµã¯80ã100mAã§ãã
3ïŒLC STUDIOããSDã«ãŒããæ¥ç¶ããããã®ã¢ãžã¥ãŒã«ããã€ã¯ãã³ã³ãããŒã©ãŒã¯SPIã€ã³ã¿ãŒãã§ãŒã¹ãä»ããŠSDã«ãŒããšå¯Ÿè©±ããŸãã

4ïŒãusb to uartãã¢ããã¿ãŒã¯ãLinkSpriteã«ã¡ã©ã¢ãžã¥ãŒã«ã®åæ調æ»ïŒããã«ã¯LS-Y201ããã°ã©ã ãå¿ èŠã§ãïŒãããã€ã¯ãã³ã³ãããŒã©ãŒããã³ã³ãã¥ãŒã¿ãŒãžã®ãããã°æ å ±ã®åºåã«ã圹ç«ã¡ãŸãã ïŒã€ã³ã¿ãŒãããã§ã¢ããã¿ãŒã®çŸããåçãèŠã€ããããªãã£ãã®ã§ãèªåã§åçãæ®ããŸããïŒïŒ

圌ããèšãããã«ãç§ãã¡ã¯éšåçã«ç©åãåãã§ãããïŒ
æåã«ãLinkSpriteã«ã¡ã©ã®ä»çµã¿ãèŠãŠã¿ãŸãããã
1ïŒå³ã«åŸã£ãŠåè·¯ãçµã¿ç«ãŠãŸãããïŒã«ã¡ã©ã¢ãžã¥ãŒã«ã«ã¯ã¯ã€ã€ã®æå®ã¯ãããŸãããã LinkSpriteããã¥ã¢ã«ã«ã¯èª¬æããããŸããå³é¢ã§ãããç解ã§ããªãå Žåã¯ãåç §ããŠãã ããïŒã

ãã®èšèšã¯ããŸãããã¯ãã§ãïŒç§èªèº«ã¯ãã«ã¡ã©ã¢ãžã¥ãŒã«ããã®ãã¹ãŠã®ã¯ã€ã€ã«ããŒã¯ãä»ããŸããïŒã ãµã€ãäžã®æ å ±ãä¿¡ããŠããå Žåã1æ¬ã®ã¯ã€ã€ã¯æªæ¥ç¶ã®ãŸãŸã§ããããã¯ã¢ããã°ãããªåºåã§ãã

2ïŒæ¬¡ã«ãã¢ããã¿ãŒãã³ã³ãã¥ãŒã¿ãŒã«æ¥ç¶ãã LS-Y201ããã°ã©ã ãå®è¡ããŸãã ã¢ããã¿ãŒã®ComããŒããéžæããå¿ èŠããããŸãïŒç¹æ®ãªã®ã¯ã1ãã4ãŸã§ããéžæã§ããªããããã¢ããã¿ãŒã®å€ã倧ããå Žåã¯ãåæ§æããå¿ èŠããããŸãïŒã 次ã«ã[ éã ]ãã¿ã³ãã¯ãªãã¯ããŸãã ãã®åŸãComããŒããéããã«ã¡ã©ããåçãåä¿¡ã§ããŸãã ãããè¡ãã«ã¯ã ã·ã³ã°ã«ã·ã§ãã ïŒ1æã®åçãæ®ãïŒã ã·ã§ãããç¶ãã ïŒ Stop Shotãã¿ã³ãæŒããããŸã§åçãæ®ãïŒã åçãä¿å ïŒãã£ããã£ãŒããåçãã³ã³ãã¥ãŒã¿ãŒã®ãã£ã¹ã¯ã«ä¿åïŒã ãªã»ãã ïŒã«ã¡ã©ãåæèšå®ã«ãªã»ããïŒã çµäº ïŒ çµäº ïŒã䜿çšããŸãããã°ã©ã ããïŒã

ããã°ã©ã èšå®ã§ã¯ãç»åã®è§£å床320x240ãŸãã¯640x480ïŒ Image Style ïŒã512ãã€ããŸãã¯ãã¬ãŒã å šäœã®è»¢éã¢ãŒã ïŒ Transfer Mode ïŒã転éã¬ãŒãïŒ Rate ã9600ãã115200ã«èšå®ãComããŒãã®é床ãå€æŽããå¿ èŠããããŸãïŒãéžæã§ããŸããåçã®å§çž®çïŒ å§çž®ç ïŒãåçãä¿åãããã©ã«ããŒïŒ ãã¹ ïŒã
ã³ã³ãã¥ãŒã¿ãŒãšã«ã¡ã©éã®äº€æã¯ããLinkSprite JPEGã«ã©ãŒã«ã¡ã©ãã§èª¬æãããŠãããããã³ã«ã«åŸã£ãŠå®è¡ãããŸãã
ã·ãªã¢ã«UARTã€ã³ã¿ãŒãã§ãŒã¹ãã
次ã®ã³ãã³ããååšããŸãã
- ãªã»ãã-ã«ã¡ã©ãåæèšå®ã«ãªã»ããããŸãã
- åçãæ®ã-åçã圢æããããã«ã«ã¡ã©ã«æ瀺ããŸãã
- JPEGãã¡ã€ã«ãµã€ãºã®èªã¿åã-çæãããåçã®ãµã€ãºãèŠæ±ããŸãã
- JPEGãã¡ã€ã«ã³ã³ãã³ãã®èªã¿åã-ã«ã¡ã©ããåçãèªã¿åããŸãã
- takinkã®åçãåæ¢-åçãèªãã åŸã«ã«ã¡ã©ã«éä¿¡ïŒ
- å§çž®ç-åçã®å§çž®çãèšå®ããŸãã
- ç»åãµã€ãº-åçã®ãµã€ãºãèšå®ããŸãã
- çé»å-ã«ã¡ã©ãçé»åã¢ãŒãïŒãŸãã¯ãããã衚瀺ïŒã«ããŸãã
- ããŒã¬ãŒãã®å€æŽ-UARTçµç±ã§ã«ã¡ã©ãšã®äº€æã¬ãŒããèšå®ããŸãã
ã«ã¡ã©ã¢ãžã¥ãŒã«ã¯å€ããå°ãªããç解ãããŠããŸãããä»åºŠã¯STM32ã«ã¡ã©ãçµã¿ç«ãŠãŸãã

ãã®ãããªèšèšã¯ãã¯ã€ã€ã®å±±ããäœæããå¿ èŠããããŸãã

ä»äºã«ã¯ååã§ããããã¹ãŠã建ç©ã«è©°ã蟌ãããšãã§ããŸãã ããããªãŒã®æ®µããŒã«ç®±ã䜿ããŸããã

ããã§ããã€ã¯ãã³ã³ãããŒã©ããã°ã©ã ã«ã€ããŠèããŠã¿ãŸãããã
ãã€ã¯ãã³ã³ãããŒã©ãŒã¯ãPLLã䜿çšããŠãã«ãã€ã³16 MHzãžã§ãã¬ãŒã¿ãŒããæ倧åšæ³¢æ°32 MHzã«èª¿æŽãããŸãã ã«ã¡ã©ã¢ãžã¥ãŒã«ã䜿çšããã«ã¯ãUART1ã䜿çšãããŸãã UART2ã¯ãããã°ããŒããžã®åºåã«äœ¿çšãããŸãïŒå²ã蟌ã¿ãšãªã³ã°ãããã¡ãŒã¯UARTã§ã®äœæ¥ã«äœ¿çšãããŸããããããã¹ãŠæ§æããæ¹æ³ã®è©³çŽ°ã«ã€ããŠã¯ããã®èšäºã®STM32LïŒSTM32ïŒã®UARTïŒUSARTïŒãåç §ããŠãã ããïŒã SPI2ãä»ããŠæ¥ç¶ãããSDã«ãŒãã ãŸããRTCã¿ã€ããŒã䜿çšããŠãæå»ãšæ¥ä»ã«åºã¥ããŠåçãä¿åããŸãã
åšèŸºæ©åšãæäœããããã«ãSTM32L1xx_StdPeriphã©ã€ãã©ãªã䜿çšããŸããã ãã®èª¬æã¯StLibãã©ã«ããŒã«ãããŸãã
ãã€ã¯ãã³ã³ãããŒã©ãŒãšã«ã¡ã©ã¢ãžã¥ãŒã«ãSDã«ãŒããUSB-UARTã¢ããã¿ãŒã®çžäºäœçšæ©èœã¯ãã¹ãŠMyLibã§èª¬æãããŠããŸãã
Fatã䜿çšããã«ã¯ãFatFsã©ã€ãã©ãªã䜿çšããããã®ãã¡ã€ã«ã¯fatfsãã©ã«ããŒã«ãããŸãã
main.hãã¡ã€ã«ã«ã¯ã䜿çšãããã€ã¯ãã³ã³ãããŒã©ãŒã®ã¬ãã°ã®èª¬æã䜿çšããåšèŸºæ©åšã®ãã©ã¡ãŒã¿ãŒã®èª¬æãªã©ããããžã§ã¯ãã®ãã¹ãŠã®åºæ¬èšå®ãå«ãŸããŠããŸãã
ãããã®è¡ã«çŠç¹ãåœãŠãããšæããŸãã
#define DEBUG // UART2 #define ENABLE_POWER_SAVING // //#define JPEG_TO_UART // jpg UART2
ã«ã¡ã©ã®ããã©ãŒãã³ã¹ã®ãããã°ãšæ€èšŒã«åœ¹ç«ã¡ãŸãã
ãã€ã¯ãã³ã³ãããŒã©ãŒãšã«ã¡ã©ã¢ãžã¥ãŒã«ã®çžäºäœçšã¢ã«ãŽãªãºã ãæ€èšããŠãã ããã
ã«ã¡ã©ã¢ãžã¥ãŒã«ã®èšå®ã«ã¯ã次ã®æ©èœã䜿çšãããŸãã
1. ResetCameraAtDifferentSpeedsïŒïŒ -æåã«ã«ã¡ã©ã¢ãžã¥ãŒã«ãåèµ·åããå¿ èŠããããŸãã ãããè¡ãã«ã¯ããªã»ããã³ãã³ãã圌ã«éä¿¡ãããŸããããã¯ãã«ã¡ã©ã以åã«èšå®ãããé床ãããããªãããã䜿çšå¯èœãªãã¹ãŠïŒ19200ãã115200ïŒã«ãªã»ããããããšããããã§ãã ãªã»ããã«æåããå Žåãèµ·åæã«ã«ã¡ã©ã¯ãinit endãã§çµããã·ãŒã±ã³ã¹ãæäŸããŸãã ãã®åŸã2ã3ç§ã®ééãç¶æããå¿ èŠããããã«ã¡ã©ã®èšå®ãç¶è¡ã§ããŸãã
2. Camera_ChBaudRateïŒ4ïŒ -ãã¬ãŒã 転éãé«éåããããã«ãUARTã®äº€æã¬ãŒããäžãããããã®éã«ããŠäŒéãšã©ãŒãæžããããšãã§ããŸãã ããã©ã«ãã§ã¯ãã«ã¡ã©ã¯38400ã«èšå®ãããŠããŸãïŒ4ã¯115200ã®é床ã§ãïŒã
3. Camera_ChPictureSizeïŒ2ïŒ -ã«ã¡ã©ã§çæãããåçã®è§£å床ãèšå®ããŸãã 160x120ã320x240ã640x480ã®ããããã§ãã ïŒ2解å床640x480ïŒ
4. Camera_ChCompressionïŒ0x36ïŒ -åçã®å§çž®çïŒ0x00ã0xFFïŒãèšå®ããŸãã倧ããã»ã©ããµã€ãºãå°ãããªããŸãã
5. Camera_PowerSavingïŒ1ïŒ -æåŸã«ãã«ã¡ã©ãçãšãã¢ãŒãã«ãããšãé»åæ¶è²»ãåæžã§ããŸãã ïŒ1-çãšãã¢ãŒããžã®ç§»è¡ïŒ
ãããã®ã¢ã¯ã·ã§ã³ã¯ãã¹ãŠãMyLibãããžã§ã¯ããã©ã«ããŒã«ããinit_JPEGCamera.hããã³init_JPEGCamera.cãã¡ã€ã«ã§èª¬æãããŠããŸãã
ã«ã¡ã©ãã»ããã¢ããããåŸãã«ã¡ã©ããåçãåãåãããšãã§ããŸãããã®ããã«ã¯ã次ã®ã·ãŒã±ã³ã¹ãå®è¡ããå¿ èŠããããŸãã
1. Camera_PowerSavingïŒ0ïŒ -ã«ã¡ã©ãçé»åã¢ãŒãã®å Žåããã®ã¢ãŒãããåé€ããŸã..ïŒ0-çé»åã¢ãŒããçµäºããŸãïŒ
2. Camera_TakePictureïŒïŒ -åçãäœæããã³ãã³ããéä¿¡ããŸãã
3. Camera_ReadDataïŒïŒ -ã«ã¡ã©ããçæãããåçãèªã¿åããŸãã
4. Camera_StopPicturesïŒïŒ -åçã®åœ¢æãå®äºããã³ãã³ããéä¿¡ããŸãã
5. Camera_PowerSavingïŒ1ïŒ -å¿ èŠã«å¿ããŠãã«ã¡ã©ãçãšãã¢ãŒãã«ããŸãã
ãããã®é¢æ°ã®èª¬æã¯ãMyLibãããžã§ã¯ããã©ã«ããŒã«ããfunctions_JPEGCamera.hããã³functions_JPEGCamera.cãã¡ã€ã«ã«ãããŸãã
次ã«ãSDã«ãŒããšã®çžäºäœçšã¢ã«ãŽãªãºã ãæ€èšããŸãã
ãã®èšäºã«ãããšãFatFSã©ã€ãã©ãªã䜿çšããŠããŸããSDã«ãŒããSPIçµç±ã§STM32F4xxããã³FatFSã«æ¥ç¶ãã
ã«ãŒãæ¥ç¶ã¯ã次ã®2ã€ã®æ©èœã䜿çšããŠå®è¡ãããŸãã
1. disk_initializeé¢æ°ã䜿çšããŠãã«ãŒããåæåããŸãã
2.次ã«ã f_mountãããŠã³ãããå¿ èŠããããŸãã
ãããã®æé ãæ£åžžã«å®äºããåŸã次ã®ãããªã«ãŒãã§ããŸããŸãªæäœãå®è¡ã§ããŸãã
1. f_open-ãã¡ã€ã«ãéãã
2. f_close-ãã¡ã€ã«ãéããŸãã
3. f_mkdir-ãã£ã¬ã¯ããªãäœæããŸãã
4. f_chdir-ãã£ã¬ã¯ããªãéžæããŸãã
5. f_write-ãã¡ã€ã«ã«æžã蟌ã¿ãŸãã
6. f_read-ãã¡ã€ã«ããèªã¿åããŸãã
ã«ã¡ã©ãšSDã«ãŒãã䜿çšããäœæ¥ã«ã€ããŠèª¬æããŸããããããã°ã©ã å šäœã®äœæ¥ãæ€èšããŸãã
1. SDã«ãŒããåæåããŸãã
2.ã«ã¡ã©ã¢ãžã¥ãŒã«ãåæåããŸãã
3.ãã¡ã€ã«time.txtãéããŸãïŒãã¡ã€ã«ã«ã¯ã 01.01.2014_12ïŒ00ã®åœ¢åŒã®1è¡ãå«ãŸããŠããå¿ èŠããããŸãïŒ ãRTCã¿ã€ããŒãã«ãŠã³ãããæéãä¿åããŸãã
4.ãã¡ã€ã«ããæå»ãšæ¥ä»ãèªã¿åããRTCãæ§æããŸãã
5.ãã¡ã€ã«time.txtãéããŸãã
6.åçãLinkSpritePhotoããä¿åããããã®ãã£ã¬ã¯ããªãäœæããŸãã
7.ããŒãã®PA0ãã¿ã³ãæŒããšãåçãæ®ã£ãŠã«ãŒãã«ä¿åããŸãïŒåçãæ®ããããšãéè²ã®LEDãç¹ç¯ããŸãïŒã
8.ããããã®æ©èœãå®è¡ã§ããªãå Žåãç¡éã«ãŒãã«é¥ããç·è²ã®LEDãç¹æ» ããŸãã
ã«ã¡ã©ãé£ç¶ã¢ãŒãã§èµ·åããã«ã¯ãmain.cã®æ¬¡ã®è¡ã®ã³ã¡ã³ãã解é€ããå¿ èŠããããŸãã
//EnabledButtonStart = 101; // //Delay(300); //
ãããŠããã®è¡ãã³ã¡ã³ãã¢ãŠãããŠãã ããïŒ
EnabledButtonStart = 0; //
次ã«ãé»æºãå ¥ãããšãã«ã¡ã©ãé£ç¶ããŠåçã®æžã蟌ã¿ãéå§ããŸãã
äžè¬ã«ããã®ã«ã¡ã©ãã©ã®ããã«æ©èœãããã«ã€ããŠèª¬æããŸããããäœæ¥ã®çµæã衚瀺ã§ããããã«ãªããŸããã
ãããªãåçããªã人ã®ããã®GIF

äœããã®çç±ã§ããã¹ãŠã®ãã¬ãŒã ãé»è²ã«ãªããŸãããããããIRè£æ£ã®ãªãã¬ã³ãºã§ãã
ã«ã¡ã©ã¯UARTæ å ±ãã³ã³ãã¥ãŒã¿ãŒã«éä¿¡ããŸãã

ãã¬ãŒã ãSDã«ãŒãã«ä¿åããŸãã

ããŠãç§ããã£ãããšãã¹ãŠããã®çµè«ïŒ
- STM32L1xx_StdPeriphã©ã€ãã©ãªã¯ãSTM32lãåŠç¿ããããã®ãšã³ããªã®ãããå€ãäžããŸãããããã§ãããŒã¿ã·ãŒããåŠç¿ããã«ã¯ã§ããŸããã
- å°æ¥çã«ã¯ãã«ã¡ã©ã«ããããªãŒã§é»åãäŸçµŠã§ããããã«ãstm32lé»åã¢ãŒãã«å¯ŸåŠããäºå®ã§ãã
ç§ããããã¹ãŠãç¹°ãè¿ãããã«å¿ èŠãªãªã³ã¯ã®ãªã¹ãïŒ
- æåã¢ãžã¥ãLinkSprite JPEGã«ã¡ã©ã
- LinkSprite JPEGã«ã¡ã©ã¢ãžã¥ãŒã«ã®èª¬æ
- SPIçµç±ã§STM32F4xxããã³FatFSã«SDã«ãŒããæ¥ç¶ããŸã
- STM32LïŒSTM32ïŒäžã®UARTïŒUSARTïŒ
STM32Camera.rarãããžã§ã¯ããããŠã³ããŒãããããã®ãªã³ã¯