promovare-site.info: WowWee MiP Balancing Robot: Toys & Games
This seriously SIMPLE playmat for kids robot toys is a super clever way to sneak in some hands-on STEM and STEAM play and learning! Now, Meet GRiP and Joe Plow Like this self-balancing Minion MiP Turbo Dave and Mini Minion MiP Turbo Dave! . Printable Conversation Starters for Kids & their Parents!. Meet MiP™, your new gesture tracking, self-balancing robotic companion! Out the Take a few minutes to look through this user manual and get MiP™ working . The balance bot is essentially a wirelessly controlled segway that leans its body . from where the tire meets the pavement to where the tire meets the wheel. It has analogous behavior to our robot, so patents that already exist for the MIP would .. Finally, to design this website, we adapted a template for the website from.
The context switch between stages is completed by the TinyRealTime kernel that allows several real time tasks to run simultaneously, with each task behaving as it were the only program running. The figure displaying the state transition diagram above reflects the flow of these states during normal operation.
Each of these states represents events both in hardware and software and, will be further segmented into hardware and software components. To achieve bi-directional motor control, a PWM signal rapidly oscillates the voltage applied to the motor.
In conjunction with the PID Control loop and the accelerometer information, the balance bot moves with precision and effectively counteracts the current error in upright posture. The sidewall is the distance between the outside and inner diameters of a tire, or the distance from where the tire meets the pavement to where the tire meets the wheel.
Short sidewall heights improve handling, but deliver a harsher ride. Moreover, larger wheels raise the center of gravity of the robot and make the robot more sensitive to changes in position and weight. To demonstrate the ability of our robot to balance itself, it is advantageous to have an unsmooth ride and a high center of gravity. This ensures our robot will be continuously adjusting itself as it moves along a path.
Furthermore, we decided to use wireless communication to control the balance bot.
For example, during the testing phase of this robot, we noticed that noise caused a huge issue in successful acknowledgment of a packet. Even after isolating the transceivers and removing ourselves from as much noise as possible, transmission errors still occurred. Only after perusing the datasheet of this component did we discover and comprehend the Enhanced ShockBurst ESB protocol to combat the noise issue.
Enhanced ShockBurst is a protocol that supports auto acknowledgements and retransmission of packets to achieve reliable communication at the expense of reduced throughput.
On the opposite end of the spectrum, if we chose not to utilize the transceivers, our balance bot would be limited in range to the length of a wire connected to the Wii Nunchuck. Not only does tethering the controller make transport of our robot more difficult, but it also creates a safety hazard because a long length of wire is unrolled on the floor and easily able to be tripped over.
Wireless communication extends the territory that our robot can traverse to meters, and provides a polished look to our composition. An integrated circuit connecting the serial port to the microcontroller implemented the RS standard, which sets standards on pin configurations, as well as electrical characteristics and timing of signals.
UART is useful for printing out status updates during the debug process. It has analogous behavior to our robot, so patents that already exist for the MIP would be pertinent to extensions in our original design.
However, an integral difference exists in the control mechanisms of MIP and our balance bot. MIP is controlled by fingertip gestures on a smartphone via Bluetooth and our robot is controlled by a Wii Nunchuck. There are no other relevant copyrights or trademarks that we know of. There are as follows: Furthermore we needed to create the mechanical structure of the Segway Robot it self to house these electrical components.
The MMAQ accelerometer allows us to measure acceleration in three axes with 12 bit precision. The MMAQ runs at 3. The MMAQ provides an inexpensive way to get the necessary data in order to balance the robot.
An H-bridge allows us to drive a motor in either directon depending on input logic. The LN has four input pins, four output pins, and two enable pins. Using the LN we can drive two motors at the same time since it has two output channels. However since we are expecting high currents to be drawn from the motors and the L can only support up to 2 amperes from each channel we decided two use two L's to drive our two motors, each with their channels running in parallel.
Running each individual L in parallel gives us a maximum current rating of 4 amperes for each L, which is sufficient. We are able to control our motors by sending two logic pins and one PWM to each L Using the two logic pins we can specify which direction we want the current to flow through motor and by sending the PWM to the enable pin we can turn the output of the L as a PWM as well.
Using the L's we can control how fast we want our motors to go as well as its direction. The LiPo Battery Due to the high power requirements of our system up to 6A draw between the motors after the boost converter, which could result in transient peaks of 9A loads on the battery we opted for a Li-Po pack, immediately settling for a 3S configuration In general, high performance but affordable Lithium batteries are sold in the domain of RC car and airplane hobbyists, as this is a relatively large industry that has been around for decades.
Runtime was an important consideration in our selection process, with hopes of achieving 45 minutes to an hour operation under usual conditions — at approximately 2A mean draw, this would yield a requirement of a 2Ah pack — relatively small, on the full scale of options available.
We settled on a Turnigy 2. The Voltage Regulators Our original design called for 5V regulation for the microcontrollers and primary peripherals, 3. Once the battery was settled on as a 3S Li-Po We resolved to purchase an off-the-shelf DC-DC buck regulator from Amazon — a RioRand branded, LM based board — as these are cheap, fully integrated regulation packages that perfectly fit our design specifications.
This board was used to regulate 5V from the unregulated battery input, operating at much higher efficiencies than what would have been possible with an LDO. However, because the drop from 5V to 3. The addition of a high voltage boost converter for the actuators was a more involved process.
We settled immediately on the MC multi-purpose switching regulator from On Semiconductors, as we had some prior experience with it and in general it is a very popular choice for high-current boosting applications such as ours. Because the regulator itself is only rated for 1. We based our circuit off the work done by Kenneth Finnegan, shown below. The switching regulator was to be set at around 20V initially, so our feedback circuit was modified with the appropriate resistor values, with a generic logic-level nMOS used as the external switch.
Our initial prototype of the circuit on a breadboard was successful, but unfortunately the circuit had last minute issues with wiring once it was soldered to a perf. The purpose of the radios are to provide the remote control a means of getting data to the Segway Robot. Using SPI we can configure the radio as well transmit and receive data.
The Remote Control In order to provide the user a means of controlling the Segway Robot, we have designed a remote control. We chose the ATmega16 for the controller because the code will not be very intensive and it provides everything that we need to do. To provide the user a familiar interface we decided to use a Wii Nunchuk. The Wii Nunchuk has a breakout that exposes the power and I2C pins.
Using the I2C pins we can use the ATmega16 to communicate with the Wii Nunchuk to get the joystick values as well as its button and accelerometer values. Using the joystick values the user can send data to the MCU which in turn will then transmit it to the Segway Robot. Based on the information the Segway Robot receives it will know whether to turn left or right, move forwards or backwards, or remain still.
We chose the ATmega because it is very much like the ATmega that we have been working on in lab however it just has less memory.
In order to achieve success with both criteria, a middle ground of practical minimalism was needed. Because the budget was such a strict constraint, especially for a fully integrated mechatronic system such as this, we found it easiest to take care of all purchases first, with only a rough idea of our design in mind, in order to constrain our design space a bit further to more manageable proportions and make sure all required components would be on hand once the final design process began.
- Technical Specification
- Roll Into The Future
- Segway Robot
In order to fit the budget, we limited our search to mainly third party resellers — eBay, All Electronics, Marlin P. Combinations of the various part options available were studied for tradeoffs and the budget, shown below, was compiled as early in the design process as possible.
Perhaps the most crucial purchase decision made was the selection of the two drive motors. Our specifications required brushed DC motors, rated for approximately 12V with stall currents of 3A max, with no-load speeds around RPM.
Unfortunately, secondary resellers hardly provide adequate specifications about things like electric motors, so the selection process was tedious and largely based on guess work and the hope that a given product photo will include a valid part number. We eventually settled on two repurposed Merkle-Korff gearmotors from eBay, as the seller was able to provide a mechanical drawing and electrical specifications ahead of time, allowing us to proceed with the design as we awaited the shipment.
Wheels were similarly found on eBay, though, naturally, they were far easier to select given their passive nature. We ended up finding some set-screw hubs of the perfect diameter and epoxying them to the wheels — a makeshift solution, but unfortunately the geometry simply did not allow for anything cleaner given the resources available to us.
Once the off-the-shelf parts were all purchased, the actual mechanical design process was initiated. After considering a number of possible design directions during our initial brainstorming sessions, we settled on what later became our final design as it seemed to be our best bet of creating an aesthetically pleasing yet mechanically sound and financially feasible robot.
The design, shown in the CAD renderings, could perhaps be described as a top-heavy trapezoid with a sagittal-plane symmetry. This orientation allows us to maximize the moment of inertia about the wheel axis by organizing most of the internal hardware electronics, battery, etc.
The chassis consists nearly entirely of laser-cut Plexiglas sheet, with a few 3D printed couplings and the necessary fasteners — heat-set threading for the Plexiglas, matching screws, lock washers, and standoffs to create a metallic scaffold for the undercarriage holding the motors. The final build, shown in the photos, was constructed without too many problems. Poor tolerances on the laser cut Plexiglas resulted in a few overly constrained components, but overall the structure feels rigid.
Unfortunately, the weight of the drive system really dominates the entire structure, thus the center of mass is a bit lower than ideal. In future iterations, it may be necessary to stretch the body of the robot further up and possible artificially add weight to the head region in order to distribute the mass more appropriately. The tolerance issues could also be easily be taken care of with additional iterations that optimize manufacturability, but such processes are just a matter of time and resources.
Rendering of the Segway Robot Figure 5: Their descriptions are as follows: In his I2C library we have the capability to initialize, read, and write all using I2C. Using this library provides an easy means to communicating with the accelerometer. First to test communications, we wrote code to test soley the accelerometer. Using the I2C protocol we found in the accelerometer's datasheet we were able to communicate with the accelerometer. Using the test code we were able to read and write to the accelerometer and see the accelerometer's measurements printed out over serial.
Wii Nunchuk Code When writing code for the Wii Nunchuk we took a similar approach as we did with the accelerometer. We first wrote test code to test soley the Wii Nunchuk. Our code was designed to read data from the Wii Nunchuk and the print those readings to serial. While the Wii Nunchuk also communicates using I2C we were able to find another library online, written by Davide Gironi, that was specifically for communicating with the Wii Nunchuk. This library was also based off of Peter Fleury's I2C library.
When we first tried to communicate with the Wii Nunchuk we were not able to correctly read data from our Nunchuk. Upon debugging and further inspection we found that we had to put a five millisecond delay between writing and reading otherwise the read data would become corrupt.
After implementing this delay we found the Wii Nunchuk to work perfectly. However this time we found that we could seem to get the code working. We tried several variations of the code but to no avail. We double checked to make sure that the SPI configuration on the ATmega was correct and that the pins matched but we found that we were not able to communicate using these radios. Setting up these PWMs was much like the tachometer from Lab 4 and so we decided to recycle the motor control from the tachometer.
Also from the tachometer lab we recycled the PID loop that we were using and redesigned it to fit the purposes of this project. Unfortunately we did not have the time to test this code, so we did not see whether it would work until we had put the Segway Robot together.
Putting It All Together Now that we had written code for each of the key components it was time to put it all together. We decided to use TinyRealTime since it would help us better organize the code set task times. Originally we had decided to put each of the code pieces into different tasks but we realized that we would never want to update the PID loop without first from the accelerometer.
Since we had each individual component working, putting the code together was easy since we knew what would work and what wouldn't, with exceptions of the motor control task. By choosing to tether the Wii Nunchuck directly to the ATMega, the issue of latency was almost non-existent.
The flatter your hand is when you come at him, the better the response will be. The next mode is called Stack, represented by the color pink.MiP Balancing Robot Unboxing & Review!
In this mode, the user is supposed to put his tray table onto MiP, and stack as many objects on to MiP's tray as possible. As you do, MiP will say "MiP" faster and faster. His timer then runs out, and he spins around making everything go flying. Then you do it all again! After Stack, comes Cage Game, represented by the color white. Here, MiP will say "MiP go", indicating the start of the game. Now, MiP is in a virtual cage and you have to prevent him from escaping by putting your hands in front of MiP's sensors in his eyes.
If you don't get there in time, MiP wins, and he'll be a show off about it too! Next, is Tricks mode, represented by the color red.
Warranty & Support
Here, the user must wait for MiP's chest to start flashing, indicating that he's ready to take commands. Now, you can program a sequence of actions.
You can swipe left to make MiP turn left, right to turn right, forward to roll forward, and backward to roll backwards. Again, it's important to make your hand as flat as possible so MiP picks it all up accurately. When you're finished giving him tasks, clap twice or tap MiP on the head two times, and he'll play it back for you. MiP can remember 50 consecutive gestures commands in a row.
Next, is Roam mode, represented by the color yellow. Here, you can place MiP on a flat surface and let him navigate his surroundings autonomously. If MiP sees something in his path, he will turn and roll to a different direction. He does not have edge detection however.
Be careful not to let him fall of tables or staircases. Lastly, we have tracking mode, represented by the color orange. In this mode, the user can place an object, which in this case is my hands but is not limited to just that, over MiP's eyes. MiP will repeat "MiP" over and over to indicate that he's tracking.
Now he'll follow you in every direction as opposed to moving for pre-determined sequences like in the default MiP mode. Once you've made it through the different game modes, the next thing worth checking out is the MiP app, available for both iOS and Android.
Once you've downloaded the app, load it up, and as long as your Bluetooh is enabled, MiP will automatically sync up to your device.
There are three important icons in the app worth mentioning. The first is the battery bar, that shows how much juice is left in MiP's batteries. The second is the little MiP head icon, which is the menu button. Here you can scroll through different games and functions. Third, is the settings wheel which lets you adjust MiP's name, MiP's avatar, volume, and gives you access to info about the app.
The default game it will put the user into is MiP Drive. In this mode the user uses his left thumb to make MiP move forward and backwards, and his right thumb to move MiP left and right. The next icon in the menu is MiP cans. These are little personality chips.
ECE Segway Robot
If you feed one to MiP, he will take on that personality for a few seconds. You can make him happy, sad, confused, farty, sleepy and more! Next you have MiP Dance. The song will play through your device, not MiP, so make sure the volume is turned up.
To choose a song, hit the music button on the bottom right of the screen which will bring up your library. Once you've chosen one, hit play to start the song. Now you can either watch MiP dance on his own, or direct the way he moves with the buttons on the right of the screen.
On the left, you can adjust his dance style. He can jive, swing, rock out, or kick it up into superstar mode.