ãã®èšäºã§ããããäœã§ãããããããŠãããžã§ã¯ãã®äœæ¥äžã«äœãã§ãããã«ã€ããŠèªãã§ãã ããã

ç§ãã¡DenisTarasovãšDenisFilippovã¯ããã§ã«ãµã³ã¯ãããã«ãã«ã¯HSEã®å¿çšæ°åŠãšæ å ±åŠã®2幎çã§ããç§ãã¡ã¯YanFreidkinãšIvanChunarevãšäžç·ã«ãããžã§ã¯ãã«åãçµã¿ãŸãããç§ãã¡ã¯åãåŠæ ¡ããµã³ã¯ãããã«ãã«ã¯GFML No. 30ã§åœŒããšäžç·ã«å匷ããŸããã
11幎çã§ãã€ã³ãšã€ã¯ã³ã¯ãããããããžã§ã¯ããã¹ããŒãTã·ã£ããïŒæåã®åçã«ãããŸãïŒãæã£ãŠããŸãããã¢ã€ãã¢ã¯ããã§ãïŒTã·ã£ããåãããããã«ããŸããŸãªã»ã³ãµãŒïŒå é床èšããžã£ã€ãã¹ã³ãŒããªã©ïŒãåãä»ããããŠããŸããæ£ããå§¿å¢ãªã©ãèªã¿åã£ãããŒã¿ãã倿ã§ããææšããããŸãã圌ãã¯äœãšãããã€ãã®äŒè°ã«åå ãã忥åŸããããžã§ã¯ãã«åãçµã¿ç¶ããã€ããã§ããããããã°ã©ããŒãå¿ èŠã§ããããšã«æ°ã¥ããŸããã
JanãšIvanã®Tã·ã£ãã¯ãECGãèªã¿åããæ£ããå§¿å¢ã远跡ã§ããŸããããã®ããã«ãå€ãAVRãã€ã¯ãããã»ããµãåããéçºãã©ãããã©ãŒã ã§ããArduinoUNOã䜿çšãããŸãããããã«ã圌ãã¯ã³ãŒãã¡ã¢ãªã䜿ãæãããŸããããããžã§ã¯ãã®äœæ¥ã®æ°ããæ®µéã§ããã€ã¯ãã·ã¹ãã ã«ããã«å³ããèŠä»¶ã課ãå¿ èŠãããããšã«æ°ã¥ããŸããã
- ããå€ãã®ã»ã³ãµãŒãæ¥ç¶ããã«ã¯ãããé«ãåšæ³¢æ°ãããå€ãã®åšèŸºæ©åšãããé«éãªåšèŸºæ©åšãåããããã»ããµãŒãå¿ èŠã§ããã
- ããå€ãã®ãã©ãã·ã¥ã¡ã¢ãªãRAM;
- ããäœãã³ã¹ãã§;
- ãã€ã¯ãããã»ããµã®å®å®æ§ã
ãã€ã¯ãã·ã¹ãã ã倿Žããå¿ èŠããããšå€æããŸããã 2ã€ã®ãªãã·ã§ã³ããããŸããããã匷åãªAVRã·ãªãŒãºãã€ã¯ãã³ã³ãããŒã©ãŒïŒãã®å Žåã¯ArduinoïŒã䜿çšããããå¥ã®ã·ãªãŒãºã®ãã€ã¯ãã³ã³ãã¥ãŒã¿ãŒãã€ãŸãARMïŒãã®å Žåã¯STM32ïŒã«åãæ¿ããŸããå€§èŠæš¡ãªArduinoã³ãã¥ããã£ãšãã®ãã€ã¯ãã·ã¹ãã ã®äœ¿ããããã«ãããããããããã©ãŒãã³ã¹ãšã¡ã¢ãªãåªããŠãããããSTM32ã«ã¢ããã°ã¬ãŒãããããšã«ããŸãããçŸåšãSTM32f4 *ãã€ã¯ãã·ã¹ãã ã䜿çšããŠããŸãã

