Making Things

I haven’t posted in a while. The simple explanation is that I’ve got a rather full plate. My TLS certificate has expired. I tried to renew it, but something didn’t take. I hate making phone calls, so I haven’t talked to my hosting provider yet to see what I’m doing wrong. It seemed so easy before.

So what have I been doing? I’ve been learning the Arduino. I’ve been learning the Raspberry Pi. I’ve gone all out physical and started learning about 3D printing. In short, my foray into Physical Programming is getting very physical indeed.

There is so much to learn!

I still haven’t finished the pendulum. The plywood I got for my base is warping in the basement. This I do not like. I may change the design of the base rather radically. I only need the pendulum to keep swinging. That requires providing a small kick each swing to add energy that was lost to air drag and friction in the cable. I’ve got a magnet for that. It needs 12V. The Arduino can handle 5V. The Arduino needs to operate a power transistor to give the magnet the voltage and current it needs.

I’m building a weather station. It’s based mostly on SwitchDoc Labs gear. That’s the heart. The brain will be a Raspberry Pi. I have most of the pieces. I’m going to be soldering soon. There is some software to learn for this one too. There is a protocol used by the ICs on the boards. It’s called I2C. Both Arduino and Pi can speak it.

And then there’s 3D Printing. This is very exciting. It means I can make some of my own things. The printer will only do a few plastics. ABS and PLA are the two main ones. People have figured out how to get others to work. To take advantage of this, I have to learn to use something called slicing software. This takes a 3D model in a particular file format and creates something called G-code to control the printer. It’s much like CNC. The code tells the printer what to do in rather exacting detail.

There is a lot of stuff.

Traffic Cone
Traffic Cone

Foucault Pendulum Update

Pendulum Bob Over Plywood
Pendulum Bob Over Plywood


I found a reasonably nice piece of plywood to attach the electronics too. You can see it pictured above. The pendulum has been temporarily hoisted for testing with the breadboard. The next test will be done with most of the electronics attached to the plywood. The plywood is warped. I’m working on straightening it. I will also have to square it properly and I’m going to be framing it for more straightness.

Parts have continued to arrive for the driver. I found a nice set of 5mm LEDs on Amazon that have resisters in line to wire them up to the 12V side that will be controlling the magnet. I plan to use eight blue LEDs at the bottom to shine up towards the ceiling. They will go about where that orange lid is in the picture. The LDR will go in the center. The magnet will be concealed beneath the wood, also in the center.

Once I have all the woodwork done, I’ll be sealing it so that it doesn’t go changing shape (warping) after the magnet is aligned. The board will be supported by three bolts, each with two nuts and washers. Hopefully this will allow quick alignment of the magnet under the bob at BDC.

I haven’t updated my GitHub code in a few days. I plan to add an electrical schematic as well as update the sketch that will be running the pendulum. In terms of electronics, the Arduino Uno board will be attached via jumper wires to a PCB prototyping board that will have the components soldered in place. I’m planning on a push button to toggle between alignment mode and running mode using an interrupt function, a POT for adjusting the sensitivity in response to changing LDR output, the LDR, and a POT for setting a maximum on time for the magnet.

There is another test I need to do. That is to gather data from swinging the pendulum over the base (plywood) with the LEDs on and LDR in place. I’m expecting a certain pattern from the LDR that will be connected to A0 on the Arduino. I should be able to create a mathematical function to fit the data. After that, I need to take the first derivative of that function so I can determine the local maxima and minimum during the pendulum swing. The function will also have a constant term that accounts for ambient light. As this setup is in my basement, turning on the lights will change the values at A0. The basement also has windows.

So far, this project has proven to be more interesting than expected. Simple pendulums are not so simple. Some of my literature research is on GitHub. There may be more to follow, I don’t know. I expect that the rest will be my experiences with this specific project. It seems that Foucault Pendulum installations tend to be one offs. This will probably be no different. I still don’t know if it will turn out. It’s a rather short pendulum at only about 2.31 meters. A very small elliptical precession in the swing can easily wipe out the Foucault precession.

Having Fun With The Arduino Uno

Redboard Breadboard
Redboard Breadboard

It’s been busy at the end of 2015. What have I done? I’ve gotten in up to my neck with the Foucault Pendulum, that’s what. I’ve been sort of neglecting Swift, although I have a simple app idea for iPhone that will be written in Swift if I go through with it.

The Arduino IDE takes C / C++ code. C is an old friend of mine. As unsafe as it may be, I enjoy it. It’s simple. I still like Swift. I think Swift is the language of the future. It’s still evolving at quite a clip.

So back to this pendulum thing. There is so much to say about it. In fact, a very lot has been said about it. Just type those two words into YouTube and you will find plenty of videos ranging from deep mathematical analysis of how the pendulum works (it’s just a weight on a string) to outrageous cosmologies. I mentioned before that I’m building such a pendulum. The thing is, I have to do it on a much smaller scale than is ideal. It may not work due to other effects swamping out the terrestrial effect.

A pendulum loses energy as it swings. To keep it swinging, it is necessary to add the lost energy back somehow. I’ve chosen to use an electromagnet below the bob. It seems simple. Unfortunately I don’t know electronics. This has lead me to the Arduino Uno, Arduino IDE, and programming in the physical. The picture at the top is the current state of my board design. I still need some parts that I’ve already ordered. And I think I will need to order more parts so I can change certain parameters that are hard coded into my Sketch (I don’t know why Arduino programs are called sketches) on my final board.

If you’re at all interested, I have my source on GitHub:

There will be more posts to come and commits to the repository as I develop the board. Currently I’ve got all the parts removed so I can continue going through the Sparkfun Inventor’s Kit Guide to learn more about what I can do with the Arduino. I took that picture simply so I would have a reference to remember how I wired the thing up.

The README file in the repository links to more information about the Foucault Pendulum. There are also some PDF files that I put in source control although I do not expect to edit them as they are other people’s works with their own copyrights. The files are there for their educational and historical value.

There is a certain irony to what I’m doing. While I’ve had college physics courses that taught such important things like Ohm’s Law and such, I don’t know a thing about electrical engineering or circuit design. I’m OK on the programming end of things, although there is the Arduino standard library of functions (on top of what the C Standard Library offers) to learn. I’ve got some books on that subject. Yet here I am designing a circuit to drive a pendulum.

There are plenty of circuits out there for doing this exact job. They are complicated. I’m pushing the complexity onto an open sourced hardware device and C code. If the pendulum works as desired, it won’t be because I’ve learned circuit design. This is the world of Physical Programming.