Two Small Projects

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I did a couple housekeeping projects. Let’s get started!

Things are still settling from the fire. I did a followup to last week’s post on FimFiction, but I was able to come up with separate content for the two this week. Check it out if you’re interested: Post Evacuation Shakes.

Also of note: the workshop I’ve mentioned every so often is now officially open. They’re called The Third Workshop. I’ve been going there regularly for quite a while, working on whatever project I want.

Finally to the topic for today. I went to Third Workshop today while some strong-smelling chemicals were being used as part of the smoke cleanup. My stated goals: write a Bash script to setup Blinkie for testing code related to my OrbitCam project, and to get Blinkie to connect to any familiar WiFi network while headless.

My first project was almost trivial to write. I’d include it here, but I still haven’t figured out how to do a block of code.

The first line told the OS what interpreter to use. The second and third lines prepare the virtual environment, and since I was feeling adventurous, a fourth line changes directory to the folder I’m working in.

I added execute permissions to my script and went to test my script at the command line with “./OrbitCV”. It ran for a few seconds, then spat me back out to the exact same place I was in before.

My first thought was that it didn’t work for some reason. I tried renaming it to include the .sh name extension, but changed it back when I read the “hashbang” comment at the beginning already took care of that.

A relevant article had a couple typos, one involving a snip of code. The article was aimed at beginners. I sent some feedback.

My eventual theory was that stuff was actually happening, but it was being thrown away afterword, giving me a net of zero progress. Further reading and a couple tests confirmed that Bash scripts start new “shells” within one another like Russian nesting dolls. Reading a little further, I read about sourcing a script with “. ./OrbitCV” so it would run in the same shell.

My conclusion for now is that shells can be pictured as a computer streams of thought as managed by sets of parentheses. Likely not ideal, but I’m working with it for now.

My other mini project promised to be more difficult, but was similarly simple in the end. Blinkie, or at least Blinkie’s SD card the operating system is running off of, travels back and forth, but I’ve had difficulty getting it to automatically connect to a single WiFi network at once.

One of the great things about Third Workshop is that you aren’t often alone alone in your projects. If you are doing something new to the workshop, certain toys tend to appear. One such toy was a counterpart body for my BlinkiePie computer. Skill sets of those around you tend to expand to help you as well.

This time, I ended up on a small bit of a chase. I looked into solutions involving prioritizing what network to connect to. Two or three possible solutions later, I took a look at /etc/wpa_supplicant/wpa_supplicant.conf. What I saw reminded me of NBT data from Minecraft.

I saw each WiFi network Blinkie had ever connected to represented with a name, plaintext password, and another line I don’t know much about. The fourth line on most of them was what interested me the most: disabled:1.

Based on my own observations in the past, events in the present were not making sense. If what I was seeing was what I thought I was seeing, I should just be able to comment out the lines and have it work. I tried just that, and set Blinkie up at home, sans head (the glue didn’t hold the head) and without tightening the screws holding the board in place. Would you believe it just worked like I wanted for once?

Final Question: Have you ever taken on a tiny project you knew you could finish just because it would help with self-esteem?

Leave a Reply