éå»ã®åŠæã§ã¯ã人ã®å§¿å¢ãšãã®åŠçã«é¢ããæ å ±ã®åä¿¡ãå®çŸããããšãç®æšã«èšå®ããŸããããããžã§ã¯ãã®èšç»ã¯æ¬¡ã®ãšããã§ããTã·ã£ããå é床èšããžã£ã€ãã¹ã³ãŒããåãä»ããããŠããããããå©çšããŠãããã®è§åºŠãååŸããŸããã»ã³ãµãŒããåä¿¡ããããŒã¿ã¯ãã€ã¯ãã³ã³ãã¥ãŒã¿ãŒã«éä¿¡ãããŸããããã§åŠçãããå¿ èŠã«å¿ããŠæ¯åã¢ãŒã¿ãŒã«é»å§ãå°å ããã人ããŸã£ããã«ãªãããã«åºæ¿ããŸãã Androidã¢ããªã±ãŒã·ã§ã³ã䜿çšããŠãå§¿å¢åŠçã®ãªã³ãšãªããåãæ¿ããTã·ã£ãããŠãŒã¶ãŒã«ãªã³ã¯ããŸãããã ããäžè¬çã«ãTã·ã£ãã¯ã¹ããŒããã©ã³ã«ã¢ã¯ã»ã¹ããªããŠãæ©èœããŸããã¢ããªã±ãŒã·ã§ã³ã§å§¿å¢åŠçããªã³ã«ããé»è©±ãå®¶ã«çœ®ãããŸãŸãTã·ã£ããçãŠæ£æ©ããããšãã§ããŸãããã®å ŽåãããŒã¿ã¯ãã€ã¯ãã³ã³ãã¥ãŒã¿ã§åŠçãããäœçœ®ãæ£ãããªããšæ¯åã¢ãŒã¿ãŒããªã³ã«ãªããŸãã

æåã®ã¹ããããLEDãç¹ç¯
ãã€ã¯ãã·ã¹ãã ã®ããã°ã©ãã³ã°ã®çµéšã¯ãªããSTMã§ã»ã³ãµãŒãšãã³ãåæåããŠå®£èšããã®ã¯é·ããŠé£ããããšãèªã¿ãŸããããããã£ãŠãHALã©ã€ãã©ãªãšSTM32CubeMXã䜿çšããŠé«ã¬ãã«ã®æœè±¡åã䜿çšããŸãããSTM32CubeMXã¯ãã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããŠãã€ã¯ãããã»ããµããŒããæ§æããHALã©ã€ãã©ãªã䜿çšããŠé©åãªã³ãŒããçæããããŒã«ã§ãããŸãããã€ã¯ãããã»ããµããã°ã©ãã³ã°ã§æãåºæ¬çãªããšïŒããããŒã¯ãŒã«ããã¬ãã«ïŒãå®è¡ããããšã«ããŸãããããã«ãããLEDãç¹ç¯ããŸãã

STM32CubeMXã€ã³ã¿ãã§ãŒã¹ã¯ã
éçºãç¡æã§ç°¡åã«ã¯ãã¹ãã©ãããã©ãŒã ãã ããIDEã®ããã®é·ãæ€çŽ¢ã®åŸãæã ã¯ã«èœã¡çãSTM32CubeIDEã

ã€ã³ã¿ãŒãããäžã®STM32ããã°ã©ãã³ã°ã«é¢ããæ å ±ãããªãããããïŒç¹ã«Arduinoãšæ¯èŒããŠïŒãLEDããªã³ã«ããã¿ã¹ã¯ã¯æãç°¡åãªã¿ã¹ã¯ã§ã¯ãªãããšã倿ããŸãããå°æ¥çã«ã¯ããã®èŠå ããããžã§ã¯ãã®äœæ¥ãè€éã«ããŸããã
ãã€ã¯ãã³ã³ãããŒã©ãŒãã¡ãŒã ãŠã§ã¢
LEDã®ç¹ç¯æ¹æ³ãåŠã³ããã€ã¯ãã·ã¹ãã ã®äžè¬çãªããã°ã©ãã³ã°æ¹æ³ãçè§£ããåŸããã€ã¯ãã³ã³ãã¥ãŒã¿ãŒã®ãã¡ãŒã ãŠã§ã¢ã®åºç€ãæžãå§ããŸãããããã«åºã¥ããŠãå°æ¥ããŸããŸãªæ©èœã远å ã§ããŸãããŸããã»ã³ãµãŒãåæåããã»ã³ãµãŒããæ å ±ãåãåãæ¹æ³ãåŠã¶å¿ èŠããããŸãããã»ã³ãµãŒããã¯ããžã£ã€ãã¹ã³ãŒããšå é床èšãšããIMUã»ã³ãµãŒã«ããå°éã§ããŸããã§ãããMPU-6050ã»ã³ãµãŒããããŸããã

