Coding4Fun Drone posts
- Introduction to DJI Tello
- Analyzing Python samples code from the official SDK
- Drone Hello World ! Takeoff and land
- Tips to connect to Drone WiFi in Windows 10
- Reading data from the Drone, Get battery level
- Sample for real time data read, Get Accelerometer data
- How the drone camera video feed works, using FFMPEG to display the feed
- Open the drone camera video feed using OpenCV
- Performance and OpenCV, measuring FPS
- Detect faces using the drone camera
- Detect a banana and land!
- Flip when a face is detected!
- How to connect to Internet and to the drone at the same time
- Video with real time demo using the drone, Python and Visual Studio Code
- Using custom vision to analyze drone camera images
- Drawing frames for detected objects in real-time in the drone camera feed
- Save detected objects to local files, images and JSON results
- Save the Drone camera feed into a local video file
- Overlay images into the Drone camera feed using OpenCV
- Instance Segmentation from the Drone Camera using OpenCV, TensorFlow and PixelLib
- Create a 3×3 grid on the camera frame to detect objects and calculate positions in the grid
- Create an Azure IoT Central Device Template to work with drone information
- Create a Drone Device for Azure IoT Central
- Send drone information to Azure IoT Central
In my the live events where I explain how to code to control the drone, I show a scenario where drone information is sent to Azure IoT Central. I just realized that I never wrote about it, so here is post 1 of N to describe this scenario.
Azure IoT Central
As usual let’s start with the official description for this Azure Service
IoT Central is an IoT application platform that reduces the burden and cost of developing, managing, and maintaining enterprise-grade IoT solutions. Choosing to build with IoT Central gives you the opportunity to focus time, money, and energy on transforming your business with IoT data, rather than just maintaining and updating a complex and continually evolving IoT infrastructure.What is Azure IoT Central ? see references
The web UI lets you monitor device conditions, create rules, and manage millions of devices and their data throughout their life cycle. Furthermore, it enables you to act on device insights by extending IoT intelligence into line-of-business applications.
In the final output of this demo, we will have a device definition on Azure IoT central tracking
- Realtime values for the drone accelerator (axis x, y, z)
- Drone temperature (lowest and highest)
- Battery charge, in %
Something similar to this 👇
My 1st step is to create a device template. I was testing different configurations, and at the end I finalize with the 4th iteration of my drone template: DroneTemplate v4
This template defines the following capabilities
Important: we can use custom data types, like Vector for accelerometer. However in this sample, all the properties and telemetry are defined as Integer values.
Now it’s time to create a view to display some of the device properties. In this scenario I added a chart with the telemetry agx, agy and agz. And 2 separate viewers for the battery and temperature.
In the temperature tile, I added a conditional formatting to display the battery value in different colors depending of the device battery charge.
And that’s it! With this simple device definition I can start to connect my test drone with the Azure IoT Central portal.
¿Con ganas de ponerte al día?
En Lemoncode te ofrecemos formación online impartida por profesionales que se baten el cobre en consultoría:
- Si tienes ganas de ponerte al día con Front End (ES6, Typescript, React, Angular, Vuejs…) te recomendamos nuestros Máster Front End: https://lemoncode.net/master-frontend#inicio-banner
- Si te quieres poner al día en Backend (stacks .net y nodejs), te aconsejamos nuestro Bootcamp Backend: https://lemoncode.net/bootcamp-backend#bootcamp-backend/banner
- Y si tienes ganas de meterte con Docker, Kubernetes, CI/CD…, tenemos nuestro Bootcamp Devops: https://lemoncode.net/bootcamp-devops#bootcamp-devops/inicio