Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-23 15:14
Bạn đã bao giờ muốn tự mình chế tạo một thứ gì đó có thể gửi lên vũ trụ và lấy nhiệt độ của hành tinh khác chưa? Trong lớp vật lý trung học của chúng tôi, chúng tôi đã giao nhiệm vụ xây dựng một CubeSat với một arduino đang hoạt động ở đâu với câu hỏi chính Làm cách nào để chúng hoạt động được ở sao Hỏa? Chúng tôi quyết định để nó đo nhiệt độ trên hành tinh, bởi vì ai lại không muốn biết sao Hỏa nóng như thế nào? Tuy nhiên, chúng tôi cần làm cho nó bằng một thứ gì đó vừa túi tiền nhưng cũng phải bền. Do đó, chúng tôi đã sử dụng Legos. Điều này làm cho CubeSat bền và giúp chúng tôi đạt được các kích thước kích thước khá dễ dàng - ngay cả khi tất cả các phần có một chút phiền toái! Mục tiêu của chúng tôi là có một cảm biến hoạt động đầy đủ có thể đo nhiệt độ của khu vực xung quanh và một CubeSat bảo vệ xung quanh nó.
Bước 1: Thu thập vật liệu / phác thảo CubeSat
Điều đầu tiên bạn muốn làm là phác thảo CubeSat. Bạn sẽ cần phải có ý tưởng về những gì bạn muốn xây dựng trước khi bạn xây dựng nó. Một trong những bức ảnh ở trên là các bản phác thảo CubeSat mà chúng tôi đã thực hiện. Tiếp theo, thu thập tài liệu của bạn. Đối với CubeSat mà chúng tôi đang xây dựng, chúng tôi đang sử dụng Legos. Chúng tôi chọn Legos vì chúng dễ lấy và lắp lại với nhau, đồng thời bền và sẽ thực hiện tốt các nhiệm vụ được yêu cầu. Vì vậy, bạn sẽ cần phải có một số Legos. lấy một vài miếng cơ bản rộng, có kích thước 10 cm X 10 cm X 10 cm hoặc một vài miếng cơ sở có thể ghép lại với nhau thành 10 x 10 miếng. Đối với CubeSat của chúng tôi, chúng tôi phải lấy nhiều miếng đế và ghép chúng lại với nhau để tạo thành một đế 10 cm x 10 cm. Bạn cũng sẽ cần phải có Legos để tạo ra một phần mái có cùng kích thước. Sau khi bạn có được những Legos đó, bạn sẽ cần phải có rất nhiều Legos nhỏ để xây dựng các bức tường của CubeSat. Hãy chắc chắn rằng những chiếc Legos này khá mỏng, vì vậy chúng không chiếm quá nhiều diện tích bên trong CubeSat.
Bước 2: Xây dựng Cubesat
Đầu tiên, chúng tôi xây dựng vẻ đẹp 10x10x10 này. Nó đã có rất nhiều thiết kế khác nhau. Đầu tiên chúng tôi có một cái kệ ở giữa nhưng sau đó chúng tôi quyết định rằng không cần thiết phải có. Nếu bạn chọn có một giá ở giữa, tôi chỉ khuyên bạn nên dùng một giá vì bạn sẽ phải tháo nó ra mỗi khi bạn đặt và lấy Arduino và cảm biến của mình ra. Chúng tôi đã thêm các cửa sổ nhỏ để chúng tôi có thể nhìn nhanh vào bên trong khi phần trên được đóng lại để chúng tôi có thể thấy mọi thứ hoạt động trơn tru. Để làm cho CubeSat ổn định hơn, chúng tôi đặt hai lớp Lego ở dưới cùng. Càng ổn định càng tốt, vì CubeSat này sẽ cần có khả năng sống sót qua nhiều chướng ngại vật khác nhau.
Bước 3: Đấu dây và mã hóa Arduino
Bước thứ hai của dự án này là nơi bạn sẽ cần nối dây arduino. Bước này rất quan trọng, bởi vì nếu điều này không được thực hiện đúng thì khối lập phương sat sẽ không thể đọc được nhiệt độ. Để hoàn thành hệ thống dây của arduino, bạn sẽ cần một số vật liệu. Những vật liệu này là pin, arduino, thẻ SD, dây nhảy, bảng mạch, cảm biến nhiệt độ và máy tính. Máy tính sẽ được sử dụng để xem hệ thống dây điện có hoạt động tốt hay không. Đây là một trang web rất hữu ích trong việc hướng dẫn chúng tôi cách nối dây arduino:
create.arduino.cc/projecthub/TheGadgetBoy/…
Những hình ảnh và sơ đồ trên cũng có thể giúp ích cho bạn. Mã hóa của arduino wil cũng được kiểm tra trên máy tính để xem nó có hoạt động hay không. Nếu mọi thứ đều hoạt động, thì arduino có thể được lấy ra khỏi máy tính và sẵn sàng hoạt động.
Mã số:
// Dây dữ liệu được cắm vào cổng 2 trên Arduino
#define ONE_WIRE_BUS 2
File sensorData;
// Thiết lập phiên bản oneWire để giao tiếp với bất kỳ thiết bị OneWire nào (không chỉ IC nhiệt độ Maxim / Dallas)
OneWire oneWire (ONE_WIRE_BUS);
// Bao gồm các thư viện chúng ta cần
#bao gồm
#bao gồm
#bao gồm
// Chuyển tham chiếu oneWire của chúng tôi đến Nhiệt độ Dallas.
Cảm biến nhiệt độ Dallas (& oneWire);
// các mảng để giữ địa chỉ thiết bị
DeviceAddress insideThermometer;
/*
* Chức năng thiết lập. Ở đây chúng tôi làm những điều cơ bản
*/
thiết lập void (void)
{
pinMode (10, OUTPUT);
SD.begin (4);
// bắt đầu cổng nối tiếp
Serial.begin (9600);
Serial.println ("Bản trình diễn Thư viện Điều khiển IC Nhiệt độ Dallas");
// định vị thiết bị trên xe buýt
Serial.print ("Định vị thiết bị…");
cảm biến.begin ();
Serial.print ("Tìm thấy");
Serial.print (sensor.getDeviceCount (), DEC);
Serial.println ("thiết bị.");
// báo cáo yêu cầu về nguồn điện của ký sinh trùng
Serial.print ("Sức mạnh của ký sinh trùng là:");
if (sensor.isParasitePowerMode ()) Serial.println ("ON");
else Serial.println ("TẮT");
/ * Chỉ định địa chỉ theo cách thủ công. Các địa chỉ dưới đây sẽ được thay đổi
đến các địa chỉ thiết bị hợp lệ trên xe buýt của bạn. Địa chỉ thiết bị có thể được truy xuất
bằng cách sử dụng oneWire.search (deviceAddress) hoặc riêng lẻ qua
sensor.getAddress (deviceAddress, index) Lưu ý rằng bạn sẽ cần sử dụng địa chỉ cụ thể của mình tại đây
InsideThermometer = {0x28, 0x1D, 0x39, 0x31, 0x2, 0x0, 0x0, 0xF0};
Phương pháp 1:
Tìm kiếm các thiết bị trên xe buýt và chỉ định dựa trên một chỉ mục. Tốt nhất, bạn sẽ làm điều này để ban đầu khám phá các địa chỉ trên xe buýt và sau đó
sử dụng các địa chỉ đó và gán chúng theo cách thủ công (xem ở trên) khi bạn biết
các thiết bị trên xe buýt của bạn (và giả sử chúng không thay đổi).
* / if (! sensor.getAddress (insideThermometer, 0)) Serial.println ("Không thể tìm thấy địa chỉ của Thiết bị 0");
// phương pháp 2: search ()
// search () tìm thiết bị tiếp theo. Trả về 1 nếu một địa chỉ mới đã được
// trả lại. Số 0 có thể có nghĩa là xe buýt bị thiếu, không có thiết bị, // hoặc bạn đã truy xuất tất cả chúng. Nó có thể là một ý tưởng hay
// kiểm tra CRC để đảm bảo rằng bạn không nhận được rác. Thứ tự là
// xác định. Bạn sẽ luôn nhận được các thiết bị giống nhau theo cùng một thứ tự
//
// Phải được gọi trước search ()
//oneWire.reset_search ();
// gán địa chỉ đầu tiên được tìm thấy cho insideThermometer
// if (! oneWire.search (insideThermometer)) Serial.println ("Không thể tìm thấy địa chỉ cho insideThermometer");
// hiển thị các địa chỉ chúng tôi tìm thấy trên xe buýt
Serial.print ("Địa chỉ thiết bị 0:");
printAddress (insideThermometer);
Serial.println ();
// đặt độ phân giải thành 9 bit (Mỗi thiết bị Dallas / Maxim có thể có một số độ phân giải khác nhau)
sensor.setResolution (insideThermometer, 9);
Serial.print ("Độ phân giải thiết bị 0:");
Serial.print (sensor.getResolution (insideThermometer), DEC);
Serial.println ();
}
// hàm in nhiệt độ cho thiết bị
void printTempe Heat (DeviceAddress deviceAddress)
{
// phương pháp 1 - chậm hơn
//Serial.print("Temp C: ");
//Serial.print(sensors.getTempC(deviceAddress));
//Serial.print ("Temp F:");
//Serial.print(sensors.getTempF(deviceAddress)); // Thực hiện cuộc gọi thứ hai tới getTempC và sau đó chuyển đổi thành Fahrenheit
// phương pháp 2 - nhanh hơn
float tempC = sensor.getTempC (deviceAddress);
if (tempC == DEVICE_DISCONNECTED_C)
{
Serial.println ("Lỗi: Không thể đọc dữ liệu nhiệt độ");
trở lại;
}
sensorData = SD.open ("log.txt", FILE_WRITE);
if (sensorData) {
Serial.print ("Temp C:");
Serial.print (tempC);
Serial.print ("Temp F:");
Serial.println (DallasTempether:: toFahrenheit (tempC)); // Chuyển đổi tempC thành Fahrenheit
sensorData.println (tempC);
sensorData.close ();
}
}
/*
* Chức năng chính. Nó sẽ yêu cầu tempC từ các cảm biến và hiển thị trên Serial.
*/
vòng lặp void (void)
{
// gọi cảm biến.requestTempe Nhiệt độ () để đưa ra nhiệt độ toàn cầu
// yêu cầu tất cả các thiết bị trên xe buýt
Serial.print ("Yêu cầu nhiệt độ…");
cảm biến.requestTempe Nhiệt độ (); // Gửi lệnh để lấy nhiệt độ
Serial.println ("XONG");
// Nó phản hồi gần như ngay lập tức. Hãy in dữ liệu ra
printTempe Nhiệt (bên trongThermometer); // Sử dụng một hàm đơn giản để in ra dữ liệu
}
// hàm in địa chỉ thiết bị
void printAddress (DeviceAddress deviceAddress)
{
for (uint8_t i = 0; i <8; i ++)
{
if (deviceAddress <16) Serial.print ("0");
Serial.print (deviceAddress , HEX);
}
}
ReplyForward
Bước 4: Kiểm tra Cubesat
Bây giờ CubeSat, mã và dây của Arduino đã hoàn tất, bạn sẽ sớm chạy thử nghiệm. Nếu các thử nghiệm này không thành công, CubeSat của bạn có thể bị phá hủy hoàn toàn, cùng với Arduino của bạn. Do đó, bạn sẽ muốn đảm bảo rằng Arduino của mình đã sẵn sàng cho việc này. Đó là nơi mà bước này bắt đầu để chơi, kiểm tra CubeSat. Trước tiên, bạn sẽ cần đặt Arduino của mình một cách an toàn bên trong CubeSat và đảm bảo rằng nó sẽ không lắc lư xung quanh. Sau đó, bạn sẽ cần đảm bảo rằng tất cả các phần của CubeSat được đặt ở vị trí an toàn. Không thể có mảnh rời, nếu không CubeSat sẽ có nhiều khả năng bị bung ra trong quá trình thử nghiệm. Nếu bạn kiểm tra chắc chắn CubeSat của mình, thì các bài kiểm tra mà nó trải qua sẽ dễ dàng vượt qua.
Bước 5: Chuỗi lên CubeSat
Bước này sẽ chuẩn bị cho bài kiểm tra đầu tiên mà CubeSat sẽ trải qua. Trong thử nghiệm, CubeSat sẽ được xoay với tốc độ nhanh trong vòng 30 giây. Bạn sẽ cần đảm bảo CubeSat được buộc chặt để nó không bị bay ra. Chúng tôi buộc hoàn toàn 2 dây xung quanh CubeSat và buộc chúng thật chặt. Sau đó, chúng tôi thêm một sợi dây dài khác, được buộc xung quanh hai sợi dây đầu tiên. Chúng tôi đã thắt nút này nhiều lần ở đầu và cuối để nó được bảo mật nhất có thể. Điều này có thể mất nhiều lần thử vì bạn muốn làm cho dây hoàn hảo để nó không bị lỏng trong quá trình bay.
Bước 6: Kiểm tra xích đu
Để đảm bảo an toàn trong bước này, hãy chắc chắn đeo kính bảo vệ mắt của bạn. Trong bước này, bạn sẽ chạy CubeSat thông qua một bài kiểm tra để xem liệu nó có bảo vệ Arduino đủ tốt để nó thực hiện nhiệm vụ của nó hay không (tìm kiếm nhiệt độ). Thử nghiệm đầu tiên là thử nghiệm cần xâu chuỗi. Trong thử nghiệm này, Arduino sẽ bị xoay xung quanh (như trong hình / video trên) - (đôi khi video gặp sự cố khi tải). Một mô hình sao Hỏa có thể được đặt ở giữa. Để hoàn thành thành công bài kiểm tra này, Arduino sẽ cần phải xoay vòng mà không bị mất liên kết, đó là lý do tại sao nó cần được kết nối tốt và Arduino của chúng sẽ cần phải hoạt động đầy đủ sau khi quá trình kiểm tra kết thúc. Đó là lý do tại sao bạn cần đảm bảo Arduino được bảo mật tốt trong CubeSat.
Bước 7: Kiểm tra # 2- Kiểm tra lắc
Trong bước này, CubeSat của bạn sẽ trải qua bài kiểm tra số 2. Thử nghiệm này là thử nghiệm lắc. Trong thử nghiệm này, CubeSat sẽ được đặt trong một giá đỡ như trong hình / video (đôi khi video gặp sự cố khi tải) ở trên và sẽ bị lắc qua lại dữ dội trong 30 giây. Để vượt qua bài kiểm tra này, CubeSat và Arduino của bạn sẽ cần phải hoạt động đầy đủ sau khi chúng bị lắc.
Bước 8: Kết quả / Nhiệt độ hoàn thành CubeSat
Cuối cùng, CubeSat của chúng tôi đã có thể ghi lại thành công nhiệt độ trong khi trải qua mọi thử nghiệm. Dữ liệu luôn ở mức 26-30 độ C trong mọi thử nghiệm. Nhiệt độ này tương đương với 78-86 độ F. Tuy nhiên, chúng tôi đã gặp phải một số vấn đề trên đường đi. Ví dụ, nhiều lần mã hóa của arduino không hoạt động và đọc 126 độ C. Phải mất nhiều lần thử để đạt được nhiệt độ chính xác. Một số lời khuyên tôi sẽ đưa ra cho bất kỳ ai thực hiện dự án này là hãy thử nhiều biến thể của mã và hệ thống dây điện, và để đảm bảo arduino của bạn phù hợp chặt chẽ với CubeSat. Bạn có thể cần phải thắt chặt khe hở bên trong CubeSat để đảm bảo arduino vừa khít bên trong. Chúng tôi đã gặp một số vấn đề với việc arduino quá lỏng lẻo trong CubeSat.
Trong dự án này, bạn cũng sẽ cần áp dụng kiến thức vật lý của mình. Kiến thức vật lý về công nghệ, năng lượng và lực sẽ cần được áp dụng trong suốt dự án. Trong suốt dự án, chúng tôi đã tìm hiểu thêm về hệ mặt trời và các công nghệ mới như CubeSats. Chúng ta cũng đã tìm hiểu về lực hấp dẫn và cách lực này có thể tác động đến CubeSat. Một chủ đề rất quan trọng với dự án này là chuyển động vệ tinh. Chúng tôi đã học về chuyển động của vệ tinh bằng cách sử dụng vận tốc, lực ròng và trọng lực. Điều này sẽ giúp chúng tôi tìm thấy đường đạn của vệ tinh.
Sau khi CubeSat và arduino của bạn đã vượt qua thành công các bài kiểm tra và hoạt động bình thường, bạn đã hoàn thành. CubeSat của bạn sẽ có thể tồn tại trong bầu khí quyển của sao Hỏa. Đảm bảo rằng cảm biến cũng đã ghi thành công nhiệt độ trong suốt các thử nghiệm. CubeSat của bạn đã sẵn sàng lên vũ trụ!
Đề xuất:
Hiển thị nhiệt độ & độ ẩm nhiệt nhiệt - Phiên bản PCB: 6 bước (có hình ảnh)
Hiển thị Nhiệt độ & Độ ẩm Thermochromic - Phiên bản PCB: Cách đây không lâu, một dự án có tên Nhiệt độ Nhiệt & Màn hình độ ẩm nơi tôi đã chế tạo màn hình 7 phân đoạn từ các tấm đồng được làm nóng / làm mát bằng các phần tử peltier. Các tấm đồng được bao phủ bởi một lá mỏng nhiệt sắc
Động cơ bước với Dép xỏ ngón và Hẹn giờ 555; Phần đầu tiên của mạch Bộ hẹn giờ 555: 3 bước
Động cơ bước với Dép xỏ ngón và Hẹn giờ 555; Phần đầu của mạch Bộ hẹn giờ 555: Động cơ bước là động cơ DC chuyển động theo các bước rời rạc, nó thường được sử dụng trong máy in và thậm chí cả robot. Tôi sẽ giải thích mạch này theo các bước. Phần đầu tiên của mạch là 555 bộ đếm thời gian. Đây là hình ảnh đầu tiên (xem ở trên) với chip 555 w
Cách sử dụng cảm biến nhiệt độ DHT11 với Arduino và nhiệt độ in Nhiệt độ và độ ẩm: 5 bước
Cách sử dụng cảm biến nhiệt độ DHT11 với Arduino và nhiệt độ in Nhiệt độ và độ ẩm: Cảm biến DHT11 được sử dụng để đo nhiệt độ và độ ẩm. Họ là những người rất ưa thích đồ điện tử. Cảm biến nhiệt độ và độ ẩm DHT11 giúp bạn thực sự dễ dàng thêm dữ liệu độ ẩm và nhiệt độ vào các dự án điện tử tự làm của mình. Đó là mỗi
Nhiệt kế nấu ăn đầu dò nhiệt độ ESP32 NTP với cảnh báo nhiệt độ và hiệu chỉnh Steinhart-Hart.: 7 bước (có hình ảnh)
Nhiệt kế nấu ăn đầu dò nhiệt độ ESP32 NTP với cảnh báo nhiệt độ và hiệu chỉnh Steinhart-Hart. là một chương trình Có thể hướng dẫn cho thấy cách tôi thêm đầu dò nhiệt độ NTP, piezo b
Bộ vi điều khiển AVR. Đèn LED Flasher sử dụng bộ hẹn giờ. Bộ hẹn giờ Ngắt. Chế độ hẹn giờ CTC: 6 bước
Bộ vi điều khiển AVR. Đèn LED Flasher sử dụng bộ hẹn giờ. Bộ hẹn giờ Ngắt. Chế độ hẹn giờ CTC: Xin chào các bạn! Bộ hẹn giờ là một khái niệm quan trọng trong lĩnh vực điện tử. Mọi thành phần điện tử hoạt động trên cơ sở thời gian. Cơ sở thời gian này giúp giữ cho tất cả các công việc được đồng bộ hóa. Tất cả các bộ vi điều khiển đều hoạt động ở một số tần số xung nhịp được xác định trước,