ãã€ã¯ãã¡ãŒã¿ãšã®éä¿¡ã¯ãI2Cãã¹ãä»ããŠè¡ãããŸããHALã©ã€ãã©ãªã®ãããã§ãããŒã¿è»¢éã¯ç°¡åã§ããèªã¿åã/æžã蟌ã¿ãè¡ãã«ã¯é¢æ°ãåŒã³åºãå¿ èŠããããŸããã³ãŒãããå é床èšããããŒã¿ãèªã¿åãäŸïŒ
HAL_I2C_Mem_Read(i2c_handle, addres, ACCEL_XOUT_H_REG, 1, buffer, 6, 1000)
ãã®é¢æ°ã¯ãç®çã®ãã¹ã®ãã³ãã©ãŒããã®äžã®ã»ã³ãµãŒã®ã¢ãã¬ã¹ãèªã¿åãå¿ èŠã®ããã¬ãžã¹ã¿ãŒïŒã¬ãžã¹ã¿ãŒã¯ã»ã³ãµãŒã®ããã¥ã¡ã³ãã«æžã蟌ãŸããŸãïŒãã¬ãžã¹ã¿ãŒã®ãµã€ãºãæžã蟌ã¿çšã®ãããã¡ãŒããããã¡ãŒã®ãµã€ãºãããã³ã¿ã€ã ã¢ãŠãïŒå¿çã®åŸ æ©ã«è²»ããããæéïŒãããªç§åäœã§åãåããŸããé²é³æ©èœã«ãåæ§ã®ç¹åŸŽããããŸãããžã£ã€ãã¹ã³ãŒãã®æž¬å®ç¯å²ã®èšå®äŸïŒ
HAL_I2C_Mem_Write(i2c_handle, addres, GYRO_CONFIG_RE G, 1, &Data, 1, 1000)
Bluetoothã¢ãžã¥ãŒã«ïŒHC-05ããã³HC-06ïŒããããŸããããç¹å¥ãªæäœã¯å¿ èŠãããŸããã§ãããæ¥ç¶åŸããŠãããŒãµã«éåæãã©ã³ã·ãŒããŒïŒUARTïŒãä»ããŠããŒã¿ãéä¿¡ã§ããŸããããã¯ãä»ã®ããã€ã¹ãšã®éä¿¡ãå¯èœã«ãããã€ã¯ãã³ã³ãã¥ãŒã¿ãŒå ã®ç¹å¥ãªããã€ã¹ã§ãããã®ããã«ãHALã¯I2Cãšåæ§ã®æ©èœãæäŸããŸãããããã°äžã«ã¡ãã»ãŒãžã衚瀺ããããããããã«ããããã®äžã«å°ããªã©ãããŒãäœæããŸããã

