Skip to main content

Remote Flying Fish Project Part 9: Soldering and Arduino Programming

After getting the pieces of PCB ready from the manufacturer, now is time to get into the final part to get everything combined.

For soldering, you will need to prepare AT LEAST four kinds of tools:

1. Soldering Iron (with a stand of course, or you might easily cause unwanted accidents)

2. Soldering wire

3. Tweezer (SMD components are too small for the human hand to efficiently process with them)

4. Piler cutter

Other tools like wire stripper, flux, desoldering braid, desoldering pump, heat gun and so on, are all optional to me.

Here is a good starting tutorial worth taking a look at.

PCB is usually the most common part to encounter errors and requires a lot of retries. If you are already in the loop, don't worry, there is an alternative which I will tell you about later.

For our board, there are several tweak points to pay attention to:

1. Angle of the joint between the wing parts and main PCB

2. Angle of the DC motors installed onto the wing parts

mounting of the motor and wiring

3. Battery positioning

mounting the battery pack on the pcb

After soldering work is done, the object will look something like this.

final PCB assembly

From time to time, we should use a DMM to perform continuity tests during the soldering process, to ensure the soldered pins are well connected with the circuit.

Now we can try to connect the battery and put all the shunts on to check if power is delivered to the Arduino board and BLE module successfully.

Now you should see the lights on right!? Great, now to move to the next step: Arduino programming.

The logic of Arduino programming is kind of easy as there are only two parts we want to handle control:

1. Bluetooth Connection

2. Motor Control

So, similar to chapter 3-5, we will be using analogWrite and SoftwareSerial to complete our programme.

Here is the logic of operation:

logic of operation

Here is a programme setup excerpt:

Programme setup

Programme setup - part 2

The 20+ variables are used for a different kind of micro-adjustment of a simulated joystick controller output, which I am not elaborating on here. To make things clearer, consider your input a slider with origin at the centre. Then the motors should rotate clockwise or anticlockwise depending on the difference of slider value from the central one.

Drawing of a phone and slider position

For the skipped part in loop(), the looping logic would be like this:

looping logic

To make things simple, you can also use RemoteXY, which simply paste the code like we did in early chapters and change the analogue output accordingly to the RemoteXY parameters.

This part is worth trying a lot to add different variations to your outcome, so I am not explaining too much here to allow you to better brainstorm your own design.

Just remember one thing, if you encountered any errors on software ground, print out some messages and trim them down into functional chunks. Completing the tasks bit by bit will eventually lead you to the goal.

In the next chapter, we will move on deeper with some advanced ways of doing it.

You can download the pdf version of this chapter in the Download section below.

 Parts in this series

Downloads

lokit has not written a bio yet…