Numbers are wonderful things when applied to technical specifications. Take [Bobricius]’ handheld Arduino-based game console. With an 8×8 LED matrix for a display it’s not going to win any prizes, but while he’s pushing the boundaries of dubious specification claims he’s not strictly telling any lies with his tongue-in-cheek statement that the graphics are 64-bit.
Jokes aside, it’s a neatly done build using a DIP version of the Arduino MCU and all through-hole components on a custom PCB. Power comes from a CR2032 cell, and it includes three buttons and a small piezoelectric speaker. He’s implemented a whole slew of games, including clones of Pong, Breakout, and Tetris, and judging by the video below it’s surprisingly playable.
Now you might look at this console and wonder what the big deal is. After all, there are plenty of similar designs to be found, and it’s nothing new. Of course, it’s a neat project for any hacker or maker, but we can see that this would make a great starter project for the younger person in your life who wants to try their hands at building something electronic. All through-hole construction for easy soldering, and a neat game at the end of it all.
He’s posted a full write-up of the design process as well as the hackaday.io page linked above, so if you fancy building one yourself there’s nothing to stop you too squeezing 64 bits of graphical goodness from an Arduino.
This isn’t the first Arduino game we’ve shown you here at Hackaday, we’ve unmasked the secrets of the Arduinocade, featured another handheld Arduino game with an LCD screen, and a beautifully coded console using a TFT among many more.
Filed under: Arduino Hacks
[Daiju Ishikawa] wrote us to announce that the world championship Hebocon is taking place this August in Tokyo, and the registration has just opened. When you get a mail in the tip line that reads “From all over the world, crappy robots with low technological ability will gather and fight to determine the worst made robot in the world.” you know it’s Hackaday!
“Heboi” is Japanese for clumsy or crappy. If your idea of fun is poorly made, but hilarious, robots trying to shove each other out of a sumo ring, then a local Hebocon might be for you. And if you think you’ve got what it takes to be a world champion, start looking into tickets to Japan. (It’s not coincidentally on the same day as Maker Faire Tokyo.)
Either way, you should check out the video, embedded below, which is a great introduction to the sport/pastime/whatever. It’s a fun introduction to the gentle art of robotry, for people who are more creative than technical. We think that’s awesome.
Filed under: cons, robots hacks
I start each day checking out the new and updated projects over on Hackaday.io. Each day one can find all manner of projects – from satellites to machine vision to rockets. One type of project which is always present are robots- robot arms, educational ‘bots, autonomous robots, and mobile robots. This week’s Hackaday.io had a few great robot projects show up on the “new and updated” page, so I’m using the Hacklet to take a closer look.
We start with [Jack Qiao] and Autonomous home robot that does things. [Jack] is building a robot that can navigate his home. He’s learned that just creating a robot that can get itself from point A to point B in the average home is a daunting task. To make this happen, he’s using the Simultaneous Localization and Mapping (SLAM) algorithm. He’s implementing SLAM with the help of Robotic Operating System (ROS). The robot started out as a test mule tethered to a laptop. It’s evolved to a wooden base with a mini ITX motherboard. Mapping data comes in through a Kinect V2, which will soon be upgraded to a Neato XV-11 LIDAR system.
Next up is [Tyler Spadgenske] with TyroBot. TyroBot is a walking robot with some lofty goals, including walking a mile in a straight line without falling down. [Tyler’s] inspiration comes from robots such as Bob the Biped and Zowi. So far, TyroBot consists of legs and feet printed in PLA. [Tyler] is going to use a 32 bit processor for [TyroBot’s] brain, and wants to avoid the Arduino IDE at any cost (including writing his own IDE from scratch). This project is just getting started, so head on over to the project page and watch TyroBot’s progress!
Next is [Mike Rigsby] with Little Friend. Little Friend is a companion robot. [Mike] found that robots spend more time charging batteries than interacting. This wouldn’t do for a companion robot. His solution was to do away with batteries all together. Little Friend is powered by super capacitors. An 8 minute charge will keep this little bot going for 75 minutes. An Arduino with a motor shield controls Little Friend’s DC drive motors, as well as two animated eyes. If you can’t tell, [Mike] used a tomato as his inspiration. This keeps Little Friend in the cute zone, far away from the uncanny valley.
Finally we have the walking robot king, [Radomir Dopieralski], with Logicoma-kun. For the uninitiated, a Logicoma is a robot tank (or “logistics robot”) from the Ghost in the Shell series. [Radomir] decided to bring these cartoon tanks to life – at least in miniature. The bulk of Logicoma-kun is built carefully cut and sculpted acrylic sheet. Movement is via popular 9 gram servos found all over the internet. [Radomir] recently wrote an update outlining his new brain for Logicoma-kun. An Arduino Pro Mini will handle servo control. The main computer will be an ESP8266 running Micropython. I can’t wait to see this little ‘bot take its first steps.
If you want more robotic goodness, check out our brand new mobile robot list! Did I miss your project? Don’t be shy, just drop me a message on Hackaday.io. That’s it for this week’s Hacklet, As always, see you next week. Same hack time, same hack channel, bringing you the best of Hackaday.io!
Filed under: Hackaday Columns, robots hacks
One of the most ingenious developments in test and measuring tools over the last few years is the Mooshimeter. That’s a wireless, two-channel multimeter that can measure voltage and current simultaneously. If you’ve ever wanted to look at the voltage drop and power output on a souped up electrified go-kart, the Mooshimeter is the tool for you.
A cheap, wireless multimeter was only the fevered dream of a madman a decade ago. We didn’t have smartphones with Bluetooth back then, so any remote display would cost much more than the multimeter itself. Now this test and measurement over Bluetooth is bleeding over into the rest of the electronics workbench with the Aeroscope, a wireless Bluetooth oscilloscope.
[Alexander] and [Jonathan], the devs for the Aeroscope got the idea for this device while debugging a mobile robot. The robot would work on the bench, but in the field the problem would reappear. The idea for a wireless troubleshooting tool was born out of necessity.
The specs for the Aeroscope are about equal to the quite capable ‘My First Oscilloscope’ Rigol DS1052E. Analog bandwidth is 100MHz, sample rate is 500 Msamples/second, and the memory depth is 10k points. Resolution per division is 20mV to 10V, and the Aeroscope “Deluxe Package” that includes a few leads, tip, clip, USB cable, and case is about the same price as the Rigol 1052E. The difference, of course, is that the Aeroscope is a single channel, and wireless. That’s fairly impressive for two guys who aren’t a team of Rigol engineers.
As is the case with all Bluetooth test and measurement devices, the proof is in the app. Right now, the Aeroscope only supports iOS 9 devices, but according to the crowdfunding campaign, Android support is coming. Since the device is Open Source, you can always bang something out in Python if you really need to.
While this is a crowdfunding campaign, it’s hosted on Crowd Supply. Crowd Supply isn’t Indiegogo or Kickstarter; there are people at Crowd Supply vetting projects. The campaign still has a month to go, but the first few pledges are putting the Aeroscope right on track to a successful campaign.
Filed under: Crowd Funding, tool hacks
[Rafael] made a sweet little retro watch that’s a fantastic introduction to hardware DIY. If you’ve programmed an Arduino before, but you’ve never had a board made, and you are up for some SMD soldering, this might be for you. It’s got some small components, so ease off the coffee before soldering, but it’s nothing that you won’t be able to do. In the end, you’ll have something awesome.
Aesthetically, the centerpiece is the bubble display, which reminds us of the old HP calculator that our parents kept in the junk drawer, long after it had ceased to be relevant. It would return 3.9999999 for the square-root of 16, but we loved to play with it anyway. This watch will let you vicariously reclaim our childhood.
But that’s not all! It’s also an Arduino and RTC clock. Functions that are already implemented include clock, calendar, stopwatch, and “temperature”. (Temperature is from the AVR’s internal thermometer, which isn’t super-accurate and is probably just going to tell you how hot your wrist is anyway…) It’s got buttons, and tons of free flash space left over. It’s begging to be customized. You know what to do.
It’s not a smart watch, but it’s a great project. “The nostalgic retro bubble display is certain to flatter any hacker’s outfit.” Or something. OK, but we want one.
[via OSHpark’s Hackaday.io feed]
Filed under: clock hacks, wearable hacks
McDonald’s is serious about their fries. When they were forced by shifting public opinion (drunkenly swaggering around as it always does) to switch from their beef tallow and cottonseed oil mixture to a vegetable oil mixture; they spent millions to find a solution that retained the taste. How they make the fries is not the worlds most closely guarded secret, but they do have a unique flavor, texture, and appearance which is a product of lots of large scale industrial processes. [J. Kenji López-Alt] decided to reverse engineer the process.
His first problem was of procurement. He could easily buy cooked fries, but he needed the frozen fries from McDonald’s to begin his reverse engineering. McDonald’s refused to sell him uncooked fries, “They just don’t do that,” one employee informed him. He reached out to his audience, and one of them had access to a charlatan. The mountebank made quick work of the McDonald’s employees and soon [J. Kenji] had a few bags of the frozen potato slivers to work with.
What follows next was both entertaining and informative. At one point he actually brought out a Starrett dial caliper to measure the fries; they were 0.25in squares in cross section. Lots of research and experimentation was done to get that texture. For example, McDonald’s fries aren’t just frozen raw potatoes. They are, in fact; blanched, flash fried, frozen and then fried again. Getting this process right was a challenge, but he arrived at similar fries by employing his sous vide cooker.
He then wanted to see if he could come up with a french fry recipe that not only allowed the home chef to make their own McDonald’s fries, but improve on them as well. It gets into some food chemistry here. For example he found that the same effect as blanching could be produced by boiling the fries; if you added vinegar to keep the cell walls from disintegrating.
The article certainly shows how knowledge of the chemistry behind cooking can improve the results.
Filed under: chemistry hacks, cooking hacks
[acidbourbon] had some cool parts on hand, and a musician friend in need of a radio-controlled, touch-sensitive MIDI (and analog) controller. This being Hackaday, you can guess what happened next.
The remote expression controller is a sweet little hack. It starts with a touchpad bought from a German surplus shop, and some code that [acidbourbon] found on the biggest German embedded forum. A couple nicely home-etched circuit boards later, and he was writing code.
It’s all available here on his GitHub if you want to have a look. The transmission protocol is simplicity itself. It sends a two-byte header to detect the start of the message, and then it sends three bytes of data. The receiver turns this into MIDI and control-voltage output. Simple and useful.
We also admire the non-overkill (as well as the enviable battery life) of using straightforward radio transmitters rather than giving in and using WiFi.
We’ve covered some of Michael/[acidbourbon]’s hacks before, and the one that we think of the most, when we’re down in the basement drilling out holes in a PCB, is his semi-automatic drill press hack. Keep on hacking!
Filed under: musical hacks, wireless hacks
The Internet of Things has been presented as the future of consumer electronics for the better part of a decade now. Billions have been invested, despite no one actually knowing what the Internet of Things will do. Those billions need to go somewhere, and in the case of Texas Instruments, it’s gone straight into the next generation of microcontrollers with integrated sub-GHz radios. [M.daSilva]’s entry to the 2016 Hackaday Prize turns these small, cheap, radios into a portable communicator.
This ‘modem for the 400 MHz band’ consists simply of an ATmega microcontroller, TI’s CC1101 sub-GHz transceiver, an OLED display, and a UHF power amplifier. As far as radios radios go, this is as bare bones as it gets, but with the addition of a USB to serial chip and a small program this radio can send messages to anyone or anything in range. It’s a DIY pager with a couple chips and some firmware, and already the system works.
[M.daSilva] has two use cases in mind for this device. The first is an amateur radio paging system, where a base station with a big power amp transmits messages to many small modules. The second use is a flexible mdoule that links PCs together, using Ham radio’s data modes. With so many possibilities, this is one of the best radio builds we’ve seen in this year’s Hackaday Prize.The HackadayPrize2016 is Sponsored by:
Filed under: The Hackaday Prize
Superhydrophobic coating finds a new application in art through [Arthur Carabott] in the form of a bizarre fountain.
A Master’s student in the Global Innovation Design course at the London Royal College of Art, [Carabott] achieved the effect by leaving parts of the laser-cut acrylic untouched by Rust-oleum’s NeverWet Multisurface coating. A 3d printed spigot mounted high above the surface imparts greater velocity to the impacting water so as it hits the acrylic the liquid forms into channels giving the impression of something surreal. Indeed — his design is inspired by the optical illusions of Japanese mathematician Kokichi Sugihara which attempt to realize the impossible artwork of M.C. Escher. The effect is worthy of a double take.
Hydrophobic coatings work by applying a nanoscopic layer to the surface that repels all liquids. Their application can create incredible imagery — like electronics continuing to function despite being submerged in water — so their use in art is a natural outgrowth of this technology.
[via Dezeen Magazine]
Filed under: misc hacks
[dmitry] writes in to let us know about a new project that combines lasers with fans and turns the resulting modulation of the light beams into an autonomous soundscape. The piece is called “divider” and is a large, wall-mounted set of rails upon which seven red lasers are mounted on one end with seven matching light sensors mounted on the other end. Interrupting the lasers’ paths are forty-two brushless fans. Four Arduino Megas control the unit.
Laser beams shining into light sensors don’t do much of anything on their own, but when spinning fan blades interrupt each laser beam it modulates the solid beams and turns the readings of the sensors on the far end into a changing electrical signal which can be played as sound. Light being modulated by fan blades to create sound is the operating principle behind a Fan Synth, which we’ve discussed before as being a kind of siren (or you can go direct to that article’s fan synth demo video to hear what kind of sounds are possible from such a system.)
This project takes this entire concept of a fan synth further by not only increasing the number of lasers and fans, but by tying it all together into an autonomous system. The lasers are interrupted repeatedly and constantly, but never simultaneously. Listen to and watch it in action in the video below.
There isn’t a lot of in-depth technical information on the project page, but there are many really good photos. We especially love the way that the whole assembly is highly visual with the lasers turning on and off and interacting with different fans.
Any changing electrical signal can be played as sound, and if there’s one thing projects like self-playing musical hardware can teach us, it’s that if you have an electrical signal that looks strange or chaotic, hook a speaker up to it because it probably sounds pretty cool!
Filed under: musical hacks
The robots we’ve sent to explore other worlds in our stead are impressive feats of engineering. But stuck at the bottom of our gravity well as we are, they are fantastically expensive ventures that are out of reach of the DIY community. There’s still plenty to explore right in your own backyard, though, and this robot needs your help to explore planet Earth.
The project is called RoboSpatium, and it’s the brainchild of [Norbert Heinz]. The idea is a little like HitchBot except it will be sent from host to host by mail. (And it’s an actual robot, and not just brains in a bucket.) Hopefully each host will have something interesting for the robot to do for the 24 hours allotted, like explore a local landmark, get a robot-eye view of the goings on in a hackerspace, or just watch the sunset in some beautiful spot. Project participants will get to drive the robot via a web interface and do a little virtual exploration of a part of the world they might never otherwise get to see.
We gather that the robot in the video below is only a prototype at this point, and that the sensor suite and mechanicals have yet to be sorted out. Hackaday regulars will no doubt know [Norbert] better as the excellently accented [HomoFaciens], creator of dumpster-sourced CNC machines, encoders made from tin can lids and wheels of resistors, and a potentially self-replicating CNC plotter. [Norbert] has the hacker chops to pull this off, and we think it’s a pretty neat idea with the potential to engage and educate a lot of people. We think it could do with a little support from the Hackaday community.
Filed under: Crowd Funding, robots hacks
Last fall, I grabbed a robot arm from Robot Geeks when they were on sale at Thanksgiving. The arm uses servos to rotate the base and move the joints and gripper. These work well enough but I found one aspect of the arm frustrating. When you apply power, the software commands the servos to move to home position. The movement is sufficiently violent it can cause the entire arm to jump.
This jump occurs because there is no position feedback to the Arduino controller leaving it unable to know the positions of the arm’s servos and move them slowly to home. I pondered how to add this feedback using sensors, imposing the limitation that they couldn’t be large or require replacing existing parts. I decided to try adding accelerometers on each arm section.
Accelerometers, being affected by gravity when on a planet, provide an absolute reference because they always report the direction of down. With an accelerometer I can calculate the angle of an arm section with respect to the direction of gravitational acceleration.
Before discussing the accelerometers, take a look at the picture of the arm. An accelerometer would be added to each section of the arm between the controlling servos.Accelerometers
Gravity tugs everything toward the center of the mass of the Earth. It is a force that creates an acceleration exactly just like what you feel when a vehicle begins to move or stop. The force of gravity creates an acceleration of 1 g which is 9.8 m/s2 or 32.15 ft/s2. An accelerometer measures this force.
Integrated circuit accelerometers are inexpensive and small devices readily usable by hackers. One reason they are inexpensive is the high demand for them in smart phones. These small devices are based on etching mechanical structures within the integrated circuit using a technology called MEMS (Microelectromechanical systems).
One design for a MEMS accelerometer is basically a variable capacitor. One plate is fixed and the other mounted some distance away on a spring suspension. When the device is accelerated the suspended plate moves closer or further away from the fixed plate, changing the capacitance. Another uses piezo-resistive material to measure the stress on an arm caused by acceleration.
A single axis accelerometer measures acceleration in only one direction. If positioned so the direction is up and down it will measure the force of gravity but will not detect horizontal acceleration. When the device is tilted between horizontal and vertical the force of gravity is only partially affecting the measurement. This provides the ability to measure the angle of the device with the direction of gravity. The acceleration felt along the tilted axis, for a tilt angle can be calculated by:
Knowing the output of the accelerometer we can determine the angle by taking the inverse sine, the arc sine, of the output:
If you rotate a single axis device through 360° the output is a sine wave. Start with the device outputting zero and consider that 0°. As it rotates, the output is 1 when the angle is 90° and back to zero at 180°. Continuing the rotation, the output becomes -1 at 270°, or -90°, degrees and back to zero at 360°, or 0°.
Notice on the chart that between -60° and 60° the output is nearly linear. This is the best orientation for measuring inclination. Increases in inclination are not as accurate on the other portions of the curve. Also notice that the same output is generated for 45° and 135° (90° + 45°) creating an ambiguity. With a single axis you cannot determine which of those angles is measured.
Putting two accelerometers at a right angle to one another creates a 2-axis device which solves the ambiguity problem. As the device is rotated through 360° the outputs are 90° out of phase, the same relationship as the sine and cosine. By combining the measurements there is a unique solution for every angle throughout 360°. The acceleration due to gravity at each angle is given by:
which leads to calculating the angle by:
Actually, one more step is needed to determine the sign of the angle. This requires examining the sign of the values for the X and Y axis. It isn’t necessary to go into this here because a standard programming function handles this automatically.
The orientation of a quadcopter requires a 3-axis accelerometer. The calculations for the three spherical angles combine all three inputs for their results. You’ll need to study this carefully because the standard trigonometric equations can cause anomalies when the quadcopter flips.First Pass Solution
Accelerometers are easily obtained and relatively cheap. You can find them mounted on breakout boards with voltage regulators and all the supporting circuits from the usual vendors. They are available for 1 to 3 axis, various amounts of g force, and providing either analog or digital outputs. Analog devices need an analog input for each axis being measured. Digital outputs use I2C or SPI buses for communications. I decided to use analog devices because digital units typically only allow two addresses and the arm needs three devices, one for each section.
The robot arm uses an Arduino board so there are at least 6 analog inputs. The original board was a Robot Geek Geekduino, their version of the Arduino Duemilanove, with 8 analog inputs. Unfortunately, when working with the arm I broke the USB connector so switched to a Uno equivalent having only 6 inputs.
My choice for accelerometer is a 3-axis, ±3 g accelerometer breakout from Adafruit, their ADXL335. It has one analog output for each axis. Since I’m measuring three joints that means three boards which adds up to 9 analog outputs.
Because of the geometry of the arm, however, I only need 5 inputs for these three joints. The shoulder joint only moves from 0° to 180°. This can be handled by a single axis accelerometer by mounting it to read acceleration of 1 g for 0° and -1g for 180°. That provides a unique output for the necessary angles. The elbow and wrist joints each require two inputs. The third input is not needed because their motion is constrained to moving within the vertical plane of the arm.Frame of Reference
The next issue is the frame of reference. This is a standard problem in robotics work. Early in a project, a global frame of reference is decided upon. This sets the origin for the coordinate system that the robot will follow and the direction of the three axes, usually specified as X, Y, and Z. For the arm, X is straight forward, Y is to the left, and Z is straight up. The zero point is the base of the shoulder. This also defines a global frame for rotation of the arms limbs with zero degrees also toward the front.
Sensors and controllers each have their own frame of reference. Any differences among these devices and the global frame need to be resolved in software. The shoulder servo’s frame of reference is 0° at the back of the arm and 180° at the front, a clockwise rotation. This is the reverse of the global frame. The elbow servo worked the opposite with a counter-clockwise rotation putting 180° straight up and 90° straight out when the shoulder was vertical. It is 90° off from the global frame of reference.
Sensors also have their own frame of reference. The Y-axis accelerometer measuring the shoulder orientation worked counter-clockwise. Both axis on the accelerometers measuring the elbow worked in the clock-wise direction. This may seem strange but it’s because of the different mounting orientations of the sensors.Software
The actual code is straightforward once the frame of references are sorted out. A single axis is read from the analog input and its angle calculated with:const int shouldery = shoulderAnalogY.read(); float shoulder_angle = degrees(asin(shouldery_value / 100.0));
The read() method scales the raw analog input values so ±1g is represented as ±100. The input to asin() is divided by 100.0 to convert to the actual g value. That suffices for the shoulder angle.
The elbow and wrist angles use values from two axis and the calculation is:const int elbowx = elbowAnalogX.read(); const int elbowy = elbowAnalogY.read(); float elbow_angle = degrees(atan2(-elbowy, elbowx));
The atan2() function is a special version of the arc tangent calculation. It examines the signs of the input value to determine the quadrant of the angle to set the appropriate sign on its result. The negative sign on the elbowy is needed to set the appropriate quadrant. There’s the frame of reference issue, again.Wrap Up
Adding the accelerometers solved the startup lurching problem well enough. Whether the accelerometers can be used for other purposes remains to be seen.
The accuracy of the angle measurements is not good. In part this is due to using a device that with a +/- 3 g range to measure 1/3 of the devices range, 1 g. The device outputs 0 to 3.3 volts while the Arduino is sampling for 5 volts, again losing accuracy. This might be improved by using an Arduino based on 3.3 volts. I have a couple Dues on hand so might try them. The Uno also provides for adjusting the reference voltage for analog inputs so setting it to 3.3 volts might help.
The analog values need to be calibrated with some care. Each accelerometer outputs slightly different values. Calibration requires measuring the outputs for 1 and -1 g for each axis, recording the values, and using them to scale the voltage input to acceleration. This calibration is not accurate given the other problems with the analog inputs.
Another problem is the mounting of the accelerometers on the arm’s sections. The alignment of the boards with the sections of the arm is not perfect. When the servo is positioned at 90° the accelerometer doesn’t necessarily sit at 90° with respect to the center of the earth. Of course, the servos are not that precise, either. They do not always arrive at the same position, especially when approaching from different directions. Another goal for this project was to use the accelerometer information to more precisely position the servos.
I guess I have to think about this project a bit more, including deciding what I actually want to accomplish with the arm. But then, just saying you have a robotic arm is a terrific hacking cred.
Filed under: Arduino Hacks, robots hacks
Kids love Minecraft, and a clever educator can leverage that love to teach some very practical skills. The summer class offered by the Children’s Museum in Bozeman Montana would have blown my mind if such a thing existed when we were younger. (Rather than begging one of the dads in my Boy Scout Troop to pirate Visual Studio for me, which was delivered in the form of an alarmingly tall stack of CDs.) The kids in Bozeman get to learn hardware, software, their integration, and all while playing Minecraft.
Minecraft is an immersive universe that has proven to suck in creative minds. It’s the bait that pulls the kids into the summer class but Serialcraft delivers on making the learning just as addictive. This is accomplished by providing students with physical objects that are tied to the Minecraft world in meaningful ways we just haven’t seen before (at least not all at one time). On the surface this adds physical LEDs, toggle switches, potentiometers, and joysticks to the game. But the physical controls invite understanding of the mechanisms themselves, and they’re intertwined in exciting ways, through command blocks and other in-game components that feel intuitive to the students. From their understanding of the game’s mechanics they understand the physical objects and immediately want to experiment with them in the same way they would new blocks in the game.
The thing that makes this magic possible is a Minecraft mod written by [John Allwine], who gave us a demonstration of the integration at Maker Faire Bay Area 2016. The mod allows the user to access the inputs and output of the Arduino, in this case a Pololu A-Star 32U4, from within Minecraft. For the class this is all packaged nicely in the form of a laser cut controller. It has some LEDs, two joysticks, buttons, potentiometers, and a photosensor.
As you can see in the video below the break, it’s really cool. The kids have a great time with it too. For example, [John] showed them how they can attach their unique controller to a piston in the world. Since this piston can be controlled by them alone, they quickly figured out how to make secret safe rooms for their items.
Another troublesome discovery, was that the photo transistor on the controller set the light level in the game world by altering the time of day. Kids would occasionally get up and change the world from day to night, by turning the lights in the room on or off. A feature that has a certain appeal for any Minecraft player, is rigging one of the LEDs on the controller to change brightness depending on proximity to a creeper.
There’s a lot more to the library, which is available on GitHub. The kids (and adults) have a great time learning to link the real world with the world’s most accessible fantasy world creation kit. Great work [John]!
Filed under: Arduino Hacks
BB-8 is the much loved new droid introduced in the 2016 movie Star Wars: The Force Awakens, though in my case from the very first trailer released in 2014 I liked it for the interesting engineering problems it posed. How would you make a robot that’s a ball that rolls along, but with a head that stays on top while the ball rolls under it?
To make the ball roll, the answer most people found obvious at first was to use the analogy of a hamster wheel. The hamster running inside makes the wheel turn. In the BB-8 building world, which is quite large, the drive mechanism has come to be called a hamster drive, or just a hamster.Magnets holding the head on
For the head, it seemed obvious that there would be magnets inside the ball, perhaps held in place near the top of the ball by a post extending up from the hamster. Corresponding magnets in attraction would then be attached to the underside of the head, and balls (also mounted under the head) would keep the head moving smoothly over the ball.
The magnet approach for the head has turned out to be the method used by all BB-8 builders that I’ve seen. However, the hamster has turned out to be only one of multiple solutions. Since the original debut many different methods have been used in builds and we’re going to have a lot of fun looking at each separate approach. It’s almost like revealing a magic trick; but really it’s all just clever engineering.
Note that for the actual movie, a combination of 7 or 8 props and CGI were used. The official working BB-8s that are shown at various promotional events were built after the movie was made and as of this writing, few details of their construction have been released. One notable detail, however, is that they aren’t using hamster drives.
Below are details of all the different BB-8 drive systems I’ve seen so far that have been built along with how they work.Axle Drive aka Pendulum Drive
With an axle drive, an axle runs horizontally inside the ball across the middle halfway up. At one or both ends of the axle is a motor and the ball is attached to the motor’s shaft.
A large mass is suspended from the middle of the axle and is fixed to the axle. When the motors turn the ball, the ball rotates as expected. The large mass swings forward in the direction of the ball’s motion. But you may have expected the mass to swing backward.
If you’ve ever held a motor in your hand while turning something substantial or that’s difficult to rotate then you’ll recall that the motor wanted to rotate in the opposite direction. It’s dangerous so don’t actually do it, but imagine while drilling a hole in a piece of wood that you lock the motor to the on position and let go of the drill. If the wood is clamped down and the hole is tight enough, the result is that the drill will rotate in the opposite direction. The same happens here. The motor and mass rotate in the opposite direction that the ball rotates.Axle type showing shifted center of mass
Another way to look at it that’s perhaps more correct is that when you swing the mass forward, that shifts the center of mass forward and the ball rotates in that direction. It’s for this reason it’s also called a pendulum drive (PDF) (section 2.2.4). The pendulum swings forward and the ball rotates in that direction.Axle type turning
Providing I have my physics right, the larger the pendulum mass, the less the pendulum should swing forward. This also happens more during the acceleration.
Turning is not done by the motors on the axle. To turn the ball, a mass is suspended from the center of the axle. The pendulum mass mentioned above can serve this purpose. A motor then swings this mass in either direction in line with the axle.
Swinging the mass to one side makes the ball tilt toward that side and the ball then moves in the direction of that side. Look carefully at the above illustration and you’ll see that the axle and ball are in fact tilted, while the pendulum stays horizontal due to its larger mass. This turning technique means the ball cannot rotate on the spot, but must be moving either forward or backward (though backward and forward lose meaning with a BB-8 since the head may be able to point in either direction.)Ed Zaricks BB-8 during testing
Forward and backward wobble can be minimized by again using the pendulum mass driven by the axle motors to swing the pendulum in the opposite direction of the wobble. To do this an IMU (Inertial Measurement Unit) is attached somewhere on the device. The IMU is a chip on a board that knows its orientation relative to the Earth (e.g. the BNO055 breakout board from Adafruit). Something like an Arduino takes that information from the IMU and uses it to turn on and off the motors to move the pendulum and gradually eliminate the wobble. The source code to do this is called a PID loop (Proportional Integral Derivative).
Sideways wobble can similarly be handled by swinging a mass sideways in the opposite direction, though I haven’t seen that done yet in any finished axle drive BB-8s. Either it hasn’t been handled or there was enough mass low down and relatively little mass high up, keeping the problem too small to notice.
I’ve seen three completed axle drive BB-8’s online so far and an excellent one with copious making details is [Ed Zarick]’s shown in the photo.The Hamster Drive
The hamster is typically a two wheeled vehicle that sits inside the ball, not physically attached to the ball in any way. Further support is usually given with casters or free turning balls extending out the front and back to contact the ball and help keep the two-wheeled hamster stable. Moving is done by rotating both wheels in the same direction.Wayne Neumaier’s BB-8 during testing
Turning is done by rotating the wheels in opposite directions. This means that each wheel has its own motor. This is called differential drive or tank drive, since it’s how two-tracked tanks turn.
Some have stabilized back and forth wobble by using an IMU to detect the wobble and driving the motors forward and backward in a PID loop. There isn’t a lot of room in the bottom of a hamster for a pendulum type mass that can be swung around for stabilization. However, the more fixed mass as low as possible, the more stable it tends to be.
You can see [Wayne Neumaier]’s hamster drive BB-8 shown in the photo during final testing before painting the ball. He has his two wheels near the bottom.Hubless Wheel Drive
The hubless wheel has a similarity to the hamster drive in that there’s a vehicle inside that is independent of the ball. This design is best known as the one that [James Bruton] has done for his BB-8 version 3. The difference from the hamster is that with the hubless wheel, the so called vehicle inside is constrained to a track that’s a part of the ball. In the illustration below the sides of the ball are not shown, though they’re normally attached to the track. This track is what’s called the hubless wheel, as there is no hub at the center of it.Hubless type parts
There’s a drive wheel that’s part of the vehicle that presses against the hubless wheel and makes it rotate (see the illustration). It serves the same purpose as the wheels in the hamster except that in this case there’s only one of them. The vehicle is constrained by a ridge all around the two sides of the the hubless wheel.
One of the reasons for this design is that the section of the ball that is the hubless wheel can be made with no seam in it.
With a normal ball there’s a seam where the two hemispheres of the ball come together and that can interfere with the smooth operation of the vehicle inside. With a hubless wheel drive, a central halo of the ball — the path the vehicle moves on can — be manufactured as one solid piece. The inside surface that the vehicle has to run on is smooth. Sure, there will be seams when the rest of the globe is added, but they will have no effect on the operation of the hubless wheel vehicle inside.
An advantage of this design over the others is also that the two sides of the ball can have access panels that open just like the BB-8 in the movie, even though the movie used props and CGI to do it.Hubless type turning
Turning is accomplished in the same manner as with the axle drive. The vehicle has a section that hangs down like a pendulum, and can be swung to either side. The mass of the pendulum illustrated here is a heavy flywheel (colored red). A motor can then swing that mass to either side to tilt the ball. And just as with the axle drive, tilting the ball causes the entire robot to move in the direction of the tilt.
Stabilization is done using a combination of techniques similar to the axle and hamster drives. For back and forth stability the vehicle in the track moves back and forth, countering wobble. And for side-to-side stability, the suspended mass is moved from side-to-side to counter that wobble.
The massive flywheel can also be rotated rapidly around its own axis, which causes the rest of the BB-8 to rotate in the opposite direction, allowing it the added trick of turning on the spot.
In the photo above you can see [James Bruton’s] hubless wheel BB-8 version 3 during final testing before doing all the cosmetics.Omni Wheel Drive An omniwheel robot (not BB-8)
An omni wheel drive is similar to a hamster drive in that a vehicle drives around inside the ball but with the difference that the vehicle can move in any direction. This is done with three or four omni wheels, each with its own motor and oriented in its own direction.
I may have missed it but I haven’t seen any completed omni wheel drive BB-8 builds yet. I have seen one omni wheel drive (like the one shown in the photo) that drives a ball but with no head as yet. I’ve also seen one BB-8 with a working head that use omni wheels but as far as I can tell they’re used just as hamster drive wheels, though I may have missed some subtle difference supplied by the use of omni wheels.Others?
There they are, and for me, knowing the many ways to bring BB-8 to life makes the robot builds themselves even more magical. I wouldn’t be surprised — in fact I’ll be delighted — if I’ve missed some. Let us know about any others you’ve encountered. These are very complex systems and I’d also love to hear your take on the subtleties of each. Leave those remarks, and any other BB-8 ideas in the comments below.
Filed under: Engineering, Featured, robots hacks, slider
[Ben Katz] is building a running robot from hobby level brushless motors, all on his blog under the tag, “HobbyKing Cheetah.”
One of the features of fancy modern industrial motor and controller sets is the ability for the motor to act as a mass-spring-damper. For example, let’s say you want a robot to hold an egg. You could have it move to the closed position, but tell the controller you only want to use so much force to do it. It will hold the egg as if there was a spring at its joint.
Another way you could use this is in the application of a robot leg. You tell the controller what kind of spring and shock absorber (damper) combination it is and it will behave as if those parts have been added to the mechanism. This is important if you want a mechanical leg to behave like a biological leg.
[Ben] had worked on a more formal project which used some very expensive geared motors to build a little running robot. It looks absolutely ridiculous, as you can see in the following video, but it gives an idea of where he’s going with this line of research. He wanted to see if he could replace all those giant geared motors with the cheap and ubiquitous high performance brushless DC motors for sale now. Especially given his experience with them.
So far he’s done a very impressive amount of work. He’s built a control board. He’s characterized different motors for the application. He’s written a lot of cool software; he can even change the stiffness and damping settings on the fly. He has a single leg that can jump. It’s cool. He’s taking a hiatus from the project, but he’ll be right back at it soon. We’re excited for the updates!
Filed under: robots hacks
If necessity is the mother of invention, then inconvenience is its frustrating co-conspirator. Faced with a finicky dryer that would shut down mid-cycle with a barely audible beep if its load was uneven (leaving a soggy mass of laundry), [the0ry] decided to add the dryer to the Internet of Things so it could send them an email whenever it shut itself down.
After opening a thinger.io account, adding the soon-to-be device, and setting up the email notification process, [the0ry] combined the ESP8266 Development Board, a photosensitive resistor, and a 5V power supply on a mini breadboard. All that was left was to mount it on the dryer and direct the LDR (light-dependent resistor) to the machine’s door lock LED to trigger an email when it turned off — indicating the cycle had finished or terminated prematurely. A little tape ensured the LDR would only be tripped by the desired light source.
If you’re an apartment-dweller have WiFi in the wash area it would be awesome to see a battery-powered version you take with you. But in general this is a great hardware blueprint as many device have status LEDs that can be monitored in a similar way. If you want to keep the server in-house (literally in this case) check out the Minimal MQTT series [Elliot Williams] recently finished up. It uses a Raspberry Pi as the center server and an ESP8266 is one of the limitless examples of hardware that plays nicely with the protocol.
We love seeing hacks like this because not only does it conserve water and energy by reducing instances of rewashing, but it’s also a clever way to extend the life of an appliance and potentially save hundreds of dollars in replacing it. Add this to the bevvy of hacks that add convenience to one’s home — some of which produce delicious results.
Filed under: Arduino Hacks, home hacks
There’s no piece of technology that has been more useful, more influential on the next generation of sysadmins and engineers, and more polarizing than the Raspberry Pi. For $35 (or just $5), you get a complete single board computer, capable of running Linux, and powerful enough to do useful work. For the 2016 Hackaday Prize, [Arsenijs] has created the perfect Raspberry Pi project. It’s everything you expect a Pi-powered project to be, and more.
While the Raspberry Pi, and the community surrounding the Raspberry Pi, get a lot of flak for the relatively simple approach to most projects which are effectively just casemods, critics of these projects forget the historical context of tiny personal computers. Back in the early ‘aughts, when Mini ITX motherboards were just being released, websites popped up that would feature Mini ITX casemods and nothing else. While computers stuffed into an NES, an old radio, or the AMD logo are rather banal projects today, I assure you they were just as pedestrian 15 years ago as well. Still, the creators of these Mini ITX case mods became the hardware hackers of today. It all started with simple builds, a Dremel, and some Bondo.
[Arsenijs] takes his Raspberry Pi project a bit further than a simple casemod, drawing influence from a Raspberry Pi smartphone, a Raspberry Pi security system, a Portable Raspberry Pi, and a Raspberry Pi wrist computer. These are all excellent projects in their own right, but [Arsenijs] is putting his own special twist on the project: he’s using a Raspberry Pi, and a few Raspberry Pi accessories.
While this project is first and foremost a Raspberry Pi project, [Arsenijs] isn’t limiting himself to the platform with the Broadcom chip. The team behind this Raspberry Pi project was busy porting the project to Odroid when the Banana Pi came out. This changed everything, a refactor was required, and then the Orange Pi was announced. Keeping up with technology is hard, and is a big factor in why this Raspberry Pi project hasn’t delivered yet. You can say a lot of things about the Raspberry Pi foundation, but at least their boards make a good attempt at forward compatibility.
Already [Arsenijs]’ Raspberry Pi project is one of the more popular projects on Hackaday.io, and is in the running for being one of the most popular projects in this year’s Hackaday Prize. Whether that popularity will translate into a minor win for this year’s Hackaday Prize remains to be seen, but it seems for [Arsenijs] that doesn’t matter; he’s already on the bleeding edge of Raspberry Pi projects.The HackadayPrize2016 is Sponsored by:
Filed under: Raspberry Pi, The Hackaday Prize
“So just like every other great story in history, ours is going to start at the lathe.” Truer words were never spoken, and thus begins the saga of turning a bar of chrome-moly steel into a shop-built boring head.
You may have a few questions regarding [ThisOldTony]’s effort. First, unless you’re familiar with machine tooling, you may wonder what exactly a boring head is. The video below makes it plain, but the short answer is that it’s a tool to make holes. A boring head spins a boring bar with a cutting tool, and the head can be offset to spin the bar through an adjustable diameter. They’re great for making large holes of precise diameters – skip to around 25:30 to see it in action.
The other question might be: why does he spend so much time and effort building something he can just buy off the shelf? If you have to ask that question, we think you may be missing the point. [Tony] seems mainly interested in building tools; using them to make non-tool things is merely a happy accident. We totally respect that, and besides, just look at the quality of the tool he makes. We find his videos very entertaining, too – he’s got a great sense of humor and the video production quality is top-notch. Just watch out for banana peels and space-time continuum issues.
Thanks to [jackjameshoward] for reminding us about [Tony]’s channel and this build.
Filed under: tool hacks
You have to be careful with CNC; it’s a slippery slope. You start off one day just trying out a 3D printer, and it’s not six months before you’re elbow deep in a discarded Xerox looking for stepper motors and precision rods. This is evident from [Dan] and his brother’s angle aluminum CNC build.
Five or six years ago they teamed up to build one of those MDF CNC routers. It was okay, but really only cut foam. So they moved on to a Rostock 3D printer. This worked much better, and for a few years it sated them. However, recently, they just weren’t getting what they needed from it. The 3D printer had taught them a lot of new things, 3D modeling, the ins of running a CNC, and a whole slew of making skills. They decided to tackle the CNC again.
The new design is simple and cheap. The frame is angle aluminum held together with screws. The motion components are all 3D printed. The spindle is just an import rotary tool. It’s a simple design, and it should serve them well for light, low precision cuts. We suspect that it’s not the last machine the pair will build. You can see it in action in the video after the break.
Filed under: cnc hacks
Building a car engine can be a labor of love. Making everything perfect in terms of both performance and appearance is part engineering and part artistry. Setting your creation apart from the crowd is important, and what better way to make it your own than by casting your own parts from old beer cans?
[kingkongslie] has been collecting parts for a dune buggy build, apparently using the classic VW Beetle platform as a starting point. The air-cooled engine of a Bug likes to breathe, so [kingkongslie] decided to sand-cast a custom crankcase breather from aluminum.
Casting solid parts is a neat trick but hardly new; we’ve covered the techniques for casting plastic, pewter, and even soap. The complexity of this project comes from the fact that the part needs to be hollow. [kingkongslie] managed this with a core made of play sand and sodium silicate from radiator stop-leak solution hardened with a shot of carbon dioxide. Sure, it looks like a Rice Krispie treat, but a core like that will stand up to the molten aluminum while becoming weak enough to easily remove later. The whole complex mold was assembled, beer cans melted in an impromptu charcoal and hair-dryer foundry, and after one false start, a shiny new custom part emerged from the sand.
We’ve got to hand it to [kingkongslie] – this was a nice piece of work that resulted in a great looking part. But what we love about this is not only all the cool casting techniques that were demonstrated but also the minimalist approach to everything. We can all do stuff like this, and we probably should.View post on imgur.com
Filed under: car hacks