http://jdesbonnet.blogspot.com/2011/05/arduino-to-android-io-on-cheap-aka-poor.html



wifi 대신 HTC 폰에 있는 magnetometer 센터를 이용하여 아두이노에서 연결된 1cm 직경의 코일 안테나에 자기력을 만들어 통신을 할 수 있는 데모이다. 7bps라는 엄청난 열악한 bandwidth에서 통신.





핀 13번에 wave를 쏜다. 아두이노는 단파이기 때문에 송신만 할 수 있다.


코드는 간단하다. "Hello World!"라는 단어를 1.4초 간격으로 데이터를 전달한다.

#define BIT_DELAY 140

int i;
char *text = "Hello World! ";

void setup() {
  pinMode(13,OUTPUT);
}

void loop() {
 
  char *s;
  s = text;
  while (*s != 0) {
    transmitByte(*s++);
  }
  
  delay (BIT_DELAY*10); 
}
/**
 * Bit bang a byte
 */
void transmitByte (byte c) {
  
  // Start bit
  digitalWrite (13,1);
  delay(BIT_DELAY);
  
  // Data bits
  for (i = 0; i < 8; i++) {
      digitalWrite (13, ( (c&0x80)!=0 ? 1 : 0) );
      delay(BIT_DELAY);
      c <<= 1;
  }
  
  // Stop bit
  digitalWrite (13, 0);
  delay(BIT_DELAY);
}




실제 동영상은 이렇다.




Posted by '김용환'
,