Pages

Tampilkan postingan dengan label platforms. Tampilkan semua postingan
Tampilkan postingan dengan label platforms. 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..

Jumat, 15 April 2016

mini Duino And Very Small Arduino Compatible Boards

So I read an article today about a new, very-small, Arduino-compatible MCU development board with a recently launched Kickstarter campaign. Tonights post looks at this new board, called the mini Duino+, and the topic of other compact Arduino-compatible boards.
mini Duino+ and a US quarter

The mini Duino+ Kickstarter webpage introduces the new board this way:
"I started this project to solve a few problems with current small Arduino compatible boards. I wanted to create something that had more features and ability, but yet kept the cost down. This way a full-featured platform could be developed that doesnt break the bank. It could be small and affordable enough to leave in projects, and it needed to be completely open-source...The new advancement in Arduino compatible hardware utilizes the ATmega 1284P AVR, in place of the common 328p that is used in current Arduino hardware. The 1284P is the perfect mix of features, program space, and cost. Cheap enough to be used in almost every project; capable enough to deliver. No matter what youre trying to build, the Mini Duino+ packs the punch to do it and more."
I dont have enough experience with MCUs yet to explain what use cases would be highly well-suited for using mini Duino+. Maybe Ed or Nick or one of the other members of the Humboldt Microcontrollers Group can do that in a future post. But there was a Wired article, "Change of Pace: TinyDuino Microcontroller Is Smaller Than a Quarter," that had a good overview of
TinyDuino
very small Arduino-compatible boards, focusing primarily on the TinyDuino. That article discusses the origin of this teeny dev board.
"TinyDuino is a fully Arduino-compatible hardware platform, complete with expansion shields (add-on boards that have specific sensors or lights, for you non-robot designers). But where an Arduino Uno is around the size of a credit card, the TinyDuino is smaller than a quarter, and its sibling the TinyLily is the size of a dime. The TinyDuino line is designed around three core elements: size, affordability, and expandability. The idea, says Burns, is to open up Arduino to a whole host of applications that simply aren’t possible with the larger board. The seeds of TinyDuino were planted when Burns was working on creating smart sensors. The goal was sensors that would be plug and play, with on-board intelligence that allowed them to handle all the hard stuff, like reading data, calibration, and formatting the output."
The TinyDuino was launched with a Kickstarter in 2012 which raised over 10 times the original funding target of $10,000. The website for TinyDuino has an extensive list of available components for the board, with the board itself going for $20.95, and a basic TinyDuino kit going for $39.95.
Arduino Micro

Other very-small Arduino-compatible boards include, but are not limited to, two official Arduino ones, the Arduino Micro and the Arduino Nano, the SparkFun Pro Micro, the Digispark (for only $8.95) which also launched with a wildly successful Kickstarter campaign, getting over 60 times its original funding goal of $5000, and a whole host of Chinese very-small form factor knockoffs.

Because of limited space on these very small dev boards, they are usually more difficult for beginners to use than an Arduino Uno board. And since these boards are intended to be prototyping boards, you may want to build your prototype on a normal size board like the Uno before reproducing your successful circuit
Digispark development board
design on one of these smaller boards. And at some point youll be able to go straight from prototyping with the Arduino Uno to using the desired MCU on a custom made PCB (printed circuit board), using only the components necessary which will often result in a much smaller board than the Uno.

At one of the upcoming Humboldt Microcontrollers Group meetings, Im going to ask everyone who comes to the meeting to bring smaller MCU development boards they have, and we can discuss the pros and cons and what projects theyve used the small form factor boards on.

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