HC-06
次ã«ãã»ã³ãµãŒãåæåããã¡ã€ã³ããã°ã©ã ã«ãŒããéå§ããã¢ããªã±ãŒã·ã§ã³ããã®èŠæ±ãåŠçããControllerã¯ã©ã¹ãäœæããŸããããªã¯ãšã¹ãã¯ãã¥ãŒã«ä¿åãããBluetoothçµç±ã§åä¿¡ãããå²ã蟌ã¿ã¡ã«ããºã ã䜿çšããŠåä¿¡ãããŸããå²ã蟌ã¿ã¯ããœãããŠã§ã¢ãŸãã¯ããŒããŠã§ã¢ããã®ä¿¡å·ã§ããã峿ã®å¯Ÿå¿ãå¿ èŠãªã€ãã³ãã®çºçã«ã€ããŠããã»ããµã«éç¥ããŸããå²ã蟌ã¿ã¡ã«ããºã ã¯ããšããããéèŠãªã€ãã³ãã«å¯Ÿããã·ã¹ãã ã®è¿ éãªå¿çã®ããã«å¿ èŠã§ãã
ã³ã³ãããŒã©ã¯ãåºæ¬ã¯ã©ã¹BaseFuncã䜿çšããŠTã·ã£ã颿°ã®ãªã¹ããä¿æããŸããçŸæç¹ã§ã¯ãã¹ãã£åŠçãããããŸããããå°æ¥ãæ°ããæ©èœã远å ãããšãã¯ãåå«ã¯ã©ã¹ãäœæããŠé¢æ°ã®ãªã¹ãã«è¿œå ããã ãã§ååã§ããã³ã³ãããŒã©ã¯æ¬¡ã®ããã«ãªããŸãã
class Controller {
std::vector<std::unique_ptr<IMU>> IMUSensors; //
std::queue<Request> reqQueue; //
std::vector<std::pair<std::unique_ptr<BaseFunc>, bool>> mithrilFuncs; //
//< , >
Controller();
void Run(); //
};
ãŸããIMUã»ã³ãµãŒãããããè§ãååŸããã«ã¯ãç¹å¥ãªãã£ã«ã¿ãŒã远å ããå¿ èŠããããŸãããããã¯ãå é床èšãšãžã£ã€ãã¹ã³ãŒãããã®ããŒã¿ã«åŸã£ãŠãæ£ããååè§ãæäŸããŸããååã«å¹ççã§å®è£ ãç°¡åãªãããè£å®ãã£ã«ã¿ãŒã䜿çšããããšã«ããŸããããã®ãã£ã«ã¿ãŒãå®è£ ãããšããã¯ã©ãŒã¿ããªã³ã®æ°åŠãæžããŸããããã¯ãã«ã䜿çšããããšã¯å¯èœã§ãããããã¹ãããå¥ã®ãã£ã«ã¿ãŒã§ã¯ã©ãŒã¿ããªã³ãå¿ èŠã ã£ããããçŸåšã¯ã¯ã©ãŒã¿ããªã³ã䜿çšããŠããŸãã
ãããã¿ã€ãã«ã¯äœããããŸãã
ãã€ã¯ãæ³¢ã®ããã°ã©ãã³ã°ãçè§£ãããã®ãã¡ãŒã ãŠã§ã¢ã®åºæ¬ãæžããåŸãå§¿å¢åŠçãéå§ã§ããTã·ã£ãã®ãããã¿ã€ããå¿ èŠã§ããããããŠã³ãããŠã€ã«ã¹ãä»å ¥ããŸãã...
ãã³ãããã¯ã®ãããç§ãã¡ã¯4人ã§Tã·ã£ãã«äŒã£ãŠäœæ¥ããããšãã§ããªããªããå®éã«ã¯JanãšIvanã«è¡ãæ©äŒããªãã£ãã®ã§ããããã¿ã€ãã«åé¡ãçºçããå Žåã¯ããã«è§£æ±ºã§ããŸãããJanãšIvanã¯ãã¯ã€ã€ãŒãåŒã£åŒµãããšã§ã»ã³ãµãŒãé 眮ã§ããTã·ã£ãã®ãããã¿ã€ããéçºããŸãããããã«ãããã»ã³ãµãŒã®ééãšåŒµåãæž¬å®å€ã«åœ±é¿ãäžããªãããã«ãªããŸãã圌ãã¯ç§ãšããã¹ã«Tã·ã£ãã®ã³ããŒãšé»æ°ããŒããã¯ã€ã€ãŒãªã©ãéã£ãŠãããã®ã§ãç§ãã¡èªèº«ãèµ·ããããæ éããªããããšãã§ããŸããã
Androidã¢ããª
ç§ãã¡ã¯ãBluetoothãä»ããŠãã€ã¯ãããã»ããµãšéä¿¡ããæ©èœãåããAndroidã¢ããªã±ãŒã·ã§ã³ãäœæãããšããç®æšãèšå®ããŸããããã€ã¯ãããã»ããµã®ããã°ã©ãã³ã°ã®å Žåãšåæ§ã«ãAndroidçšã®ã¢ããªã±ãŒã·ã§ã³ãäœæããçµéšã¯ãããŸããã§ããããAndroidã«é¢ããæ å ±ãèŠã€ããã®ã¯STM32ãããã¯ããã«ç°¡åã§ããããšãããããŸãããStepik.orgã®ã³ãŒã¹ïŒã³ãŒã¹ã¯æ¬åœã«è¯ãã§ãïŒã䜿çšããŠåºæ¬ãåŠã³ãŸãã ãããã§ã¯ãæåã«Kotlinèšèªã®åºæ¬ãåæããæ¬¡ã«Androidã®ããã°ã©ãã³ã°ã«ã€ããŠèª¬æããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®æåã®ããŒãžã§ã³ã§ã¯ãBluetoothãä»ããŠãã€ã¯ãã³ã³ãããŒã©ãŒã«æ¥ç¶ããããã«ã¡ãã»ãŒãžãéä¿¡ããããšãã§ããŸãããææ°ããŒãžã§ã³ã¯æåã®ããŒãžã§ã³ãšå€§å·®ãããŸããïŒã¢ããªã±ãŒã·ã§ã³ã®äœæã¯ç§ãã¡ã«ãšã£ãŠåªå äºé ã§ã¯ãããŸããã§ããïŒïŒãã£ãªãã¬ãŒã·ã§ã³ãéå§ããæ£ããå§¿å¢ã远跡ããæ©èœããªã³/ãªãããããã®ãŠã£ãžã§ããã远å ãããŸããã
ã¢ããªã±ãŒã·ã§ã³ã®æåã®åäœããŒãžã§ã³ãäœæããã®ã«çŽ6æéããããŸãããç§ãã¡ã¯ãçè«ã®ç ç©¶ã«ããå€ãã®æéãè²»ãããŸããããã®ãããªåçŽãªã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒãã¯çŽ400è¡ããããŸããããããã¯å¬ããé©ãã§ãããããã«ã確ãã«ããã¯ããã³ã³ãã¯ãã«æžãããšãã§ããŸãã
ããã²ãŒã·ã§ã³ã¡ãã¥ãŒ
Bluetoothæ¥ç¶çš
ã¿ãããŒã¿äº€æçšã¿ã
å§¿å¢æ²»ç
å§¿å¢ãåŠçãã2ã€ã®ç°ãªãæ¹æ³ãèãåºããŸãããããŒã¿åææ¹æ³ãããå Žåãšãªãå Žåã§ãã
ããŒã¿åææè¡ã䜿çšããå§¿å¢æ²»ç
以åã®ããŒãžã§ã³ã§ã¯ãäººã®æ£ããå§¿å¢ã«ã€ããŠæ±ºå®ãããããŒã¿ã«ãããšãTã·ã£ãã«ã¯ã»ã³ãµãŒã1ã€ãããããŸããã§ãããããã¯ãã»ã³ãµãŒã®å転è§åºŠã«äŸåããŠããŸãããæããã«ãèäžã®å€§éšåã®äœçœ®ã«é¢ããããŒã¿ããªãããããã®ã¢ãããŒãã§ã¯é«ç²ŸåºŠãæäŸã§ããŸãããç§ãã¡ã®ããŒãžã§ã³ã«ã¯4ã€ã®ã»ã³ãµãŒããããŸãããããã®æž¬å®å€ãã©ã®ããã«è§£éããããçè§£ããããšã¯éåžžã«å°é£ã§ãã£ããããããŒã¿åææ¹æ³ã«é Œãããšã«ããŸããããããã¿ã€ãã®åé¡ã«ãããç· ãåããŸã§ã«å€ãã®ããšãè¡ãããªãã£ãã
ãŸããããŒã¿ãèªåã§åãåºããŸãããåã»ã³ãµãŒããã®ãããè§ãšå é床èšã®èªã¿åãå€ã§ããçŽ2000åã®æž¬å®å€ãåŸãããŸãããçŽ1000åã®æ£ãš1000åã®è² ã§ããã»ã³ãµãŒã®æ§æã¯æ¬¡ã®ãšããã§ãïŒ2ã€ã®ã»ã³ãµãŒãè©ç²éªšã«ããã2ã€ãèæ€ã«ãããŸãïŒã

