Pages

Tampilkan postingan dengan label kart. Tampilkan semua postingan
Tampilkan postingan dengan label kart. Tampilkan semua postingan

Minggu, 29 Mei 2016

An I O Source For Platforms That Don’t Have One

[Todays post is by Nick Appelmans, a member of the Humboldt Microcontrollers Group]

Many times I comment that we have more processing power in our phones than the astronauts who traveled to the moon had at their disposal. Often, I follow this up with some derogatory remark about how little we actually use this capability. One area that stands out is controlling physical devices or “physical computing.” I hope this review will inspire you to tap into the resources that sit idle in your pocket and help you to move away from pixel pushing and into the exciting world of input/output.
IOIO board

This blog has previously featured a story on a Kickstarter that produces a device that turns your Android phone into a robot controller. Back in 2011, this feat was accomplished by Ytai Ben-Tsvi, a Google developer, and coworkers working on their 20% time to bring input/output to an Android device using open source hardware and firmware. The IOIO (pronounced “yoyo”) was born and SparkFun picked it up helping to troubleshoot, design the PCB and deal with production. Subsequently in early 2013, a second version was developed, the IOIO OTG (on the go), and several companies help to produce and distribute it (still using open source and selling for $30). The “on the go” designation is more than just a marketing ploy but refers to the fact that the board can now act as a USB device as well as a USB host (more on this later). To date, there is a robust community of developers with an impressive list of completed projects (as of this publication, 181 pins on Pinterest). In this post, I’d like to cover some of the features and describe the process of developing an Android application. Finally, I’ll share some favorite projects that I discovered.
IOIO connected to Android smartphone

The heart of the IOIO is a PIC24F which has lots of ports to provide I/O pins of various flavors (46 in total) operating at 3.3V logic. About half of these pins can be run in ‘open drain’ configuration allowing 5V logic to be implemented or to be used in a bus. These pins can source or sink maximally 20 mA of current and arent meant to drive motors but only to connect to a driver circuit with power provided by an additional source. Sixteen pins can be used for analog input (0 - 3.3V) with a relatively low sample rate (1KHz). However, the MCU can support 500KHz total for all pins and for the enterprising firmware coder, this could be changed (Ytai expressed an interest to improve sample rate for those wishing to work with audio signals in his blog yet I couldnt find that this has been accomplished). Incidentally, Ytai has done a remarkable job of responding to blog comments and forum questions and this as well as the great design features have contributed to forming the robust community at the ioio-users google group. For more information on the specs of these pins and the board in general, check out the wiki here. So, by connecting these pins to various sensors a whole lot of information can be processed by the Android app.
Self-balancing IOIO robot

How do you develop an Android app to control the IOIO? Well, as I said earlier the OTG aspect of the IOIO OTG means that the board can act as a USB host and the Android phone or tablet as the USB device or the other way around for cases where developers want to control I/O ports with a PC. Those wishing to take advantage of PC control of IOIO should look at the wiki info on that topic here.

Android development requires setting up a Java programming environment as described here and including the appropriate SDK for the device you will program for. This is a weak link for folks just starting to develop in Android as there is no clear hand-holding tutorial going from A to Z and the closest one is found on the SparkFun site here which doesnt detail setting up for the current configuration of the IOIO OTG. This version uses Android Open Accessory in lieu of Android Debug Bridge. See the wiki here to use AOA IOIOLibAccessory instead of the IOIOLib that the SparkFun tutorial recommends. This link also covers setting up your AndroidManifest.xml too. It’s time to move on to writing code for the IOIO once youve got your HelloAndroid app running on your phone or tablet. Uploading the HelloIOIO took me a while to straighten out the various file links, and AOA vs ADB approaches.
IOIO cellular wall printer

What’s been done with the IOIO board that caught my attention? Well, since I mentioned the Android robot blog post, I’d be remiss for not including a link to a simple balancing robot here. Here’s a nice surveillance robot. I’m most excited for art that you can control with the IOIO; here’s a link for an android controlled pixel board. I’m picturing a gigantic mural that android users could connect to and create a communal dynamic art piece. Another project is wearable tech; you could easily use a phone to control the color of your outfit like this color picker. If youve ever wanted to write giant messages on your wall from your phone, this cellular wall printer is a great way to do that using the IOIO. And my personal favorite, the ioio breathalyzer.

