The Hackaday Prize is more than just giving tens of thousands of dollars to hardware hackers. It’s also about funding the next batch of Open Source hardware products. Alongside The Hackaday Prize — the contest where we’re funding hardware that will change the world, — we’re also giving away $30,000 to the project that will best become a product. It’s almost like we’re funding hardware startups here.
[Dessislav Gouzgounov] wanted to build a small piece of hardware — a GoTo for his telescope. This handheld controller would allow him to use software to align the telescope with whatever celestial body he’s checking out.
Many GoTos simply interface with a laptop, but [Dessislav] built a standalone system centered around an Arduino Due and 240×400 touch screen, with GPS, RTC, and Bluetooth under the hood. It works on both hemispheres and contains a database of 250 celestial objects, features different speeds for time-delayed tracking of celestial, lunar, and solar phenomena, and it can work with any stepper-equipped telescope.
We covered [Dessislav]’s previous version of the RDuinoScope, but he’s improved the project considerably with over 2,400 lines of code including a new menu system and added a star atlas showing the location of the sky at which the telescope is currently pointed, among other improvements. The project is open source and you can learn more about it on [Dessislav]’s project page or check out his code on GitHub.
Continue reading “Best Product Entry: Telescope Control With RDuinoScope”
We’ve all enjoyed looking up at a clear night sky and marveled at the majesty of the stars. Some of us have even pointed telescopes at particular celestial objects to get a closer view. Anyone who’s ever looked at anything beyond Jupiter knows the hassle involved. It is most unfortunate that the planet we reside on happens to rotate about a fixed axis, which makes it somewhat difficult to keep a celestial object in the view of your scope.
It doesn’t take much to strap a few steppers and some silicon brains to a scope to counter the rotation of earth, and such systems have been available for decades. They are unfortunately quite expensive. So [Dessislav Gouzgounov] took matters into his own hands and developed the rDuinoScope – an open source telescope control system.
Based on the Arduino Due, the systems stores a database of 250 stellar objects. Combined with an RTC and GPS, the rDunioScope can locate and lock on to your favorite nebula and track it, allowing you to view it in peace. Be sure to grab the code and let us know when you have your own rDuinoScope set up!
Browse around eBay for an original Altair 8800 and you quickly find that the price range is in the thousands of dollars. If you are a collector and have some money in your pocket maybe that’s okay. But if you want the Altair 8800 experience on a budget, you can build yourself a clone with an Arduino. [David] kindly shared the build details on his Arduino Project Hub post. Using an Arduino Due (or a Mega for 25% of original speed), the clone can accurately reproduce the behavior of the Altair’s front panel elements. We covered a similar project in the past, using the Arduino Uno.
While not overly complicated to build one, you will need a fair amount of patience so you can solder all the 36 LEDs, switches, transistors, and resistors but in the end, you’ll end up with a brand new computer to play with. In 1975, an assembled Altair 8800 Computer was selling for $621 and $439 for an unassembled version. Sourced right, your clone would be under 50 bucks. Not bad.
The simulator comes with a bunch of software for you to try out and even games like Kill-the-Bit and Pong. BASIC and Assembler example programs are included in the emulator software and can easily be loaded.
In addition, the simulator includes some extra functions and built-in software for the Altair which are accessible via the AUX1/AUX2 switches on the front panel (those were included but not used on the original Altair). From starting different games to mount disks in an emulated disk drive, there are just too many functions to describe here. You can take a look at the simulator documentation for more information.
In case you don’t know already, here’s how to play Kill-the-Bit:
Continue reading “Arduino Altair 8800 Simulator”
Smartwatches are pretty great. In theory, you’ll never miss a notification or a phone call. Plus, they can do all kinds of bio-metric tracking since they’re strapped to one of your body’s pulse points. But there are downsides. One of the major ones is that you end up needing two hands to do things that are easily one-handed on a phone. Now, you could use the tip of your nose like I do in the winter when I have mittens on, but that’s not good for your eyes. It seems that the future of smartwatch input is not in available appendages, but in gesture detection.
Enter WristWhirl, the brain-child of Dartmouth and University of Manitoba students [Jun Gong], [Xing-Dong Yang], and [Pourang Irani]. They have built a prototype smartwatch that uses continuous wrist movements detected by IR proximity sensors to control popular off-the-shelf applications. Twelve pairs of dirt-cheap IR sensors connected to an Arduino Due detect any of eight simple gestures made by the wearer to do tasks like opening the calendar, controlling a music player, panning and zooming a map, and playing games like Tetris and Fruit Ninja. In order to save battery, a piezo senses pinch between the user’s thumb and forefinger and uses this input to decide when to start and stop gesture detection.
According to their paper (PDF warning), the gesture detection is 93.8% accurate. To get this data, the team had their test subjects perform each of the eight gestures under different conditions such as walking vs. standing and doing either with the wrist in watch-viewing position or hanging down at their side. Why not gesture your way past the break to watch a demo?
If you’re stuck on the idea of playing Tetris with gestures, there are other ways.
Continue reading “Controlling This Smartwatch is All in the Wrist”
The Linux Foundation is a non-profit organization that sponsors the work of Linus Torvalds. Supporting companies include HP, IBM, Intel, and a host of other large corporations. The foundation hosts several Linux-related projects. This month they announced Zephyr, an RTOS aimed at the Internet of Things.
The project stresses modularity, security, and the smallest possible footprint. Initial support includes:
- Arduino 101
- Arduino Due
- Intel Galileo Gen 2
- NXP FRDM-K64F Freedom
The project (hosted on its own Website) has downloads for the kernel and documentation. Unlike a “normal” Linux kernel, Zephyr builds the kernel with your code to create a monolithic image that runs in a single shared address space. The build system allows you to select what features you want and exclude those you don’t. You can also customize resource utilization of what you do include, and you define resources at compile time.
By default, there is minimal run-time error checking to keep the executable lean. However, there is an optional error-checking infrastructure you can include for debugging.
The API contains the things you expect from an RTOS like fibers (lightweight non-preemptive threads), tasks (preemptively scheduled), semaphores, mutexes, and plenty of messaging primitives. Also, there are common I/O calls for PWM, UARTs, general I/O, and more. The API is consistent across all platforms.
You can find out more about Zephyr in the video below. We’ve seen RTOS systems before, of course. There’s even some for robots. However, having a Linux-heritage RTOS that can target small boards like an Arduino Due and a Freedom board could be a real game changer for sophisticated projects that need an RTOS.
Continue reading “The Internet of Linux Things”
If you’re wondering what the difference is between the good ol’ Arduino Uno and one of the new-school Arduinos like the Arduino Due, here’s a very graphic example: [DrNCX] has written a stunning Pacman clone for the Due that seems to play just like the arcade. (Video embedded below the break.)
The comparison between the Uno and Due isn’t quite fair. The Due runs on an 84 MHz, 32 bit ARM Cortex-M3 processor. It’s in a different league from the Uno. Still, we view this as an example of the extended possibilities from stepping up into a significantly faster micro. For instance, the video is output to both an ILI9341 TFT screen and external 8-bit VGA at once.
Besides using some very nice (standard) libraries for the parts, it doesn’t look like [DrNCX] had to resort to any particular trickery — just a lot of gamer-logic coding. All the code is up on GitHub for you to check out.
Can the old Arduinos do this? For comparison, the best Pacman we’ve seen on an AVR platform is the ATmega328-based RetroWiz, although it is clocked twice as fast as a stock Uno. And then there’s Hackaday Editor [Mike Szczys]’s 1-Pixel Pacman, but that’s cheating because it uses a Teensy 3.1, which is another fast ARM chip. People always ask where the boundary between an 8-bit and 32-bit project lies. Is a decent Pacman the litmus test?
Continue reading “Pacman Proves Due is More than Uno”
The language C++ is big. There is no doubting that. One reason C++ is big is to allow flexibility in the technique used to solve a problem. If you have a really small system you can stick to procedural code encapsulated by classes. A project with a number of similar but slightly different entities might be best addressed through inheritance and polymorphism.
A third technique is using generics, which are implemented in C++ using templates. Templates have some similarities with #define macros but they are a great deal safer. The compiler does not see the code inserted by a macro until after it has been inserted into the source. If the code is bad the error messages can be very confusing since all the developer sees is the macro name. A template is checked for basic syntax errors by the compiler when it is first seen, and again later when the code is instantiated. That first step eliminates a lot of confusion since error messages appear at the location of the problem.
Continue reading “Code Craft – Embedding C++: Templates”