23年的12月是本人与本人的团队第一次做火箭,在此之前我们是做的机器人以及其他的一些有关科创的东西。那个时候还不知道有科创网,所以走的每一步都非常艰难。这导致我们第一次发射火箭出现了非常多的事故与问题。所以就把这次事件当做反面例子,请各位本人引以为戒。有更好的意见,欢迎提出,您的支持就是我们最大的前进动力。

       事情发生于去年12月,先从发动机试车说起。
       由于当时学校艺术节需要准备一颗火箭,我们临时收到通知要制作一颗火箭,但是毫无头绪。由于当时还没有进科创,还不知道有科创这个东西。所以只能利用网络上不多的资源来,去制作这一颗火箭。由于自己设计的发动机没有找到地方加工制作,当时也不知道拼多多上盗版发动机的危害,所以就使用了盗版的发动机。但更多的问题在于本人团队的问题。

       由于第一次使用发动机,隔热层使用了少量的环氧树脂,但不知道该如何去添加,导致隔热层非常的薄,而且不均匀,加上发动机的燃料是粉压,这对后面发生爆炸埋下了很大的隐患。在最后不出意外发动机发生了爆炸,但人员较少,没有造成任何的伤亡以及事故。

       最后火箭发动机只能匆忙改方案。由于所能用的资源非常少,最后只使用了纸筒为发动机的外壳,内部涂上了环氧树脂,最后用石膏做的喷口。但当时对拉瓦尔管缺少概念,这也导致了后面火箭飞行产生问题。

在火箭的航电部分,有部分模块是学校提供的包括开发板我们只是在此基础知识上进行搭建拼接。在运行的时候出了很多问题,如果其他模块运行会干扰到北斗定位的模块运行,所以最后去除掉了部分传感器,以确保整个航电能正常运行。

以下是部分的代码

发射及姿态检测

import display
import board
import wifi
import mysensor
from time import *

count = 0
key = 0
led = 0
angle_x = 0
angle_y = 0
angle_z = 0

def first_index(my_list, elem):
try: index = my_list.index(elem) + 1
except: index = 0
return index


display.Text_Line('wifi:',1)
display.Text_Line('IOT-JNSR-' + str(board.Get_machine()),2)
display.Text_Line('password:',3)
display.Text_Line('12345678',4)
wifi.open_AP_mode()
wifi.TCPServer_Estable()
count = 0
for count2 in range(10000):
if wifi.Client_Connect():
if wifi.Client_Rev():
key = mysensor.Get_Key_Value(0)
led = mysensor.Get_LedRing_Status(0)
if first_index(key, 0) != 0 and not not len(led):
mysensor.Set_RGB_LED((0,50,0,0),0)
board.speak('点火起飞,火箭发射')
mysensor.Get_Accel(0)
angle_x = mysensor.Get_Accel_X(0)
angle_y = mysensor.Get_Accel_Y(0)
angle_z = mysensor.Get_Accel_Z(0)
if angle_x != None and angle_y != None and angle_z != None:
if angle_x < 30 and angle_x > -30 or angle_y > 60 or angle_y < -60 or angle_z < 30 or angle_z > 150:
if board.readbusy():
board.speak('火箭倾斜偏离正常角度,正在启动自毁装置')
print('danger')
wifi.Send_Ipad()
sleep_ms(300)

北斗定位

from time import *
import wireless
from sensor import *


sleep(3)
wireless.Set_Speed(10)
wireless.Set_Ch(72)
wireless.Set_Addr(0)
bds = BDS(21,23,0)
while True:
bds.read()
if bds.iseffect():
print('UTC日期:' + str(bds.get_utc_date()))
wireless.Send_Data(bds.get_data_utcdate())
sleep_ms(100)
print('UTC时间:' + str(bds.get_utc_time()))
wireless.Send_Data(bds.get_data_utctime())
sleep_ms(100)
print('纬度:' + str(str(bds.get_latitude()) + str(' ' + str(bds.get_latitude_dir()))))
wireless.Send_Data(bds.get_data_latitude())
sleep_ms(100)
print('经度:' + str(str(bds.get_longitude()) + str(' ' + str(bds.get_longitude_dir()))))
wireless.Send_Data(bds.get_data_longitude())
sleep_ms(100)
print('使用卫星数量:' + str(bds.get_satellites_in_use()))
wireless.Send_Data(bds.get_data_satellites_in_use())
sleep_ms(100)
print('可见卫星数量:' + str(bds.get_satellites_in_view()))
wireless.Send_Data(bds.get_data_satellites_in_view())
sleep_ms(100)

气压传感器

from time import *
from sensor import *

press = 0


sleep(3)
hp203b = HP203B(26, 25, 0)
while True:
press = hp203b.pressure()
print('press = ' + str(press))
sleep(1)

温湿度传感器

rom time import *
from sensor import *

temp = 0
hum = 0


sleep(3)
dht11 = DHT11(33,0)
sleep(3)
while True:
temp = dht11.temperature()
print('温度:' + str(temp))
hum = dht11.humidity()
print('湿度:' + str(hum))
sleep(1)

姿态传感器

from time import *
from sensor import *

gyro = 0
accel = 0
pitch = 0
roll = 0


sleep(3)
mpu6050 = MPU6050(26, 25, 0)
while True:
gyro = mpu6050.get_Gyroscope()
print('gyro = ' + str(gyro))
accel = mpu6050.get_Accelerometer()
print('accel = ' + str(accel))
pitch = mpu6050.get_Pitch()
print('pitch = ' + str(pitch))
roll = mpu6050.get_Roll()
print('roll = ' + str(roll))
sleep(1)

臭氧传感器

from time import *
from sensor import *

o3 = 0


sleep(3)
ozone = Ozone(25,33,0)
sleep(3)
while True:
if ozone.isrev():
o3 = ozone.read_O3()
print('O3:' + str(o3))
sleep_ms(100)

开伞的部分使用的是KNSU,但没有进行隔热的措施导致伞绳融化导致后面的回收失败,只有火箭的头部(航电部分)成功回收。

发射整体速度较慢,因为附近有楼房以及居民区。所以特地在火箭一侧加的配重。

最后感谢各位的观看,我们将会不断学习相关的知识并改进。

© 版权声明
分享是一种美德,转载请保留原链接