ロケット電装の動作試験

2026-01-12

FTE15期の山菅です!今回は、ロケット電装の製作の一場面の様子をブログに残したいと思います!今回は、第22回能代宇宙イベントの海打ち部門で打ち上げる機体の、パラシュートを開くための基板を紹介します!

電装全体の概要

今回の機体には4枚の基板を搭載します!乾電池を搭載する、「バッテリー基板」、データの記録とダウンリンクを行う「データロガー」、パラシュートを開く「ロケットコントローラー」、これらを連携させる「マザーボード」です。今回は海面に落下する想定のロケットなので、水に沈むことを前提とした、水没部と、水が浸入しないように密閉された水密部に分かれています。

本ブログでは、ロケットコントローラーの製作の過程を紹介します!

基板の紹介

今回なんと、JLCPCB様の協賛により、基板を提供していただきました!!外側から順に、データロガー、バッテリー基板、ロケットコントローラー、マザーボードになります!

左がはんだ付け前、右がはんだ付け後のロケットコントローラーです!この基板の機能は下記の通りです。

  • ロケットが発射されたことを検知すること
  • 大気圧センサーを用いて高度を測定すること
  • サーボモーターを回転させて、パラシュートを開くこと

今回は、高度測定と、サーボの回転の動作確認を行います!

動作確認

高度測定

気圧センサーはBMP180(https://electronicwork.shop/items/633a5766c92c5d60c0317985)を使用します。

ライブラリはAdafruit-BMP085-LibraryのBMP085testを用いました。

#include 
Adafruit_BMP085 bmp;
  
void setup() {
  Serial.begin(9600);
  if (!bmp.begin()) {
	Serial.println("Could not find a valid BMP085 sensor, check wiring!");
	while (1) {}
  }
}
  
void loop() {
    Serial.print("Temperature = ");
    Serial.print(bmp.readTemperature());
    Serial.println(" *C");
    
    Serial.print("Pressure = ");
    Serial.print(bmp.readPressure());
    Serial.println(" Pa");
    
    // Calculate altitude assuming 'standard' barometric
    // pressure of 1013.25 millibar = 101325 Pascal
    Serial.print("Altitude = ");
    Serial.print(bmp.readAltitude());
    Serial.println(" meters");

    Serial.print("Pressure at sealevel (calculated) = ");
    Serial.print(bmp.readSealevelPressure());
    Serial.println(" Pa");
    Serial.print("Real altitude = ");
    Serial.print(bmp.readAltitude(101500));
    Serial.println(" meters");
    
    Serial.println();
    delay(500);
}

結果

プログラムを実行したところ、シリアルモニタにリアルタイムで気温、気圧、海抜高度、高度を出力することができました

サーボモーター

サーボモーターはSG90(https://akizukidenshi.com/catalog/g/g108761/)を用いました。

ライブラリはArduinoが提供しているもの(https://docs.arduino.cc/learn/electronics/servo-motors/)を用いました。

#include <servo.h>
Servo myservo;

int pos = 0; // variable to store the servo position void setup() { myservo.attach(3); // attaches the servo on pin 9 to the servo object } void loop() { for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees // in steps of 1 degree myservo.write(pos); // tell servo to go to position in variable 'pos' delay(15); // waits 15 ms for the servo to reach the position } for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees myservo.write(pos); // tell servo to go to position in variable 'pos' delay(15); // waits 15 ms for the servo to reach the position } }

結果

サーボモーターを回転させることができました

今後の作業

今回の作業を通じて、基板が設計通り製造できており、パラシュートを開く最低限の能力があることが分かりました。

ただし、ロケットを打ち上げられるようにするためには、残りの3枚の基板の検証、より本番に近い条件での動作試験、ロケットの発射を検知できることの確認など、まだまだ多くのステップがあります。本番に最大限のパフォーマンスを発揮して、打上成功を達成できるように、これからも作業を続けていきます!!

基板発注方法の紹介

先にも紹介した通り、この基板はJLCPCB様より提供されたものです。JLCPCBは24~48時間での迅速な基板製造、豊富なオプション、発注が簡単なことなど、高品質で便利なサービスが特徴です。

発注のたび、高品質な基板がすぐに届くので、いつも助かっています。

JLCPCB様の基板製造サービスを利用されたい方はこちらのリンクからどうぞ!https://t.co/K35oaDr41Q

アカウント登録後、Autodesk Fusionなどの基板設計ソフトで、ガーバーファイルを製造し、画像のボタンからガーバーをアップロードすれば、簡単に発注ができます!!

  • B!