Check out my robotics company, Veldt Robotics, and our debut project AMHIL here: http://veldtrobotics.com
This has been the busiest seven months of my life! Let’s look at what I’ve done so far:
It’s been 80-100+ hour weeks all the way through. If I disappear in September, I promise I’m OK; I just needed some time off! But honestly, I’ve accomplished awesome things, I continue to work on really cool projects, and I can’t say that I’ve been bored at all. In August, once my MSEE program and 59 Days of Code wrap up, I’ll be back to work on BB-8, my 3D printer, the motion simulator, and the Wrench outfit.
2016 has been quite a year. I’ve continued progress on my Masters Degree in EE, covering classes on inertial, satellite, and integrated navigation, as well as digital signal processing and state space control systems. I started a new job in February at the coolest place in town which has given me the chance to write software and teach software classes. I’ve worked on a multitude of web applications in everything from .NET to MEAN stack. I’ve played around with a variety of side projects, including my Arc Reactor, BB-8, and File Encryption. And now I’m working on my first Virtual Reality application, a secret project for my company that I can’t wait to share! And if that’s not enough, I’ve put together a team that has been working on the NASA Space Robotics Challenge where we have been programming a virtual version of NASA’s R5 Valkyrie robot! I’ll be able to share more on that next month.
Moving forward, 2017 is going to be a blast. At the start of January I’ll be moving off of development work and begin leading a Cohort (team of interns). I’ve very excited for a chance to flex my project management and teaching muscles! I’ve only got 3 courses left for my Masters, which will wrap up in August. So close! I’m also taking on some extra work, web app development for a local company that needs some extra .NET skills. So I’ll be as busy as ever, but I wouldn’t be me if I said that was enough. No, I have to keep moving forward on my personal side projects as well, of course! So to that end, I’m setting myself up with a New Year’s Resolution for the first time in my life.
That resolution is to complete 4 robotics project in the year 2017. Those projects are as follows:
If I can knock those out, I’ll fell very accomplished for 2017 and I’ll have plenty of content to share on here. Here’s to making it happen.
Now if you’ll excuse me, I’m off to eat, drink, and be merry.
Happy New Year! See you in 2017!
Imagine you need to transfer some sensitive material or confidential documents between computers. To make the scenario even more fun, lets say you are transferring between different operating systems as well. You throw those documents on a USB drive and off you go. Well what happens if you lose that drive? SOL, right? And you could encrypt the drive, but then it’s only accessible on the same machine that encrypted it.
This was a general scenario that I wanted find a solution to, and it gave me the opportunity to delve into the world of encryption. The result of my time on this is Mighty Encryptor (github link). It’s a small app that you store on the USB drive or other media, along side your sensitive data. The app will ingest your files or folder tree, compress and encrypt them into a single file, and require a password to reverse the process.
The final output of Mighty Encryptor is a single compressed and fully encrypted file. My goal was to have complete obfuscation and security of the original data, giving no possible hint as to what is contained within the secure file.
I have a bit more work to do on the app, but the base features are there. I’m writing the app in .NET Core so that it can be built for Windows, Mac, and Linux. Hopefully soon I’ll be able to wrap up a 1.0 release of Mighty Encryptor.
I plan to support compressing files either individually or using block level storage, which combines many files into a single stream of data and then compresses that block of data. This type of compression is more efficient when you have lots of small files, especially text documents. In fact, I’m even going to add the ability for the application to intelligently decide which compression method to choose for best compression.
So many things have happened since my last post! So of course I’ve been neglecting to update on my projects. This post will be a quick rundown on what I’ve been up to, as well as a status report on current projects.
Last time we looked at BB-8, he was basically a pile of parts. Well I’ve got everything put back together on the internal drivetrain. The new additions since the last drive videos are the audio controller with transducers, and the Arduino with Neopixel string. These can be seen in the photos below, along with a new, beefier metal servo on the gimbal arm. More info available on my previous post.
The other big project related to BB-8 is the custom controller I’m building for this and other robotics projects. It consists of a Raspberry Pi 3 with touch screen LCD and an Arduino mounted on a plastic frame, along with some joysticks, push-buttons, and an XBee radio. I’m programming the Raspi end using the Go programming language, which has been a joy to learn and use so far. The code can be found on my Github page, still heavily under development. I’ll definitely post about this controller in more detail later on.
I’ve acquired the electronics for my 3D Printer build. I went with a RAMPS 1.4 Controller board which works with an Arduino Mega. It also comes with an LCD screen, SD card reader, rotary dial, and buzzer, and it includes the 5 stepper motor drivers and heat sinks. It’s a pretty slick deal for less than $40 on Amazon. I also have the 5 stepper motors that this build will need. 2 for vertical motion, 1 each for x and y movement, and 1 for the extruder.
Because I have no self control, and will always tack on more side projects before finishing older ones, here’s a new project of mine. I’m building my own musical Synthesizer. So far I have built an analog voltage-controlled ladder filter based on a circuit made popular by Moog Synthesizers in the 70s and 80s. For the oscillators, I want to use a digital processor to synthesize the various waveforms. The final result will hopefully be an interesting hybrid digital/analog Synthesizer with a unique sound. I’ll make a dedicated post showing the circuit diagrams in the future. Here’s an image of the Moog Ladder Filter that I’m working on, which you can read more about here.
I’ve been rearranging my house a bit and was tired of being short on desk space, so I decided to commit my office to be a dedicated Engineering Lab. I also purchased a few lab tools that I’ve wanted for a long time, including two power supplies, a signal generator, and the real gem, a Rigol DS1054 Oscilloscope. I freaking love it!
Another one on my hobbies (I have way too many) is drumming. To that end, I’ve built a drum studio in my home. Recently a friend of mine dropped off a bunch of extra equipment, so I revamped my setup. I need to replace some heads and re-tune everything, but I think it’s looking pretty good for such a rag-tag kit. Who knows, maybe I’ll actually get around to recording some covers one of these days.
There’s plenty more going on in my life right now: work full time, teaching a .NET class in the evenings, working on my Masters degree, and my Virtual Reality studio. And, you know, eating and sleeping sometimes. I’ve also got a list of new projects I want to work on. I’ll keep trying to carve out time to post more frequent updates on here. Until next time.
I’ve made a lot of progress and changes to BB-8 over the last few months that haven’t been documented here so I figured this would be a good time to snapshot where I’m at with the project.
My BB-8 is a ‘hamster’ design meaning there is a robotic platform that drives along the inside of the body sphere to create motion. The drive platform is 3-wheeled using omniwheels which gives me full range of motion, including strafing. This also allows the craft to sit more sturdily inside the sphere with all three wheels always making contact and applying drive to the sphere. There is a boom-style gimbal lifting from the top of the platform to control BB-8’s head motion. The coupling between the gimbal and the head is magnetic. Following is an image of the platform and gimbal mocked-up inside the sphere, as well as a video of the platform operating.
The primary microprocessor controlling BB-8’s body is a Microchip PIC32 MCU. The PIC32 processes orientation data from a 9 dof MCU and controls the driver motors and gimbal servos. The PIC32 connects to two other microcontrollers: a PIC24 for audio playback, and an Arduio Uno “Top Board” to control the internal LEDs as well as to store configuration data. Control data is sent to the PIC32 via an XBEE wireless radio.
For audio, I quickly discovered that sound doesn’t escape the plastic sphere very wheel. As a result, I’m using surface transducer “speakers” that will turn the entire platform and sphere into a speaker through vibrations. I also have an OLED display as shown above for general diagnostic purposes.
Next week I should have all of these components mounted to the drive platform. I’m just waiting for a replacement gimbal piece before I assemble everything. After that I’ll follow up with some more driving tests, construction on the head, and info about the custom touch-screen controller I’m building. Stay tuned!
This is an old post that I wanted to resurrect here on this blog. I will show how I connected 3 servos to a Raspberry Pi for my Stereoscopic Camera Gimbal.
In the previous demo videos of the gimbal, I was using a separate platform (PIC32) to operate the servos. To consolidate resources, and simplify design, I wanted to transfer the servo operation to one of the Raspberry Pis already on the gimbal.
A few months ago, I experimented with using the Raspberry Pi’s IO pins to run servos. The code I put together for that can be seen HERE. I’m using IO pins 4, 17, and 18 to operate the X, Y, and Z axis servos, respectively. I used protoboard to create a simple breakout board between the Raspberry Pi and the servos. External power was used for the servos. Here is the initial design sketch I put together:
In the final design, I decided to add a power LED and status LEDs for each of the servo channels. I also flipped the servo connectors as compared to the above sketch. Here is the finished board with everything connected:
Right now the software is converting the tracking position for each servo into an 8-bit value to transport from the Oculus Rift to the Raspberry Pi. The result of this is somewhat choppy motion in the servos, so I will be switching to use 16-bit values next time I touch the software. Besides that, it’s working well and I’m very happy with the result. The next step is to figure out how to mount this breakout board to the gimbal.
I’ve received a few requests for this, so I have compiled a detailed parts list for my 3D Gimbal. That list is below, followed by some detailed photos to help anyone who would like to recreate this project. I was hoping to include some build instructions, but unfortunately my constant barrage of deadlines hasn’t let up so I won’t have time. I’ve tried to double check and verify all information here but inevitably there are probably mistakes.
|Qty||Part Name and Link|
|1||Direct drive servo 6 inch cradle tilt (Hitec)|
|1||¼ inch ball bearing quad pillow block|
|4||¼ inch bore set screw hub|
|2||¼ inch bore flat bearing mount|
|1||¼ inch x 2.25 inch D-Shaft|
|1||¼ inch x 1.5 inch D-Shaft|
|1||3/8 inch x 4 inch precision shaft|
|1||3/8 inch bore thrust washer|
|1||2 inch smooth hub pulley|
|1||1 inch smooth hub pulley|
|2||9 inch aluminum channel|
|1||3 inch aluminum channel|
|1||90 degree hub to hub mount|
|1||4.5 inch 1/8 " smooth belt|
|4||Large square screw plate|
|4||3/8 inch bore clamping hub|
|1||3/8 inch spacers|
|1||3/8 inch ball bearing quad pillow block|
|1||3/8 inch bore flat bearing mount|
|1||90 degree dual side mount B|
|1||Standard servo plate B|
|1||Standard servo plate C|
|1||Round base A|
|1||64T, 32 P, ½ inch bore aluminum gear|
|1||32T, 32P metal servo gear (Hitec)|
|2||90 degree quad hub mount D|
|1||Servo set screw shaft coupler (Hitec)|
|Screws found here: Link|
|12||6-32x1/4 inch Socket Head Machine Cap Screw|
|24||6-32x5/16 inch Socket Head Machine Cap Screw|
|16||6-32x3/8 inch Socket Head Machine Cap Screw|
|48||6-32x1/2 inch Socket Head Machine Cap Screw|
The estimated cost including 2 Raspberry Pis and cameras is $500 – $550.
Here are my detailed build photos along with some commentary (click for larger):
Complete Without Electronics
Complete With Electronics
Since I’ve already got a Bluetooth-controlled lighting system for an arc reactor (more on that later!) I wanted to 3D print a nice arc reactor frame to house those electronics and finish the effect!
I’ve been printing 3D parts modeled by Skimbal here: http://www.thingiverse.com/thing:13171
I’m still very much a novice at 3D printing, but I am happy with how the parts are turning out. Once I sand and paint the pieces and assemble everything, it will look great!