With the June solstice right around the corner, it’s a perfect time to witness first hand the effects of Earth’s axial tilt on the day’s length above and beyond 60 degrees latitude. But if you can’t make it there, or otherwise prefer a more regular, less deprived sleep pattern, you can always resort to simulations to demonstrate the phenomenon. [SimonRob] for example built a clock with a real time rotating model of Earth to visualize its exposure to the sun over the year.
The daily rotating cycle, as well as Earth’s rotation within one year, are simulated with a hand painted plastic ball attached to a rotating axis and mounted on a rotating plate. The hand painting was done with a neat trick; placing printed slivers of an atlas inside the transparent orb to serve as guides. Movement for both axes are driven by a pair of stepper motors and a ring of LEDs in the same diameter as the Earth model is used to represent the Sun. You can of course wait a whole year to observe it all in real time, or then make use of a set of buttons that lets you fast forward and reverse time.
Earth’s rotation, and especially countering it, is a regular concept in astrophotography, so it’s a nice change of perspective to use it to look onto Earth itself from the outside. And who knows, if [SimonRob] ever feels like extending his clock with an aurora borealis simulation, he might find inspiration in this northern lights tracking light show.
This is a spectacular showpiece and a great project you can do with common tools already in your workshop. Once you’ve mastered earth, put on your machinists hat and give the solar system a try.
You may laugh off the ukulele as a toy or joke instrument, and admittedly, their starting price tag and the quality that usually comes with such a price tag doesn’t help much to get a different opinion on that. But it also makes it the perfect instrument for your next project. After all, they’re easy to handle, portable, and cheap enough to use a drill and other tools on them without too much regret. Plus, a little knowledge to play can get you far, and [Elaine] can teach you the essential, “all the pop songs use it”, four chords with her Arduino powered LED Ukulele.
As first step, [Elaine] drilled holes in her ukulele’s fingerboard to place some LEDs at all the positions required to play the four chords C, G, Am, and F. Connected to an Arduino attached to the ukulele’s back, each chord will light up its associated LEDs to indicate the finger positions required to play the chord itself. Taking the teaching part a step further, her next step is to extend each LED with a second, light sensing one, and read back if the fingers are placed at the correct position.
[Elaine] has already plans to turn the ukulele into an interactive game next. And if four chords are eventually not enough for you anymore, have a look at another LED based project teaching to play any major, minor and major seventh chord on the ukulele.
In today’s healthy lifestyle oriented world, blowing smoke rings won’t impress too many people anymore. Unless of course you are [NightHawkInLight] and blow them with a vortex cannon and add lasers for visual effects. Although, his initial motivation was to build a device that could shoot lost frisbees out off the trees in his backyard disc golf course, and as avid enthusiast of shooting things through the air using a propane torch, he opted for a vortex cannon to avoid the risk of injuries shooting a projectile may cause.
With safety in mind from the beginning, [NightHawkInLight] chose to build the cannon in ways that won’t expose him or people following his footsteps to any toxic fumes. The barrel is formed by securing a roll of terrace board and simply pulling it into a cone. A series of PVC pipes and adapters build the combustion chamber that fits the terrace board barrel on its one end, and the propane torch nozzle on its other end. For easier aim and stability, he also adds a tripod mount.
Since air vortices are, well, air, and therefore not visible by themselves, they don’t offer the most visual excitement. [NightHawkInLight] solved this with a fog machine attached to the barrel, and a laser line module, which you can see for yourself in his build video after the break. In a previous vortex cannon project we could also see a more outdoorsy approach to add visibility to it.
Continue reading “Blowing Rings With Cannons, Fogs, And Lasers”
In the first part of this series, we covered the basics of pointers in C, and went on to more complex arrangements and pointer arithmetic in the second part. Both times, we focused solely on pointers representing data in memory.
But data isn’t the only thing residing in memory. All the program code is accessible through either the RAM or some other executable type of memory, giving each function a specific address inside that memory as entry point. Once again, pointers are simply memory addresses, and to fully utilize this similarity, C provides the concept of function pointers. Function pointers provide us with ways to make conditional code execution faster, implement callbacks to make code more modular, and even provide a foothold into the running machine code itself for reverse engineering or exploitation. So read on!
In general, function pointers aren’t any more mysterious than data pointers: the main difference is that one references variables and the other references functions. If you recall from last time how arrays decay into pointers to their first element, a function equally decays into a pointer to the address of its entry point, with the
() operator executing whatever is at that address. As a result, we can declare a function pointer variable
fptr and assign a function
func() to it:
fptr = func;. Calling
fptr(); will then resolve to the entry point of function
func() and execute it.
Admittedly, the idea of turning a function into a variable may seem strange at first and might require some getting used to, but it gets easier with time and it can be a very useful idiom. The same is true for the function pointer syntax, which can be intimidating and confusing in the beginning. But let’s have a look at that ourselves.
Continue reading “Directly Executing Chunks of Memory: Function Pointers In C”
In our first part on pointers, we covered the basics and common pitfalls of pointers in C. If we had to break it down into one sentence, the main principle of pointers is that they are simply data types storing a memory address, and as long as we make sure that we have enough memory allocated at that address, everything is going to be fine.
In this second part, we are going to continue with some more advanced pointer topics, including pointer arithmetic, pointers with another pointer as underlying data type, and the relationship between arrays and pointers. But first, there is one particular pointer we haven’t talked about yet.
The one proverbial exception to the rule that pointers are just memory addresses is the most (in)famous pointer of all: the
NULL pointer. Commonly defined as preprocessor macro
(void *) 0, we can assign
NULL like any other pointer.
Continue reading “When 4 + 1 Equals 8: An Advanced Take On Pointers In C”
Pointers — you either love them, or you haven’t fully understood them yet. But before you storm off to the comment section now, pointers are indeed a polarizing subject and are both C’s biggest strength, and its major source of problems. With great power comes great responsibility. The internet and libraries are full of tutorials and books telling about pointers, and you can randomly pick pretty much any one of them and you’ll be good to go. However, while the basic principles of pointers are rather simple in theory, it can be challenging to fully wrap your head around their purpose and exploit their true potential.
So if you’ve always been a little fuzzy on pointers, read on for some real-world scenarios of where and how pointers are used. The first part starts with regular pointers, their basics and common pitfalls, and some general and microcontroller specific examples.
Continue reading “The Basics and Pitfalls of Pointers in C”
MIDI instruments and controllers are fun devices if you want to combine your interest in music and electronics in a single project. Breaking music down into standardized, digital signals can technically turn anything with a button or a sensor into a musical instrument or effect pedal. On the other hand, the receiving end of the MIDI signal is mostly overlooked.
[FuseBerry], a music connoisseur with a background in electronics and computer science, always wanted to build a custom MIDI device, but instead of an instrument, he ended up with a MIDI controlled light show in the shape of an exploded truncated icosahedron ([FuseBerry]’s effort to look up that name shouldn’t go unnoticed). He designed and 3D-printed all the individual geometric shapes, and painstakingly equipped them with LEDs from a WS2818B strip. An Arduino Uno controls those LEDS, and receives the MIDI signals through a regular 5-pin DIN MIDI connector that is attached to the Arduino’s UART interface.
The LEDs are mapped to pre-defined MIDI notes, so whenever one of them is played, and their NoteOn message is received, the LEDs light up accordingly. [FuseBerry] uses his go-to DAW to create the light patterns, but any software / device that can send MIDI messages should do the trick. In the project’s current state, the light pattern needs to be created manually, but with some adjustments to the Arduino code, that could be more automated, something along the lines of this MIDI controlled Christmas light show.
Continue reading “There’s More To MIDI Than Music – How About A Light Show?”