æ®å¿µãªãããäž¡æ¹ã®ãããã¿ã€ãã§ã4ã€ã®ã»ã³ãµãŒã®1ã€ã«åé¡ããã£ããããã»ã³ãµãŒçªå·3ã¯äœ¿çšãããŸããã§ãããããããçŽæçã«é 眮ããŸãããè©ã®åãšéŠã®è¿ãã®è骚ã®äœçœ®ã远跡ãããã£ãã®ã§ãã


2次å 空éãžã®ããŒã¿æåœ±ã
ããã§ã¯ãæ£ããå§¿å¢ã®é åãç·è²ã§åŒ·èª¿è¡šç€ºããã誀ã£ãå§¿å¢ã®é åãèµ€è²ã§åŒ·èª¿è¡šç€ºãããŠããŸããäžæ¬¡å 空éãžã®æåœ±ã§ã¯ãæ£ããäœçœ®ãšééã£ãäœçœ®ãç°¡åã«åé¢ãããŠããããšãããããŸãã

次ã«ãäºæž¬ããã¢ãã«ãéžæããå¿ èŠããããŸãããç·åœ¢ååž°ããŸãã¯ããããã®ãªããžä¿®æ£ãç·åœ¢ã«ãŒãã«ãåãããµããŒããã¯ãã«ãã·ã³ïŒSVMïŒãããã³æ±ºå®ããªãŒã詊ãããšã«ããŸãããéžæã¯ãã¢ãã«ããã€ã¯ãããã»ããµã«è»¢éããã®ãç°¡åã§ããããã§ããæåã®2ã€ã¯ç¹å®ã®æ°ã®ä¿æ°ã§èšè¿°ãããåŸè ã¯äžé£ã®if-elseæ¡ä»¶ã§ããã¢ãã«ã¯scikit-learnã©ã€ãã©ãªããååŸãããŸãããç·åœ¢ååž°ãã£ãªãŒãªãŒããŒã®äŸïŒ
bool isPostureCorrect =
(a11 * deviceAngles1[0] + a12 * deviceAngles1[1] + a13 * deviceAngles1[2] +
g11 * deviceGravity1[0] + g12 * deviceGravity1[1] + g13 * deviceGravity1[2] +
a21 * deviceAngles2[0] + a22 * deviceAngles2[1] + a23 * deviceAngles2[2] +
g21 * deviceGravity2[0] + g22 * deviceGravity2[1] + g23 * deviceGravity2[2] +
a41 * deviceAngles3[0] + a42 * deviceAngles3[1] + a43 * deviceAngles3[2] +
g41 * deviceGravity3[0] + g42 * deviceGravity3[1] + g43 * deviceGravity3[2]) > bias;
å€a ??ãg ??ããã€ã¢ã¹ã¯ããã¬ãŒãã³ã°ãããã¢ãã«ããååŸãããŸãã
ãã¹ããµã³ãã«ã®ããŸããŸãªæ§æã®ã¢ãã«ã®ç²ŸåºŠã¯ã次ã®è¡šã«ç€ºãããŠããŸãã

