Have you ever wanted to have your own real life flying ender dragon? We have brought the Ender Dragon to life and you can build it for yourself! All you’ll need is a 3D printer or a 3D printing service because this entire dragon is 3D printed! You may not be able to tame and ride it, but this huge flying Ender Dragon with a1m long wing span and can lift up 3kg of weight.
This is a fully 3d printed flyable ender dragon. Like the Ender dragon in Minecraft this one is capable of following you around. In addition, it is also controllable by both RC controller or by voice commands.
This project is an extension of a previous project, voice controlled tricopter with many other added functionalities such as follow me mode, RC control, and a dragon shell with movable wings, head, and tail. Under the hood of the dragon is a tricopter which allows the dragon to fly. A tricopter configuration is chosen as opposed to a typical quadcopter configuration, since it is easily concealable under the dragons wings and tail.
Obviously, this project was inspired by the Ender Dragon in Minecraft. We wanted to make an Ender Dragon that does not only look like the one in Minecraft, but can also fly and move about like the actual dragon, including following you around!
Step 1: Materials and Equipment
- 3 Brushless DC Motors
- 3 Motor Shafts
- 3 40A Electronic Speed Controller
- 8x4 Composite Propellers CCW
- Power Distribution Board
- Wires and Connectors
- TGY-777 Servo Motor
- Battery and Battery Connector
- 6x 6-32x1" Shear Bolts, Nuts*
- 3M Dual lock*
- Zip Ties*
- High Torque Servo (TGY-306 recommended)
- Fishing Line or Thin String
- Black Spray Paint
- Black and White Acrylic Model Paints
- 2" or Smaller Foam Brush
- Bob Smith Industries Purple Cyanoacrylate (CA) Glue
- 2x Common Anode RGB LEDs
- 2x 150 Ohm Resistor
- 4x 90 Ohm Resistor
- 1x Solderboard
- 1x 4 Pin Header
- 1x 4 Pin F-F Wire
- 2x Long F-F Wire
- 1x 1"x1"x0.5" Plywood Piece or Item of Equivalent Size
Safety RC Control
Voice Controlled Ground Station
Equipment and Tools
* Bought from a local hardware store
Step 2: Content Organization
As this is a rather complex and long-term project I am providing a way of organizing this build to three main sections which may be performed simultaneously:
Dragon Hardware: The physical dragon body, wings, tail, neck, and head.
Tricopter Hardware: The physical frame and propulsion system of the tricopter.
Autopilot: The flight controller calculates the PWM signal to provide each of the 3 brushless motors and servo motor accordingly from user command.
Follow Me Mode: This allows the dragon to follow you around based on the GPS coordinates from your phone.
Voice Control: This allows the user to control the drone using voice commands and communicates via the MAVLINK protocol to the Pixhawk board.
Step 3: Designing the Ender Dragon
The entirety of the Ender Dragon was designed and Cadded in Solidworks. In order to get the appropriate design and sizing for these dragon parts, the Ender Dragon texture was taken straight from Minecraft, as a reference. By and large, the parts are designed to the scale of 3.75 mm per pixel. This was chosen to get a 9cm body width which nicely fits the tricopter I designed. Some parts were approximately sized for structural and mechanical reasons and for ease of printing and construction.
Download the attached STL files and open them in a CAD software of your choice or an online viewer from Autodesk, and make sure they look like the images above.
Step 4: 3D Printing the Ender Dragon
Print the Ender Dragon STL files in the following quantities:
- 1x body1.stl
- 1x body2.stl
- 1x tailneck-seg-head.stl
- 3x tailneck-seg-spikeless.stl
- 7x tailneck-seg.stl
- 2x wing1.stl
- 2x wing2.stl
- 4x leg.stl
- 1x head1.stl
- 1x head2.stl
It's recommended that you use black filament, but you can also paint it afterwards if you do not have black.
Minimal settings in Cura, the software responsible for converting the STL files to GCode, were used since they're not load bearing components. I used the Ultimaker 2+ for printing and these are the settings I used for printing are:
- 0.15mm wall thickness
- 0.30mm top/bottom thickness
- 10% infill density
- Grid infill patterns
Generate supports everywhere
To remove the print from the print bed, you can wait for it to cool down and it'll come off easily or use a spatula to get off. Then remove the brim with a x-acto blade.
Step 5: Gluing the Head of the Dragon
To save on printing material, the head and face/nose of the dragon are separated. Otherwise the supports would account for 50% of the print.
Put a generous bead of Purple Cyanoacrylate glue (CA Glue) around the brim of the faceplate. Then, gently press the two pieces together, and wipe any excess glue with a cloth. Be careful when handling CA glue, as it is hard to remove once it has bonded with your skin or clothing.
Step 6: Painting the Ender Dragon
If you do not have black filament, you can print it in any colour you have then spray paint it black. Black filament will look better, but a few even coats of spray paint looks almost as good.
Many of the parts were printed in white filament, so I had to spray paint them all black with Rust-oleum glossy black spray paint . To spray paint the 3D printed parts, I applied a generous first coat in the direction of the 3D printing grains. This will leave some sports that aren't quite dark black, so apply another second coat in the perpendicular direction. Lastly, apply one at 45 degree angle between the first two perpendicular coats. Repeat this until it is glossy black.
If you accidentally spray too much, grab a breather fabric and cover your painted parts to soak up the excess paint.
Step 7: Painting the Pixels
To make the dragon look more minecraft-y rather than a uniform black colour, we will paint individual pixels of the Ender Dragon.
Using the Ender Dragon images I found that there are two distinct patterns in this Ender Dragon
- All the fins are a light greyish tone
- The wings have a pixelated diagonal curved line from the centre point to the cusps of the wings.
To create a blocky pixelated colour to the dragon, we will be using a 2 inch foam tipped paint brush and acrylic model paints. Mix a darkish grey using black and white model paints (I used a 2:1 ratio) and paint a pixelated pattern on the neck/tail segments and body. Paint the dorsal spikes with the same grey. For the wings, mix a slightly lighter tone (I used 1:1) and paint the thick leading edge segment and ribs in a similarly pixelated style. If you want a bit more variety in the pixel pattern on the body and segments, add to the pixelated patterns you already made with this lighter tone.
Step 8: Gluing the Wings
The wings, like the head/face of the Ender Dragon are split into two pieces to fit in a standard size 3D printer. The two wing halves are designed to look like the Minecraft Ender Dragon with a pixel block difference around the perimeter where they attach.
Apply a thick bead of CA glue to the smaller sized wing then approximately place it flush along the wing and centred on the pixel-difference spar. Once glued, clamp it down and allow generous time (at least 30 min) to dry. For reinforcement, I also added a small layer of glue in the seam for both the top and the bottom and quickly dried it using glue accelerant (also by from the same company that sold the glue), which allows it to dry in a few seconds. Then, quickly wipe off the excess glue from the top before it dries.
Step 9: Gluing the Body
Like the wings and the head/face of the Ender Dragon, the body is also split into two segments. This is to facilitate both a faster print by minimizing supports but also to fit a standard 3D printer print bed. In my case, I used an Ultimaker 2+ for printing the body.
Like the wing we will be gluing the body using CA glue in a similar manner. Apply a generous amount of CA glue on the flat edge surface of one half of the body then place the other half against it, making sure to align the two seems flush from each other. Then with the help of a friend, clamp the two halves together on both sides and give it time to dry for about 30 minutes.
Step 10: Gluing the Neck and Tail Segments
The neck and tail segments must be assembled in the following sequence in the name of the STL files, from front to back:
- 1 tailneck-seg-head
- 3 tailneck-seg
- 1 body1
- 1 body2
- 3 tailneck-seg-spikeless
- 4 tailneck-seg
Every connection in this sequence is held together with CA glue. The segment pieces are rounded to allow you to put the neck and tail in whatever position you'd like before gluing them in place. Put a thick bead of CA glue over the concave surface of the segment, then fit the head piece snugly over the tail-neck segment piece. When you're done, your dragon should look like the third picture above.
You can customize the number of tail or head segments linked together and the angle that they are connected by gluing each convex and concave surfaces at an offset from each other. I chose the neck to be angled downwards so as to appear as looking down while flying and the tail to be formed as an S-like shape.
The only prerequisite for gluing the tail and head segments pieces are that the aft of the body must be connected to at least 3 finless tail segments such that the tail of the tricopter will fit.
Step 11: Gluing the Legs
The legs of the Ender Dragon are there for aesthetic reasons, real and accurate representation of the dragon, as well as a structural landing feet when the dragon decided to land. After all, it can't keep flying forever.
The legs are simply glued onto the sides of the body, with the top of the leg about 1.5-2 cm above the bottom of the body. Make sure to line up the legs with a flat surface before allowing them to dry. You should now be able to stand up your pet dragon!
Step 12: Flapping the Wings
To start, drill holes in each wing (I used 1/16", though anything close is fine) just behind the leading edge segment, in line with the tip of the innermost wing rib. Tie the fishing line through this hole, run it through the hole in the side of the body, thread it through the outmost holes on the control horn (with at least two arms) on your servo, out the hole in the body on the other side, then tie it to the other wing. Raise the wings and tie it as tight as possible so that when you release the line, the wings sit a little below level. Turning the servo in either direction should raise the wings.
The dragon itself is now complete! Why not give it a name?
Step 13: Soldering the Purple Eyes LED Circuit
To give the dragon vibrant purple eyes, we used addressable RGB LEDs. The ones we used have a common anode, meaning there is a common positive pin and three ground pins, one for red, green, and blue. Each RGB LED is represented in the above circuit diagram by three separate LEDs. It's recommended that you solder an LED board with a header output as done above.
`The resistor values are chosen for 5V input, which is what the Arduino Nano provides, 150Ω for the red LED and 90Ω for both the green and blue LED. Attach the four output pins (R, CA, G, B) to digital pins (3, 4, 5, 6) on the Nano and upload the attached code. This will make the LEDs glow purple. If you like, you can change the code to show a different colour or have the colour change gradually!
Step 14: Crimping the Connectors
To power on the dragon we need a custom-made connectors between the Arduino mini, which in turn powers the LEDs to the power source from the Pixhawk. You can also use 2 long jumper cables, but to make it fool-proof, I decided to crimp my own connectors using Futaba pins.
First, strip a set of black and red wires. Grab a set of Futaba female pins and place it on the second level down the crimper. Then, add a bit of force to hold the connector steady on the crimper. Once it's steady slide the solid core wire in and crimp the wire onto the connector by squeezing the crimper. Do not crimp the wire insulation with the wire, since this puts force onto the wire and it breaks more easily. Slide the connector with the wire onto the housing until it clicks in.
You want on side to have red in the middle and ground to the side, while the other side to have red and black on opposite sides of the connector. Cut the wire to an appropriate length depending on how long the neck of your dragon is. To further organize the cables, I decided to braid the red and black cables together so there aren't any loose wires hanging.
Step 15: Lighting Up the Ender Dragon
To make the Ender Dragon's eyes and mouth we will use the two RGB LEDs that we soldered before, and diffuse it on the entire head. To diffuse the light, I chose to use a folded tissue paper; it's cheap yet effective!
Get some tissue paper is put inside the dragon head to diffuse the LED light. Glue a bit of plywood (or anything about 1/2" thick) to the roof of the head as a spacer, then glue the LED board to it. Put your attached Nano inside (it doesn't need to be secured) and the head is done!
Step 16: Designing the Tricopter Frame
The entire frame of the tricopter is 3D printed on the Ultimaker 2+. The frame is separated into 5 main components in order to fit the build plate of the Ultimaker 2+ and to make it easier to reprint and repair particular parts in case they get damaged in a crash. They are:
- 2 Front motor arms (main-arm.stl)
- 1 Tail arm (tail-arm.stl)
- 1 Connecting piece between the tail am and the two front motor arms (tail-arm-base.stl)
- 1 Tail motor mount (motor-platform.stl)
Step 17: 3D Printing the Tricopter Frame
Print these parts with at least 50% infill and use lines as the infill pattern. For the shell thickness I use a wall thickness of 0.7mm and top/bottom thickness of 0.75mm. Add build plate adhesion and select brim at 8mm. This frame was printed with PLA plastic filament, but you can use ABS plastic filament if you prefer a more robust but heavier tricopter. With these settings, it took < 20 hours to print it all.
If the brim is not sticking to the printing surface of the 3D printer, use a glue stick and glue the skirt to the printing surface. At the end of the print, remove the build plate, wash off the excess glue, and wipe it dry before putting it back in the printer.
Step 18: Removing Supports and Brim
The 3D printed parts will be printed with supports everywhere and with an outer brim that needs to be removed prior to assembly.
The brim is a single layer of PLA and can be easily peeled off from the part by hand. The supports on the other hand, are much harder to remove. For this you will need a pair of needle nose pliers and a flat head screwdriver. For the support that are not in enclosed spaces, use the needle nose pliers to crush the supports and pull it off. For supports inside holes or enclosed spaces that's hard to reach with needle nose pliers, either drill through the hole or use a flat head screwdriver to pry it off from the side, then pull it out with the needle nose pliers. When removing supports be gentle with the 3D printed part as it can snap off if you stress it too much.
Once the supports are removed, sand off the rough surfaces where the supports used to be or carefully carve the remaining support with a hobby knife. Use a sanding or grinding bit and a dremel to smooth out the screw holes.
Step 19: Assembling the Tricopter Frame
For assembly, you will need six bolts (preferably shear bolts, 6-32 or thinner, 1" long) to secure the frame together.
Take the 3D printed parts called main-arm.STL and tail-arm-base.STL. These components interlock like a jigsaw puzzle, with the tail-arm-base being sandwiched in the middle of the two main-arms. Align the four screw holes then insert the bolts from the top. If the parts don't fit together easily, don't force them. Sand the tail-arm-base until they do.
Next, slide the tail-arm onto the protruding end of the tail-arm-base until the screw holes align. Again, you may need to sand before it fits. Bolt it from the top.
To assemble the motor platform, you need to first insert the servo into the opening on the tail-arm, pointing backwards. The two horizontal holes should line up with the screw holes on the servo. If friction fit isn't sufficient, you can bolt it into place through these holes. Then put the control horn onto the servo but don't screw it in. That comes in a moment.
Slip the motor platform's axle into the hole at the very end of the tail-arm and the other side over the horn. The horn should fit nicely into the inset on the platform. Finally, put the horn screw through both the hole in the platform and the horn as shown in the image above.
Step 20: Installing the Motors
The brushless motors won't come with the propellor axles and mounting cross-plate pre-attached, so screw those on first. Next you bolt them onto the motor platform and main arms of the tricopter using either the screws that came with it or M3 machine screws and nuts. You can attach the propellers at this step to ensure clearance and admire your handiwork, but remove them before pre-flight testing.
Step 21: Wiring the Autopilot Board
Connect the sensors to the Pixhawk Autopilot board as shown in the diagram above. These are also labeled in the autopilot board itself and is quite straightforward to connect, i.e. buzzer connects to the Buzzer port, switch connects to the switch port, power module connects to the power module port, and telemetry connects to the telem1 port. The GPS and external compass will have two sets of connectors. Connect the one with more pins to the GPS port and the smaller one to I2C.
These DF13 connectors that go into the Pixhawk Autopilot Board are very fragile, so do not tug on the wires, and push and pull directly on the plastic casing.
Step 22: Wiring the Radio Communication System
The radio control communication system will be used as a safety backup to control the quadcopter in case the ground station or Alexa malfunctions or mistakes a command for another.
Connect the PPM encoder to the radio receiver as shown in the image above. Both the PPM encoder and receiver are labeled, so connect S1 to S6 to the signal pins 1 to 6 of your receiver. S1 will also have a ground and voltage wires with it, which will power the receiver through the PPM encoder.
Step 23: Soldering the Power Distribution Board
The PDB will take in input from the Lithium Polymer (LiPo) battery with a voltage and current of 11.1V and 125A, and distribute it to the three ESCs and power the Pixhawk Autopilot board through the power module.
This power module was reused from a previous project made in collaboration with a friend.
Before, soldering the wires, cut the heat shrink to fit each of the wires, so it can be slipped onto the exposed soldered end later to prevent short circuiting. Solder the male XT90 connector leads to the PDB pads first, then the 16 AWG wires to the ESCs, followed by the XT60 connectors onto these wires.
To solder the wires onto the PDB pads, you need to solder it upright so that the heat shrink can fit through and insulate the terminals. I found it easiest to use the helping hands to hold the wires upright (especially the large XT90 cable) and place it on top of the PDB resting on the table. Then solder the wire around the PDB pad. Then, slide the heat shrink down and heat it to insulate the circuitry. Repeat this for at the rest of the ESC wires. To solder the XT60, follow the previous step on how the ESC battery terminal was replaced with XT60s.
Step 24: Wiring the Motors and Electronic Speed Controllers
Since we are using brushless DC motors, they will come with three wires which will connect to the three wire terminals of the electronic speed controller (ESC). The order of the cable connection do not matter for this step. We will check for this when we first power on the tricopter.
The rotation of all three motors should be counterclockwise. If a motor isn't spinning counterclockwise, then switch any two of the three wires between the ESC and motor to reverse the rotation.
Connect all the ESCs to the power distribution board to provide power to each one of them. Then connect the front right ESC to the pixhawk's main out 1. Connect the front left ESC to the pixhawk's main out 2, the servo to main out 7, and the remaining tail ESC to main out 4.
Step 25: Mounting All Electronics to the Tricopter
Step 26: Unite the Tricopter and Dragon
The fully assembled tricopter and dragon should easily attach by snapping the tricopter arms into the C-shaped clips in the body piece for the dragon. If you want the extra bit of security and don't plan on removing your tricopter from your dragon, add CA glue to the joint.
Step 27: Power the Nano From the Pixhawk
Open up the head and connect long F-F wires to the 5V and GND pins. Connect the other ends to the corresponding pins on the Pixhawk servo outputs. If the Nano has the code uploaded, the LEDs should light up and the eyes glow.
Now is also a good time to check that the wing flapping works. Connect the servo to one of the receiver outputs directly, turn the transmitter on, and move the joystick back and forth.
Step 28: Configuring the RC Controller
Configuring the RC controller involves checking for reversal of the four joystick channels (throttle, roll, pitch, yaw) and assigning a preferred switch to selecting flight modes, which is channel 5 on the Pixhawk. You can also set the name for your model here. After the tricopter, my dragon is named Oliver.
Step 29: Setting Up Autopilot Firmware
The firmware chosen for this tricopter build is Ardupilot's Arducopter with a Tricopter Configuration. Follow the steps in the wizard and select the tricopter configuration in the firmware.
Step 30: Calibrating the Internal Sensors
Connect with the tricopter using the wireless telemetry module by selecting 'auto' at the top right corner then click connect. It will take a while to connect wirelessly since it's connecting through 900MHz.
Follow the steps in the wizard to calibrate the following internal sensors:
- External Compass
Since there are components on the underside of the tricopter, prop the tricopter up with a box before calibrating the level position with the accelerometer. This is crucial because the accelerometer will be used for determining the attitude of the tricopter.
The compass will require sampling from a wide range of positions, so you should move the tricopter around as shown above during calibration.
Step 31: Getting Started With Follow Me Mode
Follow me mode requires the Ender dragon to follow a GPS coordinate transmitted via telemetry. There are two approaches to this, either but a USB GPS module and plug it in to our custom raspberry pi ground station and change the mode from guided to follow me or just use the GPS on your phone. The latter is the more economical and easier approach so we will use that.
Unlike RC or voice control, instead of using mission planner as our ground station, we will be using Qgroundcontrol since it is available through an app as opposed to Mission Planner. However, this requires uploading the PX4 Pro firmware rather than Ardupilot. This will be detailed in the next couple steps.
Step 32: Uploading PX4 Pro Firmware and Redoing Calibration
This step should be done with the PC version of QGroundControl rather than the mobile version. Everything is perfectly analogous to Ardupilot and Mission Planner.
First go to Settings -> Firmware and then plug in your Pixhawk. It will automatically be recognized and ask whether you want the PX4 or Ardupilot firmware. Follow the steps until the firmware is installed.
You'll then be required to calibrate all the sensors as you did with Ardupilot before. The only significantly different one is compass calibration, shown above, where it asks you to move the tricopter in specific motions. Once it's all done, you can go ahead and select your flight modes. My radio by default mapped channel 5 to a three-position switch that activated flight modes 1, 4, and 6, so I set those to my flight modes.
Step 33: Connecting With Your Phone and Using Follow Me Mode
Next up is taking out your phone, OTG cable, USB micro cable, and telemetry. Connect as shown above and open the QGroundControl app. You can do almost everything here that you could with your computer including calibrating the sensors and radio and setting and viewing flight modes. If your radio transmitter can successfully switch into and out of Follow Me mode, congrats! You have it set up!
Also, make sure the GPS in your phone is on and working before setting your tricopter to Follow Me mode. That's how it follows you!
Step 34: Voice Control Using Amazon Services Overview
There are three Amazon developer tools and services that we will be using in order to provide a voice control of for Oliver the Tri. These tools and services will allow us to process the voice commands, run our code, and communicate with our ground station over MQTT which is then relayed to the Tricopter Drone.
We will setup the following in the next steps:
- Amazon Web Services (AWS) IoT Core
- Amazon Web Services Lambdas
- Amazon Alexa Skills Kit
In addition, we will also use the Raspberry Pi as our ground station, running a customize version of Mission Planner which operates in Guided Autonomous Flight Mode and commanded over telemetry using MAVLink Protocol.
AWS IoT Core will communicate with our 'thing' (from Internet of Things) that is the Raspberry Pi ground station over MQTT. MQTT, like MAVlink is also a messaging protocol, but rather than through 900MHz telemetry, this will be communicating over WiFi (in our case 2.4GHz). In short, the AWS IoT core establishes a connection between the itself, the server, and it's node, the Raspberry Pi.
AWS Lambdas is a cloud computing platform which will run our NodeJS code. The NodeJS code will process the parsed voice commands and handle the intents for a particular skill. This includes the speech output for Alexa, following a command, verifying valid commands, etc.
Amazon Alexa Skills Kit will be used to listen to the voice commands through an Amazon Alexa Device and parse it through a set of intents and sample utterances, which we define.
Step 35: Setting Up a Thing With AWS IoT
First, create an account and login to AWS Console. You can sign up for free.
Once logged in, change your server to N. Virginia since that is where Alexa Skills Kit is supported. Mine defaulted to Ohio, so I had to redo it for N. Virginia.
- Go to services and select AWS IoT Core.
- Select Manage >> Things and selectRegister a Thing
- On the next screen click Create a single thing
- Give your thing an appropriate name, I called mine PiGroundStation then click next.
We've now create a Thing for our Internet of Things. Next we need to set up a certificate and a policy to provide our thing and lamda.
Step 36: Setting Up Security Certificates
Continuing on from the AWS IoT Thing wizard, we will create a certificate.
- Select Create Certificate
- Then, download all of the files, certificate, public key, private key, and root CA. Save these files to a safe place as we will need them later when configuring our ground station so it can communicate with AWS.
- Navigate to the Security tab and find your certificate. Then, select attach a thing, select your thing, and attach it the certificate to the thing by clicking attach. Note the Certificate ARN, copy it to a notepad as we will need this later.
Now, we will gather a few more crucial information in preparation for the configuration of our ground station.
- Navigate to the Interact tab and copy the Rest API Endpoint, this will be our host information, and the MQTT Thing shadow.
Step 37: Creating a Policy
The Thing and the Lambda ideally would each have their own policies. For the sake of the demo, we will be creating a very open and permissive policy that can be used by both the Thing and the Lamda.
- Under the Secure>>Policies tab, select create a policy
- Name the policy appropriately, I named mine very_permissive_policy
- Assign action as iot:* and resource arn as *
- Select allow for effect and click create.
- Once done, like in the certificate step, attach the policy to your thing. Note, the Policy ARN, copy this to a notepad.
Step 38: Setting Up the Lambdas
Firstly, ensure that you are on the N. Virginia server, as this hosts Alexa Skills Kit which we will need.
- Navigate to the top panel and select Services>>Lamda. Then click, create Lamda function.
- Under the create function window, select Author From Scratch. Assign it the name EchoDroneControl, as this will need to match the name of the directory on the Raspberry Pi. The runtime will be Node.js 4.3.
- Select Create a Custom Role; this will open a popup window and assign it a role name lambda_basic_execution. Click Allow on bottom of Lambda Role page.
- Back at the Create Lamda Function page, Leave the other options at their default value except Timeout, increase this to 10 seconds. Then click Next.
- Under the triggers, add Alexa Skills Kit from the left pane.
Step 39: Creating a New Alexa Skill
Create an account with the Alexa developer portal. This is where we will create our custom alexa skills.
- At the top bar, select Alexa Skills Kit>>Start a Skill.
- Give your Alexa Skill an appropriate name and invocation name. I used Drone Control and Drone for the name and invocation name of my skill, respectively. Then click Next.
- Copy the intent schema code to the text block.
- Copy the sample utterances code to the bottom text block. Then click Next.
- Copy and paste the ARN link that you kept in the notepad in previous steps, then click next.
Now, before testing out the skill we need to setup the ground control station in with which the lambdas will communicate in the next step.
Step 40: Installing Raspbian to the Raspberry Pi
- Download the latest version of noobs NOOBs from the raspberry pi website and unzip the content.
- Copy and paste the content onto a formatted FAT32 SD card.
- Then plug in the raspberry pi to a monitor and a power source and install the operating system following the wizard.
Step 41: Installing AWS Commands and Configuring Parameters
Open terminal (or SSH) on the Raspberry Pi and run the following to install and verify AWS Commands:
pip install awscli --user<br>aws --version
- Open the IAM console and set the user details as shown below
- Under the roles tab, attach the policies shown in the image below and click Next.These will be used to run the configuration file on the ground station.
Step 42: Setting Up a Custom Ground Control Station
- SSH onto the raspberry pi and login with the default password raspberry.
- Enter the following commands onto terminal once logged in
cd ~<br>sudo apt-get install avahi-daemon sudo chown pi /usr/local/ -R sudo apt-get install nodejs npm -y sudo apt-get install zip sudo apt-get install screen pip install awscli pip install dronekit pip install paho-mqtt git clone <a href="https://bitbucket.org/veggiebenz/echodronecontrol/">https://bitbucket.org/veggiebenz/echodronecontrol/</a> dronecontrol cd dronecontrol mkdir certs<br>
- The code open-sourced and can be found here. This will be cloned onto the raspberry pi ground station.
- Download Cyberduck, an SFTP app which allows the transfer of files to and from the raspberry pi.
- Login in to the Raspberry pi on Cyberduck with default username pi and password raspberry.
- Transfer the certificates to the certs folder.
- On Raspberry Pi, navigate to ~/dronecontrol/EchoDroneControl/ where the files you need for the Lambda and Alexa Skills kit are stored and edit upload.sh file with the following changes:
- Add the Role ARN value into the variable on Line 3.
- Add your Rest API End Point as the host.
- Add your MQTT Topic
- Add your Alexa Skill App ID
Step 43: Fly the Tricopter by Itself First!
Before flying your tricopter with the dragon attachment, you'll want to verify that everything functions as intended. Find a day with good weather and fly the tricopter in any mode you choose, whether it's fully autonomous waypoint navigation, manual flight, or voice control.
Here are some commands to get you started:
- Alexa Launch
- Alexa Turn Left
- Alexa Move Forward 5 meters
- Alexa Land
- and more... (see sample utterances for more)
Finally, mate the tricopter and dragon again and enjoy your new pet ender dragon!
Step 44: Fly the Dragon!
Once the Tricopter is flying stably, it's time to take off with the dragon!
Attach the tricopter back into the dragon by clipping it in and fly it! Have fun!