Over the past couple of years we’ve been working on a rather cool new class of robots called Soft Curved Reconfigurable Anisotropic Mechanism(s), or SCRAM, under this National Science Foundation EFRI project. For my latest paper, Electronically Reconfigurable Virtual Joints by Shape Memory Alloy-Induced Buckling of Curved Sheets, I spent a lot of time working with shape memory alloy (SMA) wire while developing a SCRAM device. Much of this time was spent trying to figure out exactly how to solder to SMA wire, specifically a nickel (Ni) – titanium (Ti) alloy called nitinol. My conclusion after all that time? Soldering to SMA wire is really hard!Continue reading Soldering to Shape Memory Alloy (SMA) Wire is Really Hard
This tutorial covers setting up a pretty painless Raspberry Pi Pico C / C++ SDK development workflow on Windows using the Windows Subsystem for Linux (WSL) and Visual Studio Code (VS Code) with IntelliSense code completion!
With the Raspberry Pi Pico microcontroller being so new the current C / C++ SDK development process on Windows is a bit cumbersome. This tutorial should hopefully give you some ideas on how to go about programming the Raspberry Pi Pico the easy way with WSL and VS Code.
Note: This is not a beginner tutorial and assumes some minimal development experience.Continue reading Easy Raspberry Pi Pico Microcontroller C / C++ Programming on Windows
It’s not very well known that the Raspberry Pi has a built-in serial console that provides a fully working Linux terminal over serial. This allows for network-free headless access, including the absolutely necessary tab auto-complete! This feature is extremely useful for those projects that don’t use a screen or need network access. It’s also quite necessary when you are using a Pi as a wireless access point for a LAN without internet sharing.Continue reading Raspberry Pi Headless Access Using Built-in Serial Console
Localization, in the context of robotics, is the process of determining the location of something within an environment. This article serves as a basic introduction to indoor localization, covering the commonly used techniques and technologies.Continue reading Indoor Localization – An Introduction
I’ve been designing a 4-layer PCB for a product for a few months now and I finally got to the stage of assembling the prototype after the PCB and components arrived. Most of the passive components I used were 0603 surface mount parts so reflow soldering was the only viable option (if I wanted to maintain my sanity).
Since I don’t have a proper reflow oven, I decided to use the next best thing I own: No not my hot air rework station, a toaster oven!Continue reading Reflow Soldering in Unmodified Toaster Oven?
Goose is a mobile autonomous robot I designed and built over 6 months in my spare time for a robotics competition. This was a fully custom and challenging build that tested my competence in electrical engineering, mechanical engineering, control systems, and computer science.
Instead of focusing heavily on the competition, the goal of this article is to briefly go through the system design process. I’ll touch on my various design choices and discuss how I chose to address some of the common issues in designing an autonomous robot. This is not a tutorial (those will be coming later) but more of a case study.Continue reading Designing an Advanced Autonomous Robot: Goose
I recently had to design a 4-layer PCB and I finally decided to give KiCad another try (after hearing great things about version 5). I’ve known about KiCad for years and even tried it once a few years back but it never felt quite “there” yet. After spending a few months designing a 4-layer board I have to say it has certainly won me over.Continue reading 4-Layer PCB Design in KiCad 5: Quick Thoughts
I recently needed to build Python 3.6 from source on the BeagleBone Black for a robotics project and discovered that the build would always fail after running out of memory. Who could have figured that 512MB of RAM wasn’t enough to build Python from source?! While I could have set up cross-compilation and performed the heavy lifting on my computer with more resources, I figured this was a perfect problem to solve by adding swap memory to the BeagleBone Black.Continue reading Adding Swap Memory to the Beaglebone Black
Reading Time: 2 minutesThe BeagleBone Black ships with a really great browser-based IDE called Cloud9, which is accessed by going to your BBB IP address at port 3000. While I don’t use Cloud9 for heavy development, it’s handy for debugging and quick changes to scripts. It also has a built-in terminal which means I can do everything in the browser.
By default Cloud9 launches a workspace at
/usr/lib/cloud9, which has useful examples and scripts for all sorts of applications. I want it to point, instead, to my personal projects folder so I’ll change the default Cloud9 workspace on the BeagleBone Black to