ãã¹ããµã³ãã«ãµã€ãºã¯ããã¹ãŠã®ããŒã¿ã®33ïŒ ã§ãããäºæž¬ãé©åãããããããã®ãããªé«ãã¬ãŒãã¯ããŒã¿éãå°ãªãããšãåå ã§ããå¯èœæ§ããããŸãã
å®éã«ã¯ããã¹ãããã¢ãã«ïŒæ±ºå®ããªãŒãšäžéšã®ç·åœ¢ååž°æ§æïŒã¯ããŸãããŸãæ©èœããªãã£ããããããé©åã«åäœããããã«å°ã調æŽããå¿ èŠããããŸãããæé«ã®ãªããžã¯ãã€ã¹ãã¢ã³ã°ã«ã§èšç·Žããããã®ã§ãã

決å®ããªãŒã®äŸã
ãã³ãããã¯ã§ããããã¿ã€ãã2ã€ãããªããããããŸããŸãªäººãã倧éã®ããŒã¿ãåéã§ããŸããã§ãããããã¯ã¢ãã«ã«ãšã£ãŠã¯æªãããšã§ãããŸããçŸåšã®ãœãªã¥ãŒã·ã§ã³ã§ã¯ãæ£ããå§¿å¢ã決å®ããããã«1ã€ã®æž¬å®å€ã®ã¿ã䜿çšããŠããŸãããããã¯ãã¡ããååã§ã¯ãããŸããã人ã¯ç©ãããããã ãã§ãTã·ã£ããæ¯åãå§ããŸãããã®ãããªåé¡ã解決ããã«ã¯ãäžé£ã®å ¥åããŒã¿ããäºæž¬ãè¡ãã¢ãã«ã詊ãå¿ èŠããããŸããããã®ãããªã¢ãã«ã¯ãçŸåšã®ãœãªã¥ãŒã·ã§ã³ã®ããã«ãã€ã¯ãã³ã³ãã¥ãŒã¿ãŒã«è»¢éããã®ãããå°é£ã«ãªããŸãã
ããŒã¿åææ¹æ³ãªãã®éå§¿å¢
MLãªãã§å§¿å¢ãåŠçããããã«ãå§¿å¢ã«é¢ããå€ãã®å»çèšäºãæåã«ç ç©¶ããå¿ èŠããããŸãããæž¬å®ããŠæšæºãšæ¯èŒã§ããå®éçç¹æ§ã«é¢ããæ å ±ãã€ãŸããéåžžã®ãå€ã®ç¯å²ãç¥ãããšãæ¬åœã«æãã§ããŸããã
ç§ãã¡ã¯å€ãã®èšäºãç ç©¶ããŸãããããããã®ã»ãšãã©ã¯å®éçç¹æ§ãæ¬ ããŠãããããŸãã¯ç¹æ§ãç§ãã¡ãèªç±ã«äœ¿ããææ®µã§æž¬å®ããããšãã§ããŸããã§ãããç§ãã¡ã«ãšã£ãŠæçšã§ããããšã倿ããèšäºã¯1ã€ã ãã§ããïŒã¡ãªã¿ã«ã人éã®å§¿å¢ã«é¢é£ããä»ã®å€ãã®ç ç©¶ããããåç §ããŠããŸãïŒãããã¯ããŸããŸãªè§åºŠã説æãããã®å€ã䜿çšããŠæ£ããå§¿å¢ã決å®ããããšãã§ããŸãã

