Tag: Code

Finished Code

Finished Code

Here is what some of the code looks like, and what the overall software is meant to do during flight.

Data Visualiser

Data Visualiser

Along side the main project software, we developed a visualizer that would allow us to view the numerical data in a visual sense.

Project Update

Project Update

With the school holidays over and only a few weeks left before the launch, it’s important that the loose ends in our project are tied and finishing touches are made before the big day. All of the separate components of the project are beginning to fall into place, and everyone is working hard to finalise their part.

Prototypes for every aspect of the project have been complete, including the case, parachute, rudder, circuit board and vital code.
Almost all have minimal viable products:

  • The data logging software is collecting and even feeding data from the payload’s sensors into a visualiser in real time, displaying important information about the location of and readings from the payload.
  • The steering algorithm runs a PID algorithm that effects the position of the rudder using a servo motor. The rudder itself has also been cut and sanded onto balsawood, and the final product will see that the shape is correct.
  • The circuit board has been printed and one board has been soldered on already.
  • The case, made of foam, is cuboid and thick, ensuring the components inside are protected against damaging forces. It is also taped tightly, in multiple layers, making it also waterproof.
  • The parachute does a few spirals, but does soften the fall. The final will provide a more stable flight.

These are now being polished into final products, fully functional and ready to go.

Other aspects of the project are still “works in progress”, however the challenges they present will be overcome.

  • The GPS has proven difficult to cooperate with our software and hardware. More testing and debugging will help to make this work properly.
  • Soldering the circuit boards is also difficult, as it requires extremely small connections. These are being done using micrsoscopes and a toaster oven solder reflow.
  • Fine tuning the PID is still required, as well as ensuring offsets and landing procedures work correctly in the code.
  • Design for a manual mechanism used to release the parachute in case of emergency is still being worked on, or, in place of that, a drag chute that reduces the speed enough so that the components do not break, but also not causing the descent to be too slow (carrying the payload further during the freefall). This requires thorough testing and simulation so that the freefall time and drag fits the correct range for our preferences.
  • Testing, testing, testing, is a hugely important task that the team will be doing in approach to the launch date. All of the components of the project will be subject to pressure, force, water-proofing, simulation and worst-case-scenario testing in the next few weeks, making sure the real thing can go off without a hitch.

And last but not least, we must also complete:

  • Code which will decide when to release the parachute. This hopefully can be optimised by analysis of the wind speeds at different altitudes and what will work best with our steering algorithm. This could greatly assist the steering if done thoroughly, however it must also be kept in mind that the wind speeds will change.
  • Connecting all of the final pieces of the project together, ready for take off.
Simulator

Simulator

Testing some prototypes can be expensive, so we decided to simulate what the hardware and software would go through to see the effects and find bugs (unexpected features) in the software.

YICTE

YICTE

YICTE – Young ICT Explorers. YICTE is a competition run all around Australia getting students who love ICT and anything in general apply their knowledge and abilities to solve real world issues.

Rudder Design

Prototype 1

The first prototype of the rudder was made out of cardboard – a readily available material that was easy to cut – and rectangular (15x10cm).
The prototype was thick at the bottom and thin at the top, in an attempt to replicate an airfoil. This design feature is included as the majority of fast airflow over the rudder will be rushing upwards as the payload is descending. This creates laminar airflow over the rudder that is easy to control, rather than turbulent air which is difficult to steer in. The shape of this prototype is based on an airfoil, similar to that of the rudder on an airplane but facing downward, ensuring aerodynamic properties in the design.

Prototype 2

After brief testing with the first prototype attached to the case, it became apparent that the rudder was far too small to have any noticeable effect on the direction of the payload over a short period of time. The second prototype remained rectangular and made out of cardboard, however increased in size (22.5x15cm). The edge of the rudder now reaches over the edges of the case significantly more than the last prototype, exposing it to more laminar air than the previous model – the case is now also being designed in a way to increase laminar airflow over the rudder.
Another change made was to add thickness to the rudder on the side closest to the case – giving it the same airfoil effect, but on the axis that it will be exposed to air as it travels forward as well as down.

The next prototype material will be balsa wood, as it has a high strength to weight ratio and can easily be carved to feature the airfoil shape. Hopefully this will adequately fit the needs of the rudder, and hence be the final material too.

Servo-to-Rudder Attachment

The servo will be connected to a pushrod, which will stick through a hole in the case and attach (either screwed or soldered) to a clevis and holder that will be screwed to the rudder (as below).

Rod-to-rudder

Close-up rod-to-rudder.PNG

This allows the servo’s movement on only one axis to effect the direction of the rudder, and the servo will be placed inside the case to have best control over this axis.

Rudder-to-Case Attachment

The rudder will be attached to the case by a pin held into place by the case. It will slide into a hole either cut or drilled into the edge of the rudder, or else external clips will attach it to the pin (if drilling or cutting is likely to break the rudder). This allows the rudder to freely change directions with little friction, while still being fastened securely to the case.

Setting Up the Code

Setting Up the Code

We’ve started working on the data logging side of the software, and a working prototype will be complete – of both software and hardware – in time for our YICTE competition entry. We have decided on using C++ and Arduino as the programming languages for the software.