×

らずらいと姫の挑戦日記(第18回)~ORIZURUを飛ばす!!!~

2016-08-10

Laz-princess_header

ORIZURUに必要なコントローラとモーター両方学びました。今回はついにORIZURUを飛ばしたいと思います!!!

21

拡大写真です♪

25

コントローラーのプログラム

前回までに学んだコントローラのプログラムを全てつなげつなげてみました。↓↓↓

#define LED		        26		// pin number of Blue LED
#define ORANGE_LED 		25		// pin number of ORANGGE LED
#define SUBGHZ_CH		36		// channel number (frequency)
#define PANID			0xABCD		// panid
#define HOST_ADDRESS	        0x10		// distination address

short data_packet[4];

void setup(void)
{
	int i;
	SUBGHZ_PARAM param;
	for(i=3;i<=8;i++)
	{
		pinMode(i,INPUT_PULLUP);
	}

	SubGHz.init();				// initializing Sub-GHz
	SubGHz.getSendMode(&param);
	param.addrType = 4;
	SubGHz.setSendMode(&param);

	pinMode(LED,OUTPUT);			// setting of LED
	pinMode(ORANGE_LED,OUTPUT);		// setting of LED
	digitalWrite(LED,HIGH);			// setting of LED
	Serial.begin(115200);
}

void loop(void)
{
	short rx;
	short ry;
	short rz;
	unsigned char sw;
	int i;
	SUBGHZ_MSG msg;

	data_packet[0]=analogRead(A0) - 512;
	data_packet[1]=analogRead(A1) - 512;
	data_packet[2]=analogRead(A2);

	sw=0;
	for(i=3;i<=8;i++)
	{
		sw = (sw << 1) + ((digitalRead(i) == LOW) ? 1 : 0);
	}
	data_packet[3]=(short)sw;

	SubGHz.begin(SUBGHZ_CH, PANID,  SUBGHZ_100KBPS, SUBGHZ_PWR_20MW);			// start Sub-GHz

	// preparing data
	digitalWrite(LED,LOW);														// LED ON
	while(1)
	{
		msg = SubGHz.send(PANID, HOST_ADDRESS, (unsigned char*)&data_packet, sizeof(data_packet),NULL);		// send data
		if(msg == SUBGHZ_TX_CCA_FAIL)
		{
			digitalWrite(ORANGE_LED,LOW);
		}
		else
		{
			digitalWrite(ORANGE_LED,HIGH);
			break;
		}
	}
	digitalWrite(LED,HIGH);														// LED off
	Serial.print_long((long)data_packet[0],DEC);
	Serial.print(",");
	Serial.print_long((long)data_packet[1],DEC);
	Serial.print(",");
	Serial.print_long((long)data_packet[2],DEC);
	Serial.print(",");
	Serial.print_long((long)data_packet[3],DEC);
	Serial.println("");
	// close
	SubGHz.close();																// Sub-GHz module sets into power down mode.
	delay(50);
}

ORIZURU飛びます☆

飛び立つ時に、両翼の動きを確認しています。DCモーターがまわり、勢いよく羽が羽ばたいていますね!そして、飛び立ちます!!

ORIZURUが頑張って飛んでくれています♡♥♡飛行成功ですstamp1

サーボモーターでORIZURUの方向と、上昇下降を調節して壁にぶつからないよう、墜落しなしように制御しています。

プログラムも電子工作も全くの初心者のわたしですが、夢であったORIZURUを飛ばす事が出来ました~。感動の時間でした☆☆☆

次回は、触ったら反応する「静電タッチ」のシステムを考えていきたいと思います!

Laz-princess_footer