J. Canales et alïŒ2010ïŒã«ããæ²»çåïŒAïŒããã³æ²»çåŸïŒBïŒã®å€§ãã€ç æ§é害ã®ãã人ã ã®å§¿å¢ã¹ã³ã¢
æ®ãã¯ããããã®è§åºŠã枬å®ããããšã ãã§ããæž¬å®ããã«ã¯ãããã€ãã®é¢æ°ã䜿çšããŠèæ€ã®éåžžã®äœçœ®ãæŠç®ããã°ã©ãäžã®å¿ èŠãªãã€ã³ããååŸããŠããããããããŸããŸãªè§åºŠã®å€ãæ€çŽ¢ã§ããŸãã


ã»ã³ãµãŒæ§æ
ã»ã³ãµãŒã¯èéªšã«æ²¿ã£ãŠé 眮ãããŠããŸããããããé 眮ãããŠãããã€ã³ãã§ãæ¥ç·ã®åŸæè§ãååŸã§ãããããå°é¢æ°ã®å€ïŒæ¥ç·ã®åŸæè§ã®æ¥ç·ã«çããïŒãèŠã€ããããšãã§ããŸããèéªšãæ²ãããšãç¹ã®åº§æšã¯åžžã«å€åããŸãããã®ãããäŸãã°ãšã«ããŒãè£éãé©çšããããšã¯äžå¯èœã§ãããã®å Žåãæ²ç·ã«æ²¿ã£ããã€ã³ãéã®è·é¢ã¯æ¢ç¥ã§ãããç©ççã«æž¬å®ã§ããŸããæåã¯ããã®ããŒã¿ã䜿çšããŠãããšãã°å€é åŒãªã©ã®æ»ãããªé¢æ°ãèŠã€ããããšããŸããããããã第äžã«ãããã¯å°é¢æ°ãç¥ãããŠããããå€ãã®ãã€ã³ããå¿ èŠãšãã第äºã«ãåé¡ã¯æ°åŠçããã³èšç®ã®èгç¹ããéåžžã«åçŽã§ã¯ãããŸããããããã£ãŠãéçºã®ãã®æ®µéã§ã¯ãããŒã¹ã¯ã€ãºç·åœ¢é¢æ°ã䜿çšããŠèæ€ãè¿äŒŒããããšã決å®ãããŸããã

