Category: Technology

Posts that are tech related

  • Drone Light Show (Part 1) – Research

    Drone Light Show (Part 1) – Research

    I’ve been recently looking into building custom drones for a light show. A drone light show is a fleet of drones with lights that fly synchronously to display an image or animation in the sky.

    Intel's 500 drone light show
    Intel’s 500 drone light show

    Each drone has a GPS tracking device to ensure proper distance and movement. One central base station on the ground has a laptop running the Skybrush server (more about that later), which communicates to the drones with movement controls and flight plans.

    My first step was researching software and what kind most people use. Was it free? What drones can it run on? Etc. Some quick googling revealed an excellent software called SkyBrush. Skybrush is open source and offers all the steps from planning your sky layout to executing the formation.

    Using their software starts with Blender (or SkyBrush Studio). They offer a blender plugin that lets you control speed and formation, which you can later export to code for the SkyBrush server to use on the field. Full page here.

    After finding SkyBrush, I looked at building custom drones. First, I found this article on the subject from DojoforDrones a couple of months ago. It’s a detailed post on how he built and configured drones to work with SkyBrush and perform full drone shows. He got away with spending about $899 on each drone. (He used a kit that he offered on his website for $899.)

    One of the most expensive parts of the setup ended up being the GPS. You would imagine using the same technology as any $200 Android would be cheap. However, the GPS system that he (and many others) used was using RTK (Real-Time Kinematics). Essentially, it uses not only one satellite, as in a standard GPS device but a minimum of 4 satellites; this improves accuracy as you get the full “3D” tracking of the satellites in different places in orbit. In addition to 4 satellites, you also use a base station that provides correction data to the drone.

    ↴ Fun Fact

    There are 4 current GNSS sattelite companies (countries):

    • Global Positioning System (United States)
    • GLONASS (Russia)
    • Galileo (EU)
    • BeiDou (China)

    www.geospatialworld.net/blogs/what-are-the-various-gnss-systems/

    RTK GPS example
    https://en.wikipedia.org/wiki/Real-time_kinematic_positioning

    One major con to this system is price. Pricing can be a minimum of $200 to quickly going over $400 just for the GPS system. The most popular one I’ve seen others use is the HolyBro F9P, primarily for its accuracy and “Plug’n’Play” with Skybrush and ArduPilot. The main reason SkyBrush doesn’t recommend using a standard cheap GPS device is its accuracy, which is not good enough for drones to operate close to each other without homing fails and possibly crashing with the other drones mid-flight. There is also an FAQ that answers this.

    There is also a super detailed video by DroneDojo on YouTube that tests the actual field differences in GPS systems. I encourage you to watch the whole thing, but the main synopsis is at 19:02

    Another factor in the base station setup is a Wi-Fi router. This communicates to the drones to update any pre-flight plans and to update information on the Skybrush server running on the laptop. Most people I’ve seen use a standard home Wi-Fi router they had lying around, and that seemed to do the trick. But this also requires each drone to have Wi-Fi onboard, which is relatively cheap, with good ones going for about $45.

    I briefly mentioned ArduPilot earlier; ArduPilot is the base firmware you would run the drone off of and what SkyBrush installs next to. ArduPilot (or ArduCopter, a branch) can run on almost any correctly wired flight controller, ranging from cheap to expensive. Also, being open source, it has many branches and modifications available for almost any hardware (foreshadowing next post). A popular flight controller I see referenced with SkyBrush is the HolyBro Pixhawk 6C. While not the cheapest option, it is the most Plug’n’Play with out-of-the-box support for the LEDs I would mount on the drone and the RTK Module.

    However, I have found exciting leads on cheaper alternatives to the most expensive parts of this project, including a more affordable RTK module…

    That will be covered in the next part of this series. In the meantime, I created a read-only Discord server that will be the main update to this project before blog posts.

    Useful links:

    SkyBrush FAQ https://doc.collmot.com/public/faq/latest/index.html

    “How I Build Custom Light Show Drones…” https://www.youtube.com/watch?v=qBjRaalXJmY

  • Enhancing Impact with Screenshots and Animations

    Enhancing Impact with Screenshots and Animations

    Something I’ve learned is that editing short clips (social media videos that are usually limited to 60 seconds) and inserting screenshots to get your point across effectively is hard. And after I’ve played around with a few different methods in attempts to improve that, I think I’ve significantly improved it.

    Last week, when I was working on editing a clip, I decided to experiment with screenshots; this time around, I tried an “on-screen look.” Instead of just slapping an image full of small text, I used a couple of really cool features in Premiere to animate, blur, and highlight the text to bring focus to the actual important part.

    Here are examples of a video that has editing and no editing of the screenshot:


    In the second example, I added a bunch of extra effects to get across the focus of the screenshot. One of those changes that I had never used before was the “Basic 3D” effect; it adds that tilting/pan animation, which really emphasizes the “on-screen” effect.

    Some more minor changes were the blurs. In the background, I added a stock photo of the topic (in this case, a girl crying) and some blur to blend it into the background. Another blur that I added was around the headline. A simple “Gaussian Blur” with an inverted mask did the trick. The highlighting effect was also done by simply keyframing two orange blocks with the opacity set to “Multiply,” which blended the colors, instead of just turning down the opacity for a transparent look, which would work just not as clean looking.

    Most of this I learned from a handy tutorial video by the channel Storysium. Which brings me to my next point:

    It’s easier than ever to start Video Editing

    The great thing about video editing is that almost everyone needs to do it. Thus, there are hundreds of thousands of tutorials on basically any way to edit. And all for free on YouTube. Most of my learning has been from just watching shorts, or other videos in which I see someone do a really cool effect, and then I look up or try to replicate that myself. I myself am still learning stuff, and I think I can still improve many aspects of my editing, but with the free use of YouTube and many people willing to share their presets for small prices, it’s a quick process to get started with video editing today.

  • 3D Printing an RC Plane

    3D Printing an RC Plane

    I spent about three weeks working on 3D printing an RC plane. I had initially searched for a somewhat easy RC plane to print and assemble as I’ve never had any experience with RC vehicles in general. I eventually found a good model that was both free and looked simple enough for me to be able to print. The model I ended up with was the Piper J-3 Cub by 3DLabPrint; 3DLabPrint is a Czech Republic-based company that designs 3D printable RC plane models. They have a bunch of options to choose from when it comes to RC planes.

    It took me about three weeks from starting printing to assembling electronics and crashing flying; I went with Polymaker LW-PLA, as they had a summer sale when I purchased; you can get a roll of plastic (and support me) by clicking here.

    3DLabPrint recommends their plastic, but the shipping would have been pricey as they are located in an overseas country. But there is a difference between PolyLight (3DLabPrint brand) and PolyLite (Polymaker brand). Polymaker prefoams the material, which makes it easier to print as it has very similar properties to regular PLA, and thus, I was able to print it at my stock PLA slicer profile. 3DLabPrint’s LW-PLA is not prefoamed and requires more tuning to compensate for expansion and other variables when it comes to printing.

    For the first couple of parts I printed, I hadn’t gotten the printer’s slicing profile correctly; for example, I accidentally added two bottom layers and two top layers, which I don’t need for this model as specified in the instructions. 3DLabPrint provides extensive instructions on how to assemble and prep your printer before printing. But after some trial and error, I got the slicer settings down and printed the rest of the parts. It took me about a week to print and assemble all the details, but I didn’t purchase the electronics till later in the following weeks.

    In total, I spent about 68 hours of just printing. That also includes any mistake prints and or extra parts, or multiple of the same parts, and other materials printed like the landing gear and tires. All the pieces were printed on my heavily modded Ender 3; I believe a stock Ender 3 (or similar-priced printer) should be able to print this material just fine. I would advise printing in 1.15 extrusion multiplier (or flow) in your slicer and printing a bit lower temps, at about 195°C for the hotend.

    If you don’t have a 3D printer, I recommend a Sovol SV06 for a cheap option or a Bambu Lab P1P if you want to go for a more quality and hassle-free brand.

    At first, I ordered the wrong parts; the ESC was made for drones and hadn’t come with a 5v line that was standard for RC planes. I returned it and got the correct one. (List of my configuration below)

    (affiliate links)

    The only problem now is that I have no idea how to fly an RC plane. I watched a couple of videos to check I got the directions right and propellor was working correctly, (thanks to the folks in PW3D’s discord channel, I could ask noobie questions and get informative answers.)

    I tried to fly and crashed it almost immediately, which I believe is due to user error and not a design flaw. At the moment, I need to repair it and attempt another take-off again. I can say I got it in the air (6-9 feet at least) with 75% throttle but had not correctly lowered the throttle, and it came straight down, cracking the wing assembly and a couple of other parts of the main body.

    Crashed RC Airplane

    Crashed on Aug 19th, 2023

    That’s been my experience so far on 3D printing an Airplane. If you have any questions or thoughts, leave them in the comments box below, and I’ll get back to you.

    *Disclaimer: Most products linked are affiliate links and will support me if purchased through them.

  • Using a DSLR Camera with Octolapse for Stunning 3D Printing Timelapses

    Using a DSLR Camera with Octolapse for Stunning 3D Printing Timelapses

    Recently I bought a used Canon SL1 camera; it’s an old but great camera to use as a webcam or any general-use camera taking. One benefit is that it works with a lot of software using the USB port to capture a live video feed from the camera. When using the USB port it does have a bit of delay between the camera and the live feed, but it isn’t super noticeable in recordings.

    I also discovered it works with Octolapse, a plugin for taking seamless-looking time-lapses of 3D prints. Following a tutorial by the creator of Octolapse (FormerLurker), I started setting up my camera with my Octoprint server.

    The tutorial starts with the initial installation of the main program to interface with the camera. gPhoto. gPhoto supports a wide range of cameras, including my camera, which can File transfer, live view, and capture photos or videos.

    What is gPhoto?

    gPhoto is a set of software applications and libraries for use in digital photography.

    gPhoto Wikipedia

    With the installation, I generally followed the provided steps. Updated any updates that my Ubuntu server needed, updated Octoprint. When installing gPhoto, I had to use the “alternative instructions” since I didn’t run my Octoprint server on a Raspberry Pi, the structure of Linux flavors and different device configurations can make it differentiate the process configuring scripts and general directory locations.

    Next is editing the “sudoers” file. It is similar to the standard setup, but instead of the regular path, I used the provided command to find the install directory where gPhoto was installed. I also used the output inside the line of code I needed to insert into the last line on the file.

    whereis gphoto2
    
    output:
    
    gphoto2: /usr/local/bin/gphoto2

    After that, I can test gPhoto with a snapshot command; surprisingly, it worked! I heard the audible click, and it saved a picture to my server. Once that is set up, the next step is to create a script for the plugin to run in Linux that holds a picture, deletes it from the original SD card, and saves it to where the snapshots need to be stored to later process the whole timelapse video.

    The script included with the tutorial works out of the box for me, thanks to FormerLurker’s documentation.

    After that, I add it to the plugin’s configuration. Which also went well. I continued the guide with “Configuring a DSLR camera,” After which I started a print, and the final result after rendering is below:

    Final result. (Actual quality of the printed cube was terrible due to a lack of tuning at the time)

    One issue after rendering, which I could only fix by uploading it to YouTube, was the encoding and format of the rendered video. VLC media player says its renders at 4K, meaning 4000 pixels across. For some reason, my computer could not play 4K in the regular Windows media player or even my other video players without rendering it at 1/16’s quality. This may be due to the lack of support in my computer’s GPU (Intel Arc A370M Laptop GPU), but I’m unsure. But I can change that in Octolapse’s settings when it renders the final video. The F-stop was also not set correctly, which I can adjust in the camera’s menu.