How To Build A Drone - Part 2
This is a 3 part blog, covering the following topics related to drone electronics:
Part 2: Video
Part 3: Navigation
Last time we discussed the communication system of your drone, including some popular antenna choices. This time we will focus on adding video. Not only does it make for great Instagram footage, but it also allows you to see through the drone’s eyes when flying.
Most commercial drones offer video, but sadly that’s not as simple as duct taping a camera to a drone. Firstly you need a good camera with an appropriate lens for the desired focal distance. If your drone is going to fly 10 feet from the subject then you don’t need much zoom, but if your goal is to read a speeding car’s number plate then you may want to invest in a telephoto lens. You also want to keep the camera pointed at the subject while flying, and avoid any shaking. For this purpose a gimbal and image stabilization may be useful. Once the video has been recorded, the drone can either just store it in memory, or stream a live feed back to the user. This is handy in situations where the user needs to see from the vantage point of the drone. For real-time video to work, the frames need to be sent to the user quite quickly. If the video lags, the user may crash the drone. Here at Symmetry we focus on electronics, so I will not be discussing the mechanical elements of the video system such as the gimbal. For a video to have a decent frame rate (> 30 fps) there are two main components of the video system which are required: a good compression solution to reduce the size of each video frame, and a good communication system to transmit the compressed frames.
The bandwidth requirements for video feeds are quite high. For uncompressed 1080p video at 60fps the required data rate is around 1-3Gbps, depending on the pixel format. These are extremely high data rates. So how can we get a live HD stream from our drone? We simply compress each of the frames to get a data rate we can transmit in real-time. The Averlogic AL582C SoC is an easy to use solution for streaming HD video directly to a smart device, or to another AL582C. It includes H.264 and JPEG compression codecs, SD card controller, WiFi controller, embedded DDR memory, embedded MCU, video processing engine, RGB DAC and TV encoder. So in essence the AL582C is the glue between the camera and your WiFi module, all in a 12 x 12mm LFBGA package. Averlogic has a few different evaluation kits to help fast-track your design.
Lattice Semiconductor also offers low cost video FPGAs and development kits to get you started. Using these, the video system can encode the video stream using the H.264 compression standard and then transmit the compressed stream to the receiver, which could be another of the same module, a smartphone, or any other device capable of receiving H.264 encoded data. For developers in a hurry, the GainSpan video streaming kit is a good option. This provides a simple-to-use development board which can send a live video stream to a mobile phone, allowing for rapid development of the application. It is available in a more affordable Application Evaluation Kit (AEK), which only contains the binaries of the software used, or as an Application Development Kit (ADK) that give you access to all the source code\
What if you want to make your drone a bit smarter, say by allowing it to follow a person or dodge obstacles? Now we’re moving into the realm of machine vision. In other words, the drone needs some intelligence to analyze the video, recognize patterns and react to those patterns. For instance the drone needs to recognize the outline of a person, and know to keep its camera pointed at that outline to take a good video. This can be very difficult, because a human on a bike looks nothing like a human that’s hiking. Video is not the only way that a drone can recognize objects and change its flight based on their location. The AMD G-series SoC is a good choice for this purpose because it has a great GPU as well as a fast application processor in a single part. It offers the combination of a dual or quad-core processor, integrated GPU as well as an I/O controller on the same die. Their small footprint reduces overall system costs and supports the development of small form factor designs. Choosing a processing solution can be tricky, because you don’t know exactly how much speed you really need before the software development is done. You don’t want to end up having to change the whole hardware design because it’s too slow, but you also want to keep your costs down. This is where the G-series SoC really comes in handy. It offers a scalable platform of processors that allows you to trade up to a more powerful solution without having to change your board or software designs. It also offers advanced graphics acceleration, with support for OpenGL, OpenCL, DirectX and open source Linux development. The latest addition to the G-series family has 4K hardware video support, dual channel DDR4/DDR3 and ECC support for high bandwidth memory access and integrity. The GizmoSphere Gizmo 2 is a great little development board for getting to know the AMD G-series.
Up next - Part 3: Navigation
Stay up to date with industry and supplier news!