ãã®çµæã枬å®ããããšãã2ã€ã®è§åºŠïŒèšäºã®ç»åã®è§åºŠ3ãš4ïŒã®ãã¡ã1ã€ã¯æ£ããæž¬å®ããããã1ã€ã¯æ£ããæž¬å®ãããŸããã§ãããè§åºŠ3ã®å€ã¯ãèšäºã«ç€ºãããŠããéåžžã®å€ãšäžèŽããŠããŸããè§åºŠ4ã¯ãèšèšäžã®ç¹åŸŽã®ããã«æž¬å®ãäžååã§ããããããããåé¡ã¯Tã·ã£ããäœã«ãŽã£ãããšãã£ããããªãå Žæããããšããäºå®ã«ãããŸãããã®ãããæ¥ç·ã®åŸæè§åºŠãæ£ããèšç®ãããŸããã
ãã¢ãããª
Tã·ã£ããšã¢ããªã®åäœã®ãã¢ãããªã¯æ¬¡ã®ãšããã§ãã
å§¿å¢åŠçãæåã«å§ãŸããæ¬¡ã«æ ¡æ£ãå§ãŸããæ¬¡ã«æ£ããå§¿å¢ã«é¢ããã¡ãã»ãŒãžãå±ãå§ããŸãã
çµè«
ãã®çµæãå§¿å¢ã2ã€ã®æ¹æ³ã§åŠçããAndroidåãã®ããã°ã©ãã³ã°ãåŠçããAndroidåãã®ã¢ããªã±ãŒã·ã§ã³ãäœæããåæã«STM32ãã€ã¯ãã³ã³ãã¥ãŒã¿ãŒã®ããã°ã©ãã³ã°ã«ã€ããŠå°ãçè§£ããããšãã§ããŸããã
ãã¡ãããç§ãã¡ã®ã·ã£ãã¯å®æãããšã¯èšããŸãããããããŸã§ã®ãšãããå幎床ã®1åŠæã«åãçµãã§ããŸããããã¹ãããšã¯ãŸã ãããããããæ¥å¹Žãç¶ããäºå®ã§ãïŒ
ã§ã¯ãå°æ¥ã®èšç»ã«ã€ããŠå°ã説æããŸããç§ãã¡ã欲ããïŒ
- èæ€ã«é¢é£ããè§åºŠãããæ£ç¢ºã«æž¬å®ãã颿°ã䜿çšããŠãèæ€ã®è¿äŒŒã調æŽããŸãã
- å§¿å¢åŠçã®ããã«ããã«ããŒã¿ãåéããŸããçŸæç¹ã§ã¯ãããŒã¿ã¯2人ããã®ã¿ååŸãããŠããããããã¿ã€ãã¯ãããã«ç°ãªããŸãã
- æ©èœãæ¡åŒµããŸããããšãã°ãå¿é»å³ã®èšé²ã远å ããŠãããŸããŸãªç æ°ãç°åžžãªã©ãç¹å®ããããã«äœ¿çšã§ããããã«ããŸãã
- ã¢ããªã±ãŒã·ã§ã³ãæ¹åããïŒãã®æ©èœãæ¡åŒµããŸããããšãã°ãçµ±èšãèšç®ããåæããã°ã©ããäœæããŸãã
- ããåžå Žæ§ã®ããå€èгãæã€Tã·ã£ãã®ãããã¿ã€ããäœæããŸããçŸæ®µéã§ã¯ããããã¿ã€ãã¯æ©èœã®ãã¹ãã®ã¿ãç®çãšããŠããŸããããã«äœ¿ããTã·ã£ãããŸãšãããã§ãã
ãããžã§ã¯ãã®githubãžã®ãªã³ã¯ïŒ
github.com/DT6A/Mithrilãã€ã¯ãããã»ããµãã¡ãŒã ãŠã§ã¢ã
github.com / DT6A / MithrilAppãŒandroidã¢ããªã±ãŒã·ã§ã³ã
github.com / DT6A / MithrilDataãŒã¯ããŒã¿ãåŠçããŸãã