ã¯ãã¶ã帰éä¼ç»--ãªã«ã¨ãªããµâã¤â--ããã®ï¼
ã¯ãã¶ã帰éã»æ¬ä½ä¾é¤ä¼ç»ããªã«ã¨ãªããµ'ã¤'ãããã®2ã¯ãå¯è¦å éä¿¡çã¬ã¼ã¶ã¼éãç«ã§ããâ»ããªã«ã¨ãªããµã¤ãã¡ãã»ã¼ã¸ãªã©ã«ã¤ãã¦ã¯ããã®ï¼ã御覧ä¸ããã
ä»åã¯ãã¯ãã¶ãåã«æ¬å½ã«å±ãã¨ã°ããã«ãã¬ã¼ã¶ã使ã£ã¦å¤èª¿ããå¯è¦å
éä¿¡ã¡ãã»ã¼ã¸ãéã£ã¦ã¿ã¾ãã
ï¼åã«é©å½ãã¼ã¿ã®éãã£ã±ãªãã§ãå¯è¦å
éä¿¡ã¨ããããã¯ãéãç«ã§ããã»ã»ï¼
ï¼ãªããArduinoã®å®å®ã¢ãé»åå·¥ä½ã¨ããã¨ãã»ã»ã»ä¾ãã°ãæ ªå¼ä¼ç¤¾é³¥äººéãã(@hisashin)ã®ããä¸çæå°è¡æãã©ããã³ã°ã·ã¹ãã ãã¨ããç´ æ´ããããã®ãããã¾ãããå½ãã¿ã¯ãããã¨æ¯ã¹ã¦ã大人ããã¡ãã¡ããã°ã«æ¸ããã¿ã¨ãã¦ã©ããªã®ï¼ã¨ããã¬ãã«ã§ãããã»ã»ã»ã»ã»ãªã«ã¨ãããã¯ãã¯ãã¶ãã®å¸°éã«å
ãã¦ã容赦ããï¼
ããã¾ã§ããæ°æã¡ã®è¡¨åºã®å人çåå¼ã§ãã
è¨è¨æ¹éï¼
- çºä¿¡ã®ã¬ã¼ã¶ã¯æå ã«ãã£ã1mW 650nm ã®èµ¤è²ã¬ã¼ã¶ãã¤ã³ã¿
- å¶å¾¡ã¯Aruduino Dumilanoveã
- ï¼ãã®éJapaninoè²·ã£ãã°ããã ãã©ã»ã»ã»Arduinoã§ï¼
- çç±ï¼
- Japaninoã®é»æ°ä»æ§ï¼ãã³ã® IOH/Lã¨ãï¼ã¡ãã£ã¨èª¿ã¹ãã®ã§ãããå ·ä½çæ°å¤ãããã«ã°ã°ãããArduinoã¯ããã³ã®é»æ°ä»æ§ãæå ã«ãã£ãã®ã§ã
- ãã¨ãã¿ã¤ãå²ãè¾¼ã¿ã®MsTimerã©ã¤ãã©ãªãArduinoã§ã¯ä½¿ã£ãã¨ãããã®ã§ï¼Japaninoã§ã使ããã¨ã¯æãã®ã§ãã確èªããã©ãã ã£ãã®ã§ï¼
- ã¶ã£ã¡ãããå¯è¦å éä¿¡ã®å¤èª¿æ¹å¼ã¨ã¨ã³ã³ã¼ãã¯é©å½ãï¼ã¾ããåå¼çéä¿¡ãªãã§ãéãç«ãªãã§ã»ã»ï¼
ã§ã¯ã¾ããè¨è¨ç¢ºèªã
Arduinoã®ãã¸ã¿ã«I/Oãã³ã¯ãï¼ãã³ãããï¼ï¼ï½Aã¾ã§å¼ã£å¼µããã®ã§ãã¬ã¼ã¶ã®é»æµãååä½ããã°ç´æ¥I/Oãã³é§åããããã§ããã¨ãããã¨ã§ãã¾ã測ã£ã¦ã¿ã¾ããã
ããã17ï½Aãï¼é»æºã¯åï¼äºæ¬ã®ï¼Vï¼ã¨ã«ããOKããããã§å¤ã«ã¹ã¤ããã³ã°åè·¯ãªãã§å¶å¾¡ä¿¡å·ã黿ºãã®ãã®ã¨ãã¦å¶å¾¡ãã¡ããããã§ãã
I/Oåºåã¯ï¼Vã ãããä¿è·ä½æµæã§ããªããã£ããã¨ãï¼Vãããã¾ã§ã«è½ã¨ãã°ããã ããã¨ã
ã¾ããå½å®¶ã¯ãããªã«é»æ°å·¥ä½ä½å¶ãªãã®ã§ãé»å§ããããã«ä½¿ããã¤ãªã¼ãããªãããLEDãææã¡ã®ã¯å
¨é¨ãéãç½ã§ï¼.xVããããã°ã£ããã
ãªããåºæ¿ãè¦ãéãã§ã¯ãã¬ã¼ã¶ãã¤ã³ã¿ã®åºæ¿ã«å½ç¶é»æºåè·¯ãããã容éåããã£ã¦ã黿ºã¨ããç«ã¡ä¸ããé度ã®åé¡ããã¾ãããä»åã¯åé¡ãªãã§ããéãç«ã§ããããï¼å®éã®ã¨ãããåã«ï½ï½ï½ï½ç¨åº¦ã¾ã§ã®ãå¥ã®ã¬ã¼ã¶ã¢ã¸ã¥ã¼ã«ã®å¤èª¿ã¯ãã£ããã¨ãããã¾ããããã®ç¨åº¦ã®é度ã§ã¯ä¸è¬çãªé»æºåè·¯ã®ç«ã¡ä¸ããã¯åé¡ããã¾ããã§ããï¼
ãã¦ãããã§ã¯ãã£ãããã¬ãããã¼ãã«çµãã§åä½å®é¨ã
ä¿è·æµæã®åä½ç¢ºèªãã¬ã¼ã¶ã®å¶å¾¡ãã¼ããï¼ï¼pinã¨ãã¦ãHåºåãã¦ãã¬ã¼ã¶ONã®ç¶æ
ã確èªã
æµæãï¼ï¼ï¼Î©ã«ããã¨ãã§ã端åé»å§ï¼Vã¡ããå¼±ã§ãæµæã®é»å§éä¸ã¯ï¼.75Vã§ãããã¤ã¾ãã¬ã¼ã¶ã¢ã¼ã¸ã¥ã«ã«ï¼ï¼ï¼V ãããããã§OKã¨ãã¾ããããï¼ãã£ãã®ç¶æ
ã§ãåä½é»æµãï¼ï¼ï½Aãï¼ï¼ï¼Î©ã§1.75Véä¸ã«ãªã£ã¦ãã®ã§ãã ãããè¨ç®éãã§ãã
ããªããåå¿è
ã®æ¹ã¯å®é»æµé§åããã¤ã¹ã®é»å§åãã«æµæä½¿ãã£ã¦ã®ã¯ä»ã²ã¨ã¤ã¤ãã¤ãã§ããçç±ã¯çè§£ãã¦ããã¾ããããããã§ãã£ã¦ããããæ¹ã¯ãã¨ããããåããã«ã¯ããï¼ç§ã¯ï¼ãã£ã¡ããã¾ãããããªãä¸å®å®ã§ããï¼
ãã¦ã次ã¯ãã¤ã³ã³ãã¼ãï¼Arduinoï¼ã®ããã°ã©ãã³ã°ã
ãã¦ãå
å¤èª¿ã«ããã¦ã¯ãè¯ãåã®ã¿ããªã¯ãããLEDãã«ãã«ã«ä½¿ãããã
delay(100);
ã¯ã使ã£ã¦ã¯ããã¾ãããéä¿¡å¦çã§ãã®ã§ããã«ã¹ã®å¨æä¿è¨¼ãã¡ããã¨ãããªãã¨ããã¾ãããå²ãè¾¼ã¿ãå¼·ãå§ãã¾ãã
ã¾ããä»åã®ã¯ãªãã¡ãã£ã¦éä¿¡ã§ããã»ã»ã»ã»ããã¯æã¾ããå½¢ã§ããã¾ãããã
ãã®å²ãè¾¼ã¿ã«ã¯ã
#include
ã§ãè¨å®ãã©ã¡ã¼ã¿ã¯ï½ï½åä½ãããã®ã§ãããããå¤èª¿å¨æ³¢æ°ã¯ï¼msãã¨å²ãè¾¼ã¿ã®ãMAXï¼ï½Hzã¾ã§OKã
ãã£ããã ããããã©ã¼ãããã¯ä¾ãã°JEITAã®å¯è¦å
æ¨æºã«è¿ãI-4PPMã«ãããã§ãããã»ã»ã»ä½ããªãã¡ãã£ã¦ãªã®ã§ã仿¥ã®ã¨ããã¯ãªãããã©ã¼ããããã¸ã£ãããããªããæåã³ã¼ãç´ã ãã¨ãã¾ãã
ï¼ãã¨ãæ®å¿µãªãããèå¿ã®'ã¤âã®å転ã¯ãéä¿¡ã®æå³çã«ãæ®å¿µãªãããªããã©ããéãç«ãªãã§ãã¾ããæåã¤ã¡ã¼ã¸ã®ããããããã§ããããã§ããï¼
ã¡ãªã¿ã«ã空éå
éä¿¡ã¨ãã¦ã¯ããããããï¼ï½Hzç¨åº¦ã®å¨æ³¢æ°ã§ã®ãã¼ã¹ãã³ãå¤èª¿ã§ãå¯è¦å
帯ã§ããã©ããã¤ãªã¼ãã ã¨ããã¤ãºï¼ãå¤ä¹±ï¼ã«å¼±ãã¦ãã£ã¦ããã¾ããã®ã§ããã®ã¸ããæ³¨æãã
ï¼ã¤ã¡ã¼ã¸ã»ã³ãµéä¿¡ã«ããã°ããã¤ãºãå¤ä¹±èæ§ãããã¦è¯å¥½ã§ããããã®å¤èª¿ããã©ã¼ãããã¯ã¾ããå°ãªãã¨ãæã
ãã¤ã¡ã¼ã¸ã»ã³ãµéä¿¡ã§ãã£ã¦ããæ¹æ³ã¨ã¯ããªãéãã¾ãããã£ã¡ã¯å¤§äººã®äºæ
ã§è§£èª¬ã§ãã¾ãã®ã§ãããããï¼
ã¡ãªã¿ã«ããã£ã¦ã¿ã¦ç¢ºèªããã¨ãããArduinoã®è±èªç°å¢ã§ã¯ã
hoge[] = "ãªã«ã¨ãªããµã¤â
ã¨ããã®ããã«ãæ¥æ¬èªæåããµã¤ãã«æ¸ãã¦æåå宿°é
åã§ã¤ã£ãããã³ã¼ãã¯UTF-8ã«ãªãã¾ããããªã®ã§ãâãªâï¼å
¨è§ï¼ã®ã³ã¼ãã¯ï¼ãã¤ãã®ãE3h,82h,AAhãã¨ãªã£ã¦ã¾ããã
ãã¡ãã仿¥æç¹ã®ã½ã¼ã¹ã¯å¾è¿°ãã¾ãããï¼ãã¡ãããã¨ã§æãããã°ãããã£ã½ããã©ã¼ãããã«ããããããããã¨ç´è¡ããªããI-4PPMå¤èª¿ï¼JEITAãCP-1221ã¨åãã«ããã¤ããã§ããã¨ã«ããç¾ç¶ãªããæå³ã®ãªããã©ã¼ããããªãã§ã容赦ãï¼
ãã¦ããããããªå¨æã¨ããã³ã¼ãã§ãããã°ãåä½ã¯ãã¶ãOKã
ãã¦ããã§ã¯å·¥ä½ã
ã¾ããã¬ã¼ã¶ãã¤ã³ã¿ã®ã¹ã¤ãããããã¾ãªã®ã§ãããã¤ãæ½°ãã¦å¸¸æONã«ãã¾ããããã¯åºæ¿ãè¦ãã°å³ãã©ããã·ã§ã¼ããããã°ãããä¸ç®çç¶ã
ãããã·ã§ã¼ãããã¦å¸¸æONã«ãã¾ããã
次ãã¬ã¼ã¶ã¨Arduinoã®æ¥ç¶ãçµå±Arduinoã¨ã¯ï¼ç«¯åã§æµæãä»ãã°ããã®ã§ã端åã«æµæãã³ãä»ããã¦Arduinoã®ã³ãã¯ã¿ã«å¼è¾¼ãGNDã¯ã³ã¼ãã§ãã³ãããã§çªã£è¾¼ãã§æ¥è§¦ç¢ºä¿ã¨ãã¾ããã
ããããã·ã³ãã«ãªå·¥ä½ããããããæ¥ç¶ã¯ãããã©ãã±ã¼ã¹ã«ããã¦å±å¤ã§ã¯ãªããã«ã¤ããã®ã©ããããã»ã»ã»ã¡ãã£ã¨ãè¨è¨ãè¡ãå½ããã°ã£ããéããã
ã¡ãªã¿ã«ã帰éåºè¿ãã¨ä¾é¤ã§ãããã徿¥ã®ã±ã¼ã·ã³ã°ãçµããããã飿¥åçã®ããã«èªå¨ã¯ãªããã§ã ããããã¤ããµãããã»ãã«åãã¦ãã¤ããã§ããã¾ããã¬ã¼ã¶ãªãã§ãä¸ä¸æ©ããã£ã¦ã¯ãã¶ããåä¿¡æ©æ©è½ãã£ã¦ãå
軸ããããªãã¨ã ããªããã§ããããããã¦ï¼æ³¨ï¼ã¤ã¡ã¼ã¸ã»ã³ãµéä¿¡ã§ããããå®å®ããã®é½å¸ã®æããã¯è¦ããããã§ãããããã®ã¬ãã«ã®å
ã«ããã°å
軸ä¸è¦ã§ããããåæå¤æ°ãä½ç½®ææ¡ä»ãã§éä¿¡ã§ãã¾ãã
ï¼ãã£ã¨ã§ãããããããããããã®ãã®ã·ã¼ã³ããç®ã«ã¯ããªã«ã¨ãªããµã¤ãã®ã¡ãã»ã¼ã¸ã§ããããã®å
ã®ä¸ç²ä¸ç²ã«ãå°çã®äººéã²ã¨ãã²ã¨ãã®ã¡ãã»ã¼ã¸ãå¯è¦å
éä¿¡ã§è¼ã£ã¦ããã®ã§ããããã£ã¨ï¼
ãã¦ããã®å·¥ä½ãçµãã£ãæç¹ï¼ã¾ã æ¼éï¼ã§ARè¡æã¢ããªãTorisatãã§èª¿ã¹ãã¨ã¯ãã¶ãã¯ãåååº§ã®æ¹åãããæ±ããã®å¤©é ã§ããã
ã¨ãããã¨ã§ã室å ã§ããããã宿ã®éææãå³ããããã¨æããã·ãã¥ã¬ã¼ã·ã§ã³ï¼ã§ããã¦ã¿ã¾ãããã
ã¾ããJAXAããã®ãã¼ãã¼ã¯ã©ãããã¤ãããã¨ã¨ãã¾ããã
ãã¯ãã¶ãããã¼ãã¼ã¯ã©ãããhttp://www.isas.jaxa.jp/j/enterp/missions/hayabusa/fun/papercraft.shtml
ã®ãã¼ã¸ãããããé£ãããã¼ã¸ã§ã³ããã¦ã³ãã¼ããä½ãã¾ããã
ã§ããããã
ãã®ã¸ãã®ãã³ãã¼ã«ã§æ®å¿µãªæãã®ã¹ã¿ã³ããä½ãã¾ããã
ããã§ã¯ãæ¬ä¼¼ããªã«ã¨ãªããµã¤ãéä¿¡ã§ãã
ã¯ãã¶ãåã«å¤èª¿ã¬ã¼ã¶ãããã£ã¦ãã®ãããã§ããããã
ãã¤ãã¿ã¼ã
ãã¤ããããªãµãã«å¯è¦å
éä¿¡ã使ãããã¨ãããªãã
ãªãçµå±ããéä¿¡ãã¦ãããæããªãã®ã§ãï¼ï½ï½ã ã£ãå¤èª¿ãã«ã¹å¨æã¯ï¼ï¼ï½ï½ã«ãã¾ãããããã ã¨ãã¯ã£ããããªãã«ãè¦ãã¦å¤èª¿ãã¦ããæã°ãã°ãã§ãã
ãªããå¾ã¯ã±ã¼ã·ã³ã°ãçµããã¾ããããä¾é¤ã§ãã®ã§ã天æ°ã¨æ©ä¼ããããã°ã
ãTorisatï¼è¡æä½ç½®ã®iPhoneã¢ããªï¼ã§ã¯ãã¶ãä½ç½®ç¢ºèªãâãã ããããã£ã¡æ¹åã«åãããã¨ãããããã£ã±ãªä½æ¥ãåå¼ã¨ãã¦è¡ãã¾ããæ°æã¡ã§ããã¾ããæ°æã¡ã§ã
ã¾ããå¨å²ã«ä½å®
ãããã®ã§ãã¬ã¼ã¶ã¨ã¯ãã䏿°å³ãªå
ã¯å«ãããã®ã§ããã¾ãã常æéç¨ã£ã¦æãã§ã¯ãªãã§ããã
ã¾ããã±ã¼ã·ã³ã°ã ãªã»ã»
**************** Arduinoã³ã¼ã *****************
MsTimerã®ãµã³ãã«ã³ã¼ãã«æãå
¥ãããã®ã§ãã
ãã¨ã§ããããããããI-4PPMå¤èª¿ã³ã¼ãå
¥ãã¦ããã£ã½ããå¼·åããããªãã¨ã¯æã£ã¦ã¾ããããªã«ãåå¼çéä¿¡ãªãã§ã»ã»ã¨ã«ããåå¼çãªã³ã¼ãã§ããããã©ããªãã°ãæ½ãã§ããã¨ããã£ããæç¥ãã¾ããã®ã§ããã®ã¤ããã§ã®éç¨ããé¡ããã¾ããï¼ãããåå¼çã³ã¼ãã¨ã¯ãããã¸ããªãã¨ããã°ã@snobiiz ã¨ãå®ã§ãææã¤ã¶ãããé¡ããããã¾ããï¼
>||
#include
#include
//MStimer2.h ref: http://www.musashinodenpa.com/arduino/ref/index.php?f=1&pos=1670sansyou
const int g_cycle = 50; //ms
//const int cycleRevise = 667; //uS hosei
const int LED = 13;
const char Header = {0, 1, 1, 1, 1, 0}; //PPM violation header
const char outStr = "ãªã«ã¨ãªããµã¤";
//coded in UTF-8 ex) ãª-> E3,82,AA
const int HeadLen = 4;
const int PayloadLen = sizeof(outStr); //1 Character(7bit) is tarannsmited in 3 pulses
//const int PayloadLen = 32 * 3; //1 Character(7bit) is tarannsmited in 3 pulses
char outDat[ HeadLen + PayloadLen ];
//------------------------------------
// string encode and set Output binary Array
// A-suedo format.
// based on Inverse 4-Pulse Position Modulation.
// similer to JIETA CP-1221. without FCS.
// This is not the format of Image Sensor Communication of us!!
void encoderPut()
{
//0-3 Header
for(int i = 0; i < HeadLen; i++){
outDat[i] = Header[i];
}
//4-last Payload
for(int i = 0; i < sizeof(outStr); i++){
outDat[i+HeadLen] = outStr[i];
//Serial.println(outStr[i], HEX); //for debug
}
}
//------------------------------------
void INT_transmit()
{
static int idx;
idx = (idx+1) % (sizeof(outDat));
int output = outDat[idx];
// static boolean output = HIGH;
digitalWrite(LED, boolean( output & 1 ) );
}
//---------------------------------------
void setup() {
Serial.begin(9600); // 9600bpsã§ãã¼ããéã for debug
pinMode(LED, OUTPUT);
encoderPut();
MsTimer2::set(g_cycle, INT_transmit); //Declaration of Timer INT function
MsTimer2::start();
}
void loop() {
// no use
}
|