Today we will have a look at a robot kit created by SunFounder. The Sloth is a bi-pedal robot based on the Arduino Nano. It utilises an ultrasonic module for obstacle detection and four servos for movement.
I found the kit to be an easy and fun build that took approximately an hour to complete. SunFounder have uploaded a YouTube video that serves as detailed introductions and assembly tutorial for the robot. It covers the entire assembly process, including the process to test the ultrasonic module as well as all the servos (before assembly), which is a good thing as one of the servos included with my kit turned out to be broken, but luckily I had a replacement servo on hand.
One thing to note is that the robot utilises two 18650 batteries, which after some research turned out to be commonly used in high-end flashlights and e-cigarettes, and are relatively pricey.
The robot can also be powered through the mini USB port on the Arduino (which I did while I waited for the batteries I had ordered to be delivered).
The code for the robot can be downloaded from here on the SunFounder website. Just note that the default code did not work for me as the ultrasound module did not detect obstacles. I rectified this by replacing the following code:
void loop()
{
int <span class="mceItemHidden" data-mce-bogus="1"><span class="hiddenSpellError" pre="int " data-mce-bogus="1">tooclose</span></span> = 0; // Define the test times, the initial value is 0
for(int a=0; a<5; a++) //for is a cyclical function and its cyclic times are determined by the second condition in the bracket. Here a<5, a’s initial value is 0. When a<5, run the program in the bracket. After running, a becomes a++ and it means adding 1 to a’s value.
{
delay(50); // Delay 50ms
int din = sonar.ping_in(); // Call the ultrasonic transducer to read the distance that ultrasonic detected.
if (din < 7 && din > 0) tooclose++; // The smoothing. The times add 1 when the detect distance less than 7cm and greater than 0cm.
}
With this:
void loop()
{
int <span class="mceItemHidden" data-mce-bogus="1"><span class="hiddenSpellError" pre="int " data-mce-bogus="1">tooclose</span></span> = 0; // Define the test times, the initial value is 0
for(int a=0; a<5; a++) //for is a cyclical function and its cyclic times are determined by the second condition in the bracket. Here a<5, a’s initial value is 0. When a<5, run the program in the bracket. After running, a becomes a++ and it means adding 1 to a’s value.
{
delay(50); // Delay 50ms
int din = sonar.ping(); // Call the ultrasonic transducer to read the distance that ultrasonic detected.
if (din < 750 && din > 0) tooclose++;
}
I really enjoyed assembling and playing with this little robot and would definitely recommend it to anyone interested in getting started in basic robotics.
This post forms part of a series covering the entire Legend of Zelda franchise hosted by NekoJonez , so if you love the Legend of Zelda as much as I do, browse over to this hub article on his blog, which contains links to article (like this one) on each Legend of Zelda game in the series created by a variety of different bloggers.
The legend of Zelda series is one of my favorite gaming series, as can be seen by the numerous Legend of Zelda items in my gaming collection.
So to say that I was eagerly awaiting the release of Breath of the Wild earlier this year is an understatement of note, so was it worth the wait? Did it live up to the hype? Lets find out.
The Legend of Zelda Breath of the Wild is the latest, and in my opinion greatest, adventure in the Legend of Zelda series. It released in March 2017 (Nearly 6 years after Skyward Sword, the last major console Legend of Zelda game released) on the WiiU and Nintendo Switch and received almost unanimous perfect review scores (With a current Metacritic score of 97%).
The Legend of Zelda games have always been open world to some extent, but Breath of the Wild not only truly introduced the Zelda series to a fully realized open world, but also changed the way that we will look at all other open world games going forward, revitalizing the open world genre as a whole. Unlike many other open world games, where the world seems lifeless and repetitive, Breath of the Wild managed to create a representation of Hyrule that seems alive, dynamic and real.
The amount of freedom the game allows is also truly amazing, and any situation the game presents can be approached from various different ways. This combined with an amazing physics engine fully releases the player’s imagination in a sandbox of almost endless possibilities. Some examples of this is how bombs can be used to kill fish in ponds which can then be easily collected, or how the player can “cheat” in the motion controlled ball and maze puzzle shrines by simply flipping the control pad upside down and using the flat back of the maze to easily guide the ball to the target, or realizing that any metal item can conduct electricity and then using spare weapons and armor to solve electricity puzzles, or how an enemy encampment can be destroyed by using the wind and a patch of dry grass to start a wild-fire to burn it to a crisp, or how a wooden shield can be used to catch and collect enemy arrows fired at you . These are but a few of many examples.
Breath of the Wild is not an easy game, but you never feel that it is unfair. Breath of the Wild harks back to a time in gaming when games actually presented a genuine challenge. This is very apparent in Breath of the Wild in how even from very early in the game you are free to go to areas where very high level and dangerous enemies reside, which in the beginning you are very unlikely to defeat. But as you gain more health and stamina, get better weapons and armor and also get better at the game you will later be able to defeat those same enemies much more easily. For example, the first time I encountered a Stone Talus it was a long and grueling fight, which I only beat after numerous attempts, but after I upgraded my armor and weapons and also learned to better utilize my ranged attacks and dodging, I can now take down a Stone Talus without much effort.
The different regions in the game world vary greatly in look and feel, from the grassy plains of the Great Plateau, to the fiery Death Mountain, to the water rich Zora’s Domain, to the sandy desert of the Gerudo Wasteland. All the regions are beautifully bought to life, each with its own inhabitants, sub-quests and story arcs. All of these regions also contain villages, all unique and wonderful to explore.
Another great feature in the game is that you can buy a house, and make various upgrades to it. This provides a handy place to store items you have collected, freeing up some valuable inventory space.
One of my favorite things to do in Breath of the Wild is to go out in the world and scavenge for useful items, chopping down trees for wood, mining minerals with my hammer, hunting a variety of animals for meat or simply picking fruits, vegetables and mushrooms to use in recipes.
Crafting is done in Breath of the Wild through its cooking system. Various recipes can be discovered, through experimentation, to create a variety of potions and food items offering not only health restoration but also a wide range of temporary upgrades to attributes like stamina and sneaking.
After everything we have covered and we haven’t even touched on a major element of the game, the dungeons. Dungeons come in two varieties, firstly shrines, which are mini dungeons in which you unlock abilities and spirit orbs (which are used to upgrade health and stamina) and then the five main dungeons. The five main dungeons consist of the four Divine Beats and finally Hyrule Castle. All five main dungeons end with a boss encounter with an embodiment of Ganon. These dungeons offer a wide variety of challenges, from truly impressive puzzles to powerful enemies, and finishing one gives you a real sense of achievement.
If you haven’t realized this yet, I truly love this game and it is easily in my top three favorite games of all time, and is definitely my favorite Legend of Zelda game.
I enjoyed every second of this game and even after spending far over a hundred hours playing, I still feel that there are things left to discover.
Quite often when a game gets huge amounts of hype and amazing reviews it ends up being a disappointment as expectations are built too high and it fails to live up to them, but this is not the case with Breath of the Wild. This game not only lives up to the hype but also exceeds it.
The Maker Movement Manifesto is an interesting look into the Maker Movement by Mark Hatch, the CEO and cofounder of TechShop a popular maker space.
It starts out by defining the Maker Movement Manifesto which is broken down into 9 points:
Make
Share
Give
Learn
Tool up
Play
Participate
Support
Change
This is interesting and explains everything from the values underlying the movement to how to set up a maker space in your own community, however what was of more interest to myself was the following sections where numerous stories were relaid about success stories of makers developing their passions into successful businesses from within TechShop.
The book covers not only the Maker Movement from an internal perspective, but also the far wider reaching socio-economic impacts of giving anyone access to the tools, knowledge and abilities to make things for themselves, be that anything from a proof of concept to a product to art. It looks at how this wider access to these facilities accelerates innovation, democratizes tools/equipment and information and creates a new breed of person, what is referred to as a pro-am, a professional amateur. And how this mindset change might be better suited to addressing the challenges the world is experiencing today.
I really enjoyed The Maker Movement Manifesto, and found it to be inspiring, it really got my Maker juices flowing. So if you are a Maker or interested in the Movement give this book a try.
15 Years ago I wrote a small game called Hellspawn and I rediscovered it again when I was going through some old backup discs. It is a top down shooter and was developed in Borland C++ Builder (I think version 6). It was a very basic game (especially looking back now) from when I was still a very inexperienced developer, still studying to get a degree.
Use Hellspawn.exe to start the game, but first in file properties:
Set executable to run in compatibility mode– Windows 98 / Windows ME
Reduced Color mode – 16-bit
Override DPI Scaling Behavior, Scaling performed by – Application
Can also set to run in 640 x 480, however is best to change screen resolution in windows to 1024 x 768 for best experience.
The controls are as follows:
Arrow keys to move
Left ctrl keys to fire weapon
Simply kill all the enemies to proceed to the next level.
On another note I have some Steam game keys to give away!
For a chance to win one simply email killerrobotics.me@gmail.com with the subject line ‘Killer Robotics Steam Giveaway’ and for the message content just be creative.
Winners will be randomly selected and announced via twitter.
In a previous post, DIY VR Part 1, we took a look at apps that allowed a user to stream PC games to a smartphone in stereoscopic 3D, which could then be used with a Google Cardboard compatible headset to experience VR.
This worked well, however the apps examined in the previous post did not support or were not optimized for games specifically designed for SteamVR. For SteamVR to start up a compatible HMD (Head Mounted Display, like Oculus Rift or HTC Vive) needs to be detected, something the apps covered previously did not support, with the exception of TrinusVR which does support this, however it does not support USB tethering with iOS which has a significant negative effect on the experience.
Today we will look at an app that does fully supports this functionality, iVRy.
iVRy is an iOS app that allows SteamVR games to be streamed to an iPhone, and as with the previously mentioned apps, utilizes the phone’s gyroscope and accelerometers for head tracking and movement.
iVRy comprises of a app that is installed on your iPhone and a SteamVR HMD driver to be installed alongside SteamVR on your PC.
The iPhone is then connected to the PC either via Wi-Fi or USB (preferably USB as the results are greatly improved). The next step is to start the iVRy app on the phone and then lastly launch
SteamVR (which will detect the phone as a compatible HMD) and you are up and running.
The app has various settings to optimally configure your VR experience, such as lens distortion correction and field of view settings, with a large list of Google Cardboard Compatible Headsets preconfigured for ease of use.
Another feature of the app is that it auto adjusts image quality to ensure a high frame rates, reducing VR sickness.
iVRy supports a lot of SteamVR titles, working with any game that does not require motion controls, so any game that supports a traditional controller should work. Saying this a controller is pretty much required and any Steam compatible controller will work.
iVRy has a free trial version that does not limit play time, but reduces color saturation after 5 minutes of play time, making the image appear in shades of grey. To unlock the full premium version of iVRy costs $6.99, which removes the 5 minute limitation.
If you are an Android user a similar app is available called VRidge by RiftCat, which costs $14.99. It does however offer a great deal more functionality, thus the higher price.
Now on a related topic, I recently had the opportunity to play around with a HTC Vive at the Microsoft Store at NorthPark Center in Dallas Texas, and it was an amazing experience. I played through a series of experiences, starting with a tutorial based on the game Portal and then flowing into The Blu, AudioShield and finally Space Pirate Trainer. The experience was extremely immersive and I got goose bumps, it was truly mind blowing. The motion controls and room tracking of the Vive work extremely well and helps greatly with the immersion. If you ever have an opportunity to use a HTC Vive I would highly recommend it.
While I was in Dallas I also went to see some interesting sights, like the Oculus VR Dallas offices, where John Carmack is based.
Now for a quick update on the DIY VR Headset Version 2. I have acquired the parts for the new headset, including two 1920×1280 (60 Hz) 3.5inch (89mm) displays (one for each eye) and a Leap Motion, which I will use to implement motion controls. I have decided for the version 2 to use two smaller independent displays mounted in portrait mode (similar to what is done in the HTC Vive and Oculus Rift, post Development Kit 1 which used one screen).
I will also look at using iVRy with the Leap Motion to get motion controls working in Steam VR. So watch this space, some exciting things are coming.
Dancing Barefoot is a collection of memoirs by Wil Wheaton in the form of five short stories. The stories are all quick and enjoyable reads covering topics of joy, sadness and self discovery, Wil experienced throughout his life. I really like Wil’s writing style and I am a regular reader of his blog WilWheaton.net. If you’re familiar with Wil’s blog you would pretty much know what to expect from Dancing Barefoot.
The book is a very pleasant, light and quick read and can easily be finished in a single sitting, ideal for a long flight. I really enjoy short stories in general and Dancing Barefoot is no exception, I would highly recommend it if you are looking for some light hearted-feel good entertainment.
If you enjoyed this book also give Wil’s other book Just a Geek, which I covered in another blog post, a try.
The purpose of this series of posts was to look at ways to experience VR at home for the lowest cost possible. In Part 1 of DIY VR, we took a look at using a smart phone and a Google cardboard compatible headset to stream computer games to the phone in stereoscopic 3D. The main problem with this approach was that it was still relatively expensive as it required a smart phone (iOS or Android) to function.
Now in part 2 we will look at building a VR headset from scratch. My initial goal was to do this for under $150(USD), however after shopping around and changing some parts out for alternatives I managed to get this down to around $80. So let us get started.
The parts required are:
Toggle Flick Switch
2x LED
1x resistor 150 Ohm
1x Micro USB cable (at least 2 meters long)
1x HDMI Cable (thin ones work best as they hinder movement less, also at least 2 meters long)
Some jumper wires
DC Adapter plug 5V 3A (Raspberry Pi compatible one works great)
Push Button
Google Cardboard Compatible VR Headset (I recommend one with a phone compartment door that opens as it gives better access than the ones which uses a tray that slides in)
6DOF MPU 6050 3Axis gyroscope and accelerometer
Arduino Micro (can use off brand alternative)
5inch RaspberryPi LCD Screen 800×480 with HDMI interface
All of these parts can be acquired on AliExpress for about $80 ($82.78 to be precise), as shown in the image below:
You will also require Tridef3D or similar software (there are some free alternatives, but I have not had a chance to give them a try at present). Tridef3D is used to convert any Direct X 9/10/11 game into stereoscopic 3D. Tridef3D offers a 14-day free trial, which is plenty to give this a try. The full version of Tridef3D retails for $39.99.
Now that we have all the required components, let us begin with the assembly.
The assembly comprises of 3 main elements:
The Arduino Micro circuit (containing the MPU 6050, push button and led)
The Wiring (providing connectivity to Arduino Micro and power to Screen)
Inserting the screen in the headset and connecting the micro USB cables as well as the HDMI cable.
The Arduino Micro circuit
The diagram below illustrates how the different components need to be connected to the Arduino Micro:
The push button uses digital pin 5 and the MPU 6050 is connected to the Arduino Micro as follows:
– MPU 6050 SCL pin to Digital Pin 3 on Arduino
– MPU 6050 SDA pin to Digital Pin 2 on Arduino
– MPU 6050 VCC to 5V pin on Arduino
– MPU 6050 GND to GND pin on Arduino
The code to be loaded on the Arduino is as follows:
#include <Mouse.h>
#include <Wire.h>
#include <I2Cdev.h>
#include <MPU6050.h>
MPU6050 mpu;
int16_t ax, ay, az, gx, gy, gz;
int vx, vy;
int inputPin = 5;
bool enableMouse;
void setup() {
Serial.begin(9600);
Wire.begin();
mpu.initialize();
enableMouse = true;
pinMode(inputPin, INPUT);
if (!mpu.testConnection()) {
while (1);
}
Serial.println("Running...");
}
void loop() {
int val = digitalRead(inputPin);
if (val == HIGH) { // check if the input is HIGH
//Place logic here to execute when button is pressed
//Disables mouse movement while button is pressed, this allows you to set your view angle easily.
enableMouse = false;
}
else
{
enableMouse = true;
}
if(enableMouse)
{
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
vx = -(gy)/150;
vy = (gz+100)/150;
Mouse.move(vx, vy);
delay(20);
}
}
Just note that the orientation of the MPU 6050 makes a difference to which of the axis of the gyroscope will be used. For the above code the MPU 6050 was mounted on the side of the headset as shown in the pictures below:
In the event of the MPU 6050 being mounted with a different orientation you might have to substitute between the gx, gy and gz values until the desired configuration is achieved.
For my configuration I am rotating around the Y and Z axis.
Also the numbers associated with calculation of vx and vy might have to be tweaked to get the results (movement speed etc.) you desire.
I also added a push button, that when pressed temporarily disables the gyroscopic mouse movement. This is useful when you want to reset you point of view in games.
I attached all the parts of this circuit to the VR Headset using double-sided tape.
The Wiring
In order to have as few cables as possible connecting to the VR headset I modified the USB cable so that it pulls external power from a DC power adapter (a single USB port will not be able to power both the Arduino and the 5 inch LCD) as well as splitting into 2 micro USBs on one end (one only provided power to the LCD and the other one both power and connectivity to Arduino.) the below diagram shows how the wiring is connected:
For reference a USB cables contains 4 wires:
Red wire – +5V DC
White or Yellow – Data connectivity
Green – Data Connectivity
Black – GND
I also included a switch to turn the power on and off (this is useful to turn off the mouse functionality until it is needed, otherwise it will interfere with mouse movement when it is not desired) as well as an LED to show when the headset is powered on.
Inserting Screen in Headset and connecting all the wiring
The LCD screen is held in place by the clamps in the headset used to hold a phone (it is a snug fit). Then simply connect the 2 micro USBs to the LCD and Arduino respectively (ensuring the plug with the data connections is plugged into the Arduino and that the power only micro USB is plugged into the power socket on the LCD display). Try to run the cables in the extra spaces in the Headset around the screen in order to keep them out of the way.
Lastly connect the HDMI cable to the LCD.
The assembly is now complete.
Connecting headset to PC and setting up software
To connect the headset to your PC do the following:
Plug the DC adapter into mains power.
Plug the USB connector into an available USB port in your PC.
Connect HDMI cable into and available HDMI port on your PC graphics card (You can use a DVI port with an adapter)
Go to display settings and click on detect displays, then set Multiple displays to “Duplicate these Displays” and make sure your resolution is set to 800×480.
Open up Tridef3D and start-up a game.
You might have to play around with each individual games graphical settings as well as mouse sensitivity to get the best results.
For future enhancements I will look at getting a higher definition LCD screen and also work on head movement tracking by using infrared LEDs and a Wiimote (Wiimote used as a IR Camera).
And there you have it a DIY VR Headset for $80. Give it a try.
For the last week or so I have been completely consumed with The Legend of Zelda Breath of the Wild, which I am playing on the WiiU. Breath of the Wild has gotten perfect and nearly perfect review scores from just about everywhere and this begs the question whether this is just hipe? The answer is a most definite NO. Breath of the Wild is truly amazing and is in serious contention for my favourite game of all time, a statement I do note make lightly.
I am currently roughly 30-40 hours in, with most of that time not spent on the main story, but rather on exploring and doing side quests. You would think that after that amount of time I might start getting burnt out on the game, but that is not the case at all, I simply cannot get enough.
The world in Breath of the Wild feels more alive than just about any open world games I have ever played. The freedom, it offers is mind blowing and the physics, from how enemies can be destroyed by pushing a bolder off a cliff to crush them or burnt to a crisp by starting a fire up wind from them, is mind blowing.No problem in Breath of the Wild has a single solution and you can approach any situation however you choose. I really suggest not reading guides or how to’s for this game and rather just experiment and discover things for yourself. This brings back the feeling of the original Legend of Zelda, before the internet, when trial and error and a lot of experimentation was the only option and discovering something made you feel like you where the first person in the world to see it. An example of this is when I, by accident, discovered the easiest way to catch fish and frogs was to use bombs for a bit of dynamite fishing, when the bomb explodes all the fish and frogs float to the top of that water and can easily be picked up. This sense of exploration and discovery is where the true magic of Breath of the wild lies.
It is worth mentioning that Breath of the Wild is not an easy game, and you will die a lot. Because the world is completely open you can walk into areas where extremely strong enemies reside that you have no chance beating early on in the game. It is however very satisfying revisiting an enemy that killed you in the past and with your new weapons and skills getting some revenge.
So with all the above mentioned does Breath of the Wild still feel like a Zelda game? To me it most definitely does, from secrets hidden away to puzzles that require you to get out a notebook and pen to make notes, I feel that Breath of the Wild comes the closest to delivering on the vision that was conceived with the original Legend of Zeldaback in 1986, more than any other Zelda game before it.
I have not felt this level of game addition in a very long time, I love this game! So if you have not done so yet, get a copy either on the WiiU or Switch. And if you have to pick up a Nintendo Switch just to get this game, Do It, you won’t regret it. So if you would please excuse me I have an urgent appointment in Hyrule.
I picked up Just A Geek based on the recommendation of various people, and I can say I do not regret doing so.
Just A Geek is the memoirs of Wil Wheaton, of Star Trek: The Next Generation and Stand by me (and Big Bang Theory) fame. It is an honest and brutal look at his rapid rise to fame as a young teen and his subsequent and dramatic fall thereafter. He goes into a great deal of detail describing his love\hate relationship with Wesley Crusher, the character he portrayed on Star Trek: The Next Generation, as well as the doubts and self loathing he experienced as a result of him deciding to leave Star Trek.
In the book he writes of his time as a struggling actor who could hardly find work, to him discovering comedy and being part of a successful sketch comedy group and later starting his blog, WilWheaton.net. Starting his blog resulted in him learning HTML and teaching himself Linux and also helped him rediscover his love for writing. The rediscovery of this love helped Wil redefine himself as an author, helping him find balance and success in his life.
Just A Geek is a really enjoyable journey, starting with a young boy on the set of Star Trek: The Next Generation, more interested in Dungeons & Dragons than Star Trek, to a normal guy dealing with the complexities of everyday life, like paying bills and working on the relationship with his wife and step-sons.
Just A Geek is an inspiring and feel good book that I would really recommend. It shows how life hardly works out how we plan, but even so great things can come from the most unexpected places.
In a previous post, I has a look at the original Google Cardboard or the version 1 as it is now known. The version 1 of the Google Cardboard was initially released in 2014. It was very well received with over 5 million units sold. In 2015 a new updated and improved version 2 was released, so how does the Google Cardboard version 2 measure up to the amazing version 1? Let us take a look.
Firstly from a fit and comfort perspective the version 2 has significant improvements compared to the version 1. The nose hole on the version 2 is much larger and has foam padding around the rim, which greatly improves the comfort of using the headset, especially for longer wear times.
The version 2 also comes bundled with head-straps, whereas with the version 1 they had to be ordered separately upon initial release.
Another difference between the version 1 and version 2 is how they interact with VR applications. Both have an action button, but how they function is very different. They version 1 has a magnet which slides up and down and triggers an action on certain android smartphones similar to a screen tap. The problem with this magnet based action button is that it only works with certain android phones and not on iPhones, thus limiting the Cardboards’ functionality on all but fully supported phones.
The version 2 on the other hand utilises a lever based design which presses a conductive pad against the phones screen, fully replicating a finger touching the screen. This works on all touch screen smartphones, including iPhones, and is a great improvement over the version 1, especially for people using non-Android Smartphones.
The version 2 is also designed in a manner that holds a phone more securely, thus reducing the anxiety resulting from the fear of having your phone fall out mid VR experience.
Additionally the version 2 contains much larger and better lenses, which are fitted more securely and flush, than the version 1.
Use is made of protective plastic tape in the version 2 where your forehead comes in contact with the headset. This protects the headset from damage due to sweat, a common complaint in the version 1.
So, up to this point the version 2 has clearly taken the lead. But there are however 2 key areas inwhich the version 1 outperforms the version 2.
The first of these key areas is price. The version 1 costs approximately half what the version 2 does.
The second area is the support of Augmented Reality Apps. The version 1 has a cut out where the phone camera is located, whereas the version 2 does not. Without this hole for camera access, Augmented Reality Apps can not function due to their reliance on the phone camera.
Even considering these 2 areas, except if you are extremely price sensitive or dead-set on AR apps, the version 2 is a much better option, especially if you have an iPhone or any other non-Android phone.
The improvements and design changes made in the version 2 are all vast improvements over its predecessor. Although the price did roughly double it is still not a large amount of money, and in my opinion the version 2 is well worth the extra cost.
As an iPhone user I am very happy with the Google Cardboard Version 2 and how it was enhanced for better support of non-Android phones.
If you have never owned a Google Cardboard, I would definitely recommend picking up the version 2 over the version 1. And even if you already have a version 1 I would still recommend upgrading to the version 2 due to its improvements and better phone support.
The Google Cardboard Version 2 is a great upgrade to an already great product, so pick one up, for the money you won’t regret it.