That’s it. I hope that you are motivated to check out the great work that Ytai and colleagues have accomplished and that you might even consider incorporating the IOIO into your next project.

**********
Read More..

Rabu, 20 April 2016

Make Your Arduino Go Fast A Modern Go kart

Electric Arduino Go-kart (from Instructables)
As the Hackaday post "Electric Go-Cart Has Arduino Brains" says, most modern vehicles have lots of their functions controlled by computers (or microcontrollers / MCUs). The 2014 go-kart thats the subject of this post is truly a modern vehicle in that respect.

And...the go-kart will make your Arduino go pretty fast. In MPH, not GHz.

I first saw this go-kart mentioned on Google News in the Unocero article "Un Go-Cart eléctrico que usa Arduino," so if your native language is Spanish, you may want to read that version of this tech story. Google News is nice that way, because sometimes I see a non-English article that lets me know about a story Id not have read if it wasnt in English. Google Translate certainly is not perfect or even almost perfect, but it usually gives a usable version of the article, and you can do more Googling based on the Skynet-translated version of a non-native language article.
Steering wheel showing LCD screen (from Instructables)

It appears the source of the story about this Kartduino is the "Electric Arduino Go-kart" Instructable done by a 15-year old from California. The Instructables write-up presents some of the technology used to build the go-kart, but it cautions the reader that its not a complete guide to building the vehicle. Heres a taste of the write-up:
"The drive setup uses a Hobbywing Xerun 150A brushless electronic speed controller to control a Savox BSM5065 450Kv motor. Batteries are 3x zippy lithium polymer - 5 cells, 5000mah. The motor has two large fans I pulled out of an old computer for cooling, mounted right over the motor. The chain drive is a 1:10 overall ratio, using a 15 tooth on the motor chained to a 30 tooth on the jackshaft, and a 9 tooth from the jackshaft to a 45 tooth on the wheel. The tires are 10" diameter so at 20 volts the top speed is around 30 mph. The ESC is controlled via PWM from the arduino. A throttle potentiometer on the steering wheel controls this. Constant current is around 40-50A, and the batteries last around 30 minutes with an average speed of 10-15mph. It requires a small push to get started (really, the motor just has to be rotating) and accelerates extremely fast...This uses a sensorless brushless motor. They are not capable of starting under load. It may need a quick push before it can start. Dont try to start them under load. I already had one motor burn out because it stalled and the current burnt the coils insulation. Sensored motors overcome this problem."
Im sure if the Humboldt Microcontrollers Group ever wanted to build a similar kartduino, Ed and others in the group would have plenty of ideas and knowledge on how to improve the design, with sensored motors or an alternate solution to the sensorless brushless motors that burned out on the design shown in the Instructables.
Go-karts wooden electronics control box (from Instructables)

With regards to the MCU in this zippy little go-kart, the Hackaday post covers the different parts of the vehicle integrated with the Arduino.
"In addition to the throttle control, the Arduino is also responsible for other operational aspects of the vehicle. There are a bunch of LED lights that serve as headlights, tail lights, turn signals, brake lights and even one for a backup light. You may be wondering why an Arduino should be used to control something as simple as brake or headlights. [InverseCube] has programmed in some logic in the code that keeps the break lights on if the ESC brake function is enabled, if the throttle is below neutral or if the ESC enable switch is off. The headlights have 3 brightnesses, all controlled via PWM signal provided by the microcontroller. There is also an LCD display mounted to the center of the steering wheel. This too is controlled by the Arduino and displays the throttle value, status of the lights and the voltage of the battery."
An interesting alternative kartduino I ran across whilst doing research for this post is the
LOLrioKart (by MIT student)
LOLrioKart (see picture at left). This slightly-strange vehicle was created from a shopping cart by a Massachusetts Institute of Technology student. Might be handy for going on a quick trip to Wildberries or the Co-op for groceries.

Speaking of modern vehicles and the increasingly important roles played by MCUs in vehicles, maybe Ford, another vehicle manufacturer, a microcontroller manufacturer or an electronics distributor will in the future want to sponsor a Humboldt Microcontrollers Group project to design and build a modified version of Steve Salzmans vehicle, with upgrades that allow it to parallel park itself as well as generate and track all sorts of vehicle operation data. That will be a fun project!

**********
Read More..