ãã®äŸã§ã¯ã ãã©ãã¬ãžã¹ã¿ãšArduinoã«åºã¥ããç°¡åãªã¢ãŒã·ã§ã³æ€åºåšãäœæãããŸãã MATLABçšArduinoãµããŒãããã±ãŒãžã䜿çšããŠç®¡çãããŸãã
ã¯ããã«
ãã©ãã¬ãžã¹ã¿ã¯ãå ¥å°å ã®åŒ·åºŠã«åå¿ããå¯å€æµæåšã§ãããããåãæ€åºåšã¯ç §æã®å€åãåŒãèµ·ããåãã®ã¿ãæ€åºããŸãã
MATLABã§èšè¿°ãããå¶åŸ¡ããã°ã©ã ã¯ããµããŒãããã±ãŒãžã®ã³ãã³ãã䜿çšããŠãArduinoãã³ããé»å§ãèªã¿åããŸãã é»å§å€ã¯ãæéãåç §ããŠãMATLABã«çŽæ¥èªã¿èŸŒãŸããŸãã ãã®ããŒã¿ã¯ãã¢ãŒã·ã§ã³æ€åºã®ããã«ãªã¢ã«ã¿ã€ã ã§ããããããã³åæãããŸãã
ãã®ã³ãŒãã§ã¯ãã¢ãŒã·ã§ã³æ€åºã«ã¢ã«ãŽãªãºã ã®çµã¿åããã䜿çšããŠããŸãããåæ§ã®ãããžã§ã¯ãã§äœ¿çšã§ããä»ã®å€ãã®æ©æ¢°åŠç¿ããã³ããŒã¿åæã¢ã«ãŽãªãºã ããããŸãã
ã¢ãŒã·ã§ã³ãã£ãã¯ã¿ãŒã®å®è¡äžãMATLABã¯ãã¹ãŠã®é»å§æž¬å®å€ã察å¿ããã¿ã€ã ã¹ã¿ã³ããšå ±ã«ä¿åããŸãã ããã«ããããŠãŒã¶ãŒã¯èšé²ãå®äºããåŸãMATLABã§å®å šãªããŒã¿ã»ãããåŠçã§ããŸãã 次ã®èšäºã§ã¯ããã®ãããªããã€ãã®ã¬ã³ãŒããšã¢ã«ãŽãªãºã ã®åæçµæã瀺ããŸãã
äœãå¿ èŠã§ããïŒ
- ArduinoãŸãã¯åçã®ãã®
- USBã±ãŒãã«
- 1åã®ãã©ãã¬ãžã¹ã¿
- 10 kãªãŒã ã®æµæ
- ã¯ã€ã€ïŒMGTFã¯0.2ã§ååã§ãïŒ
- å°ããªãã¬ããããŒã
ã¿ã¹ã¯1-ArduinoãMATLABã«æ¥ç¶ãã
ArduinoãMATLABã«æ¥ç¶ããã«ã¯ãArduinoã®MATLABãµããŒãããã±ãŒãžãã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã ãã®ãµããŒãããã±ãŒãžã¯ãR2014aïŒçŸåšã®R2015aïŒä»¥éã®ãªãªãŒã¹ã§éå§ããããµããŒãããã±ãŒãžã€ã³ã¹ããŒã©ãŒã䜿çšããŠã€ã³ã¹ããŒã«ãããŸãã ãã®ã€ã³ã¹ããŒã©ãŒã¯ãMATLABãªãã³ïŒã¢ããªã³->ããŒããŠã§ã¢ãµããŒãããã±ãŒãžã®ååŸïŒãŸãã¯supportPackageInstallerã³ãã³ãã䜿çšããŠã³ãã³ãã©ã€ã³ããéãããšãã§ããŸãã ãµããŒãããã±ãŒãžãã€ã³ã¹ããŒã«ããããArduinoãæ¥ç¶ã§ããŸãã
æç¶ã
- USBã±ãŒãã«ã䜿çšããŠArduinoãã³ã³ãã¥ãŒã¿ãŒã«æ¥ç¶ããŸãã
- MATLABã§ãArduinoãªããžã§ã¯ããåæåããŸãã
% Inputs: Port ID (from your computer), Arduino board type myArduino = arduino('COM4','uno');
ã¿ã¹ã¯2-MATLAB-Arduinoæ¥ç¶ã®ãã¹ã
ã»ãšãã©ã®ArduinoããŒããŸãã¯ã¯ããŒã³ã«ã¯ããã³13ã«LEDãçµã¿èŸŒãŸããŠããŸããããŒãã«LEDãããå Žåã¯ããã©ãã·ã¥ããã ãã§æ¥ç¶ã確èªã§ããŸãã
å èµLEDããªãå Žåã¯ãããžã¿ã«åºåïŒäŸïŒ13ïŒãšGNDã®éã®æµæã«çŽåã«æ¥ç¶ã§ããŸãïŒäžã®é ç·å³ãåç §ïŒã
æµæåšã®å®æ Œã¯LEDã®è²ã«ãã£ãŠç°ãªããŸãããèµ€ãšé»è²ã®LEDã«ã¯330ãªãŒã ã®æµæåšã§ååã§ãã LEDãæ¥ç¶ãããŠããå Žåã確èªããã«ã¯ä»¥äžã®ã³ãŒããå®è¡ããå¿ èŠããããŸãïŒLEDã5åç¹æ» ãããŸãïŒã
ã¿ã¹ã¯3-åè·¯ã®çµã¿ç«ãŠ
éèŠãªããšã¯ããã¹ãŠã®æµæåšãšåæ§ã«ããã©ãã¬ãžã¹ã¿ãæ¹åä»ããããŠããªãããšã§ã-æµããé»æµã®æ¹åã«ã€ããŠå¿é ããå¿ èŠã¯ãããŸããã ãŸãããã©ãã¬ãžã¹ã¿ã䜿çšããŠç°¡åãªåå§åšãäœæããå¿ èŠããããŸãã
- ãã¬ããããŒãã§ã¯ããã©ãã¬ãžã¹ã¿ãš10kãªãŒã ã®æµæãçŽåã«æ¥ç¶ããŸãã
- 10kΩæµæã®ããªãŒç«¯åãGND Arduinoãã³ã«æ¥ç¶ããŸãã
- ãã©ãã¬ãžã¹ã¿ã®ç©ºãåºåã5V Arduinoãã³ã«æ¥ç¶ããŸãã
ãã©ãã¬ãžã¹ã¿ãš10kΩæµæã®éã®é»å§ã枬å®ããã«ã¯ãåè·¯å ã®ãã®ãã€ã³ããã¯ã€ã€ãŒã䜿çšããŠArduinoã¢ããã°åºåã«æ¥ç¶ããå¿ èŠããããŸãã ãã®é垯ã¯é»äœå·®èšãšããŠæ©èœããŸãã
ã¿ã¹ã¯4-åè·¯ãšãã©ãã¬ãžã¹ã¿ã確èªãã
次ã®ã¹ãããã§ã¯ãå€åããç §æã«ãã©ãã¬ãžã¹ã¿ãæ£ããå¿çããããšã確èªããããã«ãåè·¯ããã§ãã¯ããŸãã
以äžã®ã¹ã¯ãªããã¯ãArduinoãã»ããã¢ããããArduinoã¢ããã°åºåãä»ããŠãã©ãã¬ãžã¹ã¿ãŒããé»å§æž¬å®å€ãååŸããæ¹æ³ã瀺ããŠããŸãã
ãã©ãã¬ãžã¹ã¿ãã«ããŒããããã¹ã¯ãªããã®å®è¡äžã«éšå±ã®ã©ã€ãããªã³/ãªãã«ããŠããã©ãã¬ãžã¹ã¿ãç §æã®å€åã«ã©ã®ããã«åå¿ãããã確èªããŠãã ããã
ãã©ãã¬ãžã¹ã¿ã¯ãå ¥å°å ã®åŒ·åºŠã«åå¿ããå¯å€æµææµæåšã§ãã å ãæããã»ã©ããã©ãã¬ãžã¹ã¿ã®æµæã¯äœããªããŸãã ãã©ãã¬ãžã¹ã¿ãšæµæãäžå®ã®æµæåšã®çŽåæ¥ç¶ãšãã圢ã®åçŽãªåå§åšã¯ãåè·¯ã®æµæã®å€åã枬å®ãããé»å§éäžã«å€æããŸãã MATLABã¯ãArduinoã¢ããã°åºåããé»å§ãèªã¿åãããã«äœ¿çšãããŸãã é»å§å€ãMATLABã«èšé²ããããšãããã°ã©ã ã¯åé»å§å€ã察å¿ããå ã¬ãã«ãšçžé¢ãããããšãã§ããŸãã åçŽãªãã©ãã¬ãžã¹ã¿ã§ããéåžžã«ææã§ãArduinoã¢ããã°åºåããå šé»å§ç¯å²ïŒ0ã5 VïŒãèªã¿åããŸãã MATLABã¯ãã¢ããã°ä¿¡å·ã10ãããã®ããžã¿ã«ä¿¡å·ã«å€æãããããããããã®é»å§ã®å€ã0.0049ãã«ãã«äžžããŠèªã¿åããŸãã
ã¿ã¹ã¯5-ã¢ãŒã·ã§ã³ãã£ãã¯ã¿ãŒã¢ã«ãŽãªãºã ã®ãã£ãªãã¬ãŒã·ã§ã³
ãã©ãã¬ãžã¹ã¿ã¯éåžžã«æ床ãé«ããããã¢ãŒã·ã§ã³æ€åºã¢ã«ãŽãªãºã ã«ã¯ãã£ãªãã¬ãŒã·ã§ã³ãå¿ èŠã§ãããã£ãªãã¬ãŒã·ã§ã³ã¯ãåšå²ã®ç §ææ¡ä»¶ãšã¢ãŒã·ã§ã³æ€åºåšã®äœ¿çšã·ããªãªã«äŸåããŸãã ããã°ã©ã ãããå ã¬ãã«ããåžæããæ床ã«èª¿æŽããå¿ èŠããããŸãã
ã¢ãŒã·ã§ã³æ€åºåšã®MATLABã³ãŒãïŒRun_Motion_Detector.mïŒã¯ã3çš®é¡ã®èšç®ããªã¢ã«ã¿ã€ã ã§é©çšããŠãçŸåšã®é»å§å€ãã¢ãŒã·ã§ã³ã«å¯Ÿå¿ããããšã決å®ããŸãã
åèšç®ã¯ãå°ããªããŒã¿ãŠã£ã³ããŠå ã®å€åãå®éåããç°¡åãªæ¹æ³ã§ãã åèšç®çµæã察å¿ãããããå€ãšæ¯èŒããŠããã®å€åãåãã瀺ããŠãããã©ãããå€æããŸãã çµæã®ãããããå€æ°ã®å¯Ÿå¿ãããããå€ãè¶ ããå ŽåãçŸåšã®é»å§å€ã¯ç§»åãšããŠæå®ãããŸãã
ãããå€å€æ°ã¯ãã¢ãŒã·ã§ã³æ€åºåšã®æ床ã«çŽæ¥é¢ä¿ããŠãããç¹å®ã®ç¶æ³ããšã«èª¿æŽããå¿ èŠããããŸãã
åèšã§ã3ã€ã®ã¡ãœãããå®è£ ãããŠããŸãã
- æšæºåå·®æ³â std ïŒ é»å§ ïŒã䜿çšããŠãããŒã¿ãŠã£ã³ããŠå ã®ãã¹ãŠã®ãã€ã³ãã®æšæºåå·®ãèšç®ããŸãã ããã¯ãé»å§æž¬å®å€ã®å·®ã®åºæ¬çãªèšç®ã§ãã
- å·®ã®æ¹æ³-sumïŒabsïŒ diffïŒ voltagesïŒïŒïŒã䜿çšããŠãé£ç¶ãããã€ã³ãéã®å·®ã®çµ¶å¯Ÿå€ã®åèšãèšç®ããŸãã ããã¯ãããŒã¿ãŠã£ã³ããŠå ã®é£ç¶ããããŒã¿ãã€ã³ãéã®æ£å³å€åã®èšç®ã§ãã
- åŸé æ³-ããŒã¿ãŠã£ã³ããŠã«æé©ãªç·åœ¢ãã¬ã³ãïŒåŸé ïŒãèšç®ããŸãã ãããã¯é»å§æž¬å®å€ãšããŠå¿ èŠã§ããã察å¿ããæé枬å®å€ã§ãã
ç §ææ¡ä»¶ã®èšè¿°çåæã®ããã«ãgetLightingConditioné¢æ°ã¯åé»å§æž¬å®å€ã§ã®å 匷床ãå®æ§çã«èšè¿°ããŸãã
ãã®æ©èœã¯ãã¢ãŒã·ã§ã³æ€åºåšã®èšçœ®å Žæã§ã®ç §æã¬ãã«ãèšè¿°ããããã«ãããã«å¿ããŠèª¿æŽããã³æ¡åŒµããå¿ èŠããããŸãã
ã¿ã¹ã¯6-èšé²ãããããŒã¿ã®åŠç
å€ãã®ã¢ãŒã·ã§ã³ã»ã³ãµãŒã¯ãç¹å®ã®ã¿ã¹ã¯ãèªååããããã«èšèšãããŠããããããªã¢ã«ã¿ã€ã ã®ã¢ãŒã·ã§ã³æ€åºå°çšã«èšèšãããŠããŸãã ããã¯ã空枯ãåºèã®èªåãã¢ã§äœ¿çšãããããŸãã¯ãªãã£ã¹ãã«ã®ã¹ã€ããã®åãã«ãã£ãŠäœåãããéåžžã«äžè¬çãªã¿ã€ãã®åãæ€åºåšã§ãã
ãã®äŸã䜿çšããŠäœæããããMATLABã䜿çšããŠäœæãããã¢ãŒã·ã§ã³æ€åºåšã¯ããªã¢ã«ã¿ã€ã ã®ã¢ãŒã·ã§ã³ãæ€åºã§ããã ãã§ãªããèšé²ã»ãã·ã§ã³å šäœã§ã»ã³ãµãŒèªã¿åãå€ãããã«èšé²ããã³åéã§ããŸãã
Run_Motion_Detectoré¢æ°ã¯ãããŒã¹MATLABã¯ãŒã¯ã¹ããŒã¹ã®analogVoltageããã³sensorTimeå€æ°ã®çã®ã¢ããã°é»å§å€ãšæéã«ãããªããèªåçã«ä¿åããŸãã
MATLABã«ä¿åãããšããã®ããŒã¿ãAnalyze_Motion_Detector_Dataé¢æ°ã«æž¡ããŠãããŸããŸãªåãæ€åºã¢ã«ãŽãªãºã ãå®è£ ããã³æ¯èŒã§ããŸãã 次ã®å³ã¯ãå®å šãªããŒã¿ã»ããã«å¯Ÿãã3ã€ã®ã¢ãŒã·ã§ã³æ€åºã¢ã«ãŽãªãºã ã®çµæã瀺ããŠããŸãã
èµ€ãããŒã¿ããŒã«ãŒã¯ã3ã€ã®æ¹æ³ãã¹ãŠã§åããšããŠç¹åŸŽä»ããããŸãã ããã€ãã®åãã¯ã¹ããŒãæ³ïŒç·ã®ããŒã«ãŒã§è¡šç€ºïŒã§ã®ã¿æ€åºãããä»ã®åãã¯æšæºåå·®æ³ããã³/ãŸãã¯å·®åæ³ïŒéã®ããŒã«ãŒã§è¡šç€ºïŒã§ã®ã¿æ€åºãããããšãéèŠã§ãã
ããã3ã€ã®æ¹æ³ãçµã¿åãããŠåããæ€åºãããšãMATLABã«å®è£ ãããåãæ€åºåšã¯å®å šãªåãèšé²ãäœæã§ããŸãã
ã¿ã¹ã¯7-éåã®åé¡
ããŒã¿åŠçã«MATLABã䜿çšãããšãã¢ãŒã·ã§ã³ã€ãã³ããåé¢ããããã€ãã®èšç®ããããã©ã¡ãŒã¿ãŒã«åŸã£ãŠãããããç¹åŸŽä»ããããšãç°¡åã§ãã
èšç®ã§ããããã€ãã®åçŽãªãã©ã¡ãŒã¿ãŒã¯æ¬¡ã®ãšããã§ãã
- ã¢ãŒã·ã§ã³ã€ãã³ããçºçããåã®å ã¬ãã«
- 移ååŸã®å ã¬ãã«
- ã¢ãŒã·ã§ã³ã€ãã³ãäžã®å¹³åå
- ã¢ãŒã·ã§ã³ã€ãã³ãã®åèšæé
Categorize_Motion_Eventsé¢æ°ã¯ãåã¢ãŒã·ã§ã³ã€ãã³ãã®ããã4ã€ã®ãã©ã¡ãŒã¿ãŒãèšç®ãããããã䜿çšããŠã¢ãŒã·ã§ã³ã¬ã³ãŒãã®é©åãªèª¬æãæäŸããŸãã
説æã¯ãã¹ãã¬ã¹ã°ã©ããããŒã¯ããããã«äœ¿çšãããŸãã ã¢ãŒã·ã§ã³ããŒã¯ã¯3æåã§æ§æãããã¢ãŒã·ã§ã³ã€ãã³ãã®äžã«ãããŸãã
- æåã®èšå·-ãã©ã¹ããã€ãã¹ããŸãã¯çå·ã¯ãã¢ãŒã·ã§ã³ã€ãã³ãã®è¿ãã§ã®å 匷床ã®å¢å ïŒ+ïŒãæžå°ïŒ-ïŒããŸãã¯äžå€æ§ïŒ=ïŒã瀺ããŸãã
- 次ã®æåã¯ç¹å®ã®åãã®ã¿ã€ãã瀺ãæåã§ã察å¿ããæåã®åãã®ã¿ã€ãã以äžã«ãªã¹ãããŸãã
- GïŒé£ç¶ç§»åïŒ20ç§ä»¥äžç §æãå€åããïŒ
- EïŒåãã匷åïŒæ°ç§ä»¥å ã«ç §æãå€åïŒ
- MïŒå ã®å€§ããªå€åïŒã€ãã³ãã®åšãã§çªç¶å ãå€åããïŒ
- CïŒçµã¿åããïŒã€ãã³ãäžããã³ã€ãã³ãåšèŸºã®å ã®å€åïŒ
- LïŒå ã®å€åïŒã€ãã³ãåšèŸºã®å ã®ããããªå€åïŒ
- TïŒäžæçãªåãïŒã€ãã³ãã®åšãã®å ã«å€§ããªå€åã¯ãããŸããïŒ
- 3çªç®ã®èšå·ïŒæå®ãããŠããå ŽåïŒã¯ãæåã®èšå·ãšåããã©ã¹èšå·ããã€ãã¹èšå·ãçå·ã䜿çšããŠãå移åã€ãã³ãäžã®ç §æã®å¹³åå€ãååŸã®å 匷床ã«ã©ã®ããã«é¢é£ãããã瀺ããŸãã
ç¹å®ã®çš®é¡ã®ã¢ãŒã·ã§ã³ã远跡ããå Žåã¯ãå¶éã匷åããŠããæ£ç¢ºãªåé¡ãååŸããããMATLABã®æ©æ¢°åŠç¿æ¹æ³ã䜿çšããŠãèªåæ§æãããã¢ãŒã·ã§ã³æ€åºåšãããã°ã©ã ã§ããŸãã
å®çšïŒãããŒã§ã®æŽ»åã®èŠ³å¯
åãæ€åºåšã¯ç §åºŠã®å€åã«ææã§ããããã远跡ããåããç §åºŠã®æ¥æ¿ãªå¢å ãŸãã¯æ¥æ¿ãªæžå°ã«å¯Ÿå¿ããå Žåã«æé©ã«æ©èœããŸãã
人ãæ€åºããã®ã«é©ããã·ããªãªã®1ã€ã¯ãæããç §æã®å£ãŸãã¯å æºã®è¿ãã®å»äžã«ã¢ãŒã·ã§ã³æ€åºåšãé 眮ããããšã§ãã 人ã ãå»äžãéããšãã圌ãã®åœ±ããã©ãã¬ãžã¹ã¿ã«èœã¡ããšãé»å§ã®æ¥æ¿ãªäœäžãèµ·ãããŸãã
äžã®ã°ã©ãã¯ãããŒã«ã¢ãŒã·ã§ã³æ€åºåšã«ãã£ãŠåéãããããŒã¿ã瀺ããŠããŸãã ã¢ãŒã·ã§ã³ã€ãã³ãã¯ããããŒã§åéãããããŒã¿ãåæããããã«ç¹å¥ã«å€æŽãããCategorize_Motion_Eventsé¢æ°ã®ããŒãžã§ã³ã䜿çšããŠåé¡ãããŸãã
ç §æã®å€åïŒMãŸãã¯LïŒãšããŠåé¡ãããã¢ãŒã·ã§ã³ã€ãã³ãã¯ãããŒã«ãééãã人ã ã瀺ããŠããªãå¯èœæ§ãé«ããããç Žæ£ãããå ŽåããããŸãã
ããã«ããã人ã®ééã瀺ããšæããã9ã€ã®ã€ãã³ããæ®ããŸãã ããã«åæãå®è¡ããŠã人ã®æ©è¡é床ãã°ã«ãŒãå ã®äººæ°ãèšç®ãã移åã€ãã³ãã®é·ãã調ã¹ãããšãã§ããŸãã
ãããã«
Arduinoã§ã¯ãã·ã³ãã«ãªã¢ãŒã·ã§ã³æ€åºåšãäœæãããMATLABã䜿çšããŠæ€åºåšãèŒæ£ããã¢ãŒã·ã§ã³ãåé¡ããŸããã
å®çšåïŒç«ãèšç·ŽããŠã¢ã«ãŽãªãºã ã磚ãããã®åŸãããæ·±å»ãªã³ã³ããŒãã³ãããŒã¹ã«è»¢éããŸãã