IOIO Board over Bluetooth (ภาษาไทย ด้านล่าง )
IOIO Basic
With a firmware upgrade on the IOIO,
it now supports connecting a standard Bluetooth dongle into its USB jack and is
able to establish its connection to the Android phone wirelessly! This actually
makes IOIO one of the cheapest, simplest and most powerful Bluetooth-enabled
prototyping platforms out there. And some more good news: your application code
stays exactly the same. That's the way it should be as far as I'm concerned.
End-users should care about what they want to do with their hardware for their
project, not about how the heck (or how the hack) to communicate with it. So
you only need to write the application-specific code (the source
code for the application demonstrated above takes less than 30 lines of
Java for the IOIO-related stuff), and it seamlessly works on any kind of
connection and can even switch from one to another while running. I don't know
of any existing platforms that will let you do that so easily and cheaply. The
closest one probably being Amarino. Keep in mind that IOIO is also capable
of USB connectivity to Android of course (ADB or OpenAccessory), giving
superior reliability latency and bandwidth compared to Bluetooth. You do
the comparison.
IOIO Bluetooth Development
Although
I think there is some real kick-ass little revolution here, this post is going
to be more of a story than my usual bunch of technical specs. I'm just in this
kind of mood more than the check-out-this-awesome-stuff mood.
Back when I published my original announcement on IOIO, one of the commenters (Inopia, thanks, man!) cleverly noted that since IOIO is a USB host, using a standard Bluetooth dongle in order to make the connection wireless is just a matter of writing the right firmware. He was right! And I immediately fell in love with the idea and with the challenge it presented. I felt that from all the million features I could develop next, this one will be the real killer. Just imagine: a couple of bucks (cheapest dongle I found is $1.80 including shipping from DealExtreme) and you have yourself a whole new range of possibilities: home automation, R/C toys, and much more.
Back when I published my original announcement on IOIO, one of the commenters (Inopia, thanks, man!) cleverly noted that since IOIO is a USB host, using a standard Bluetooth dongle in order to make the connection wireless is just a matter of writing the right firmware. He was right! And I immediately fell in love with the idea and with the challenge it presented. I felt that from all the million features I could develop next, this one will be the real killer. Just imagine: a couple of bucks (cheapest dongle I found is $1.80 including shipping from DealExtreme) and you have yourself a whole new range of possibilities: home automation, R/C toys, and much more.
Slowly I began to realize some
really cool side-effects that this will have. First, the current inability (or
more precisely, complexity) to use IOIO and debug your Android at the same time
would go away. Second, we're no longer limited to an Android - control IOIO
from any Bluetooth-enabled device: IOIOLib is just a bunch of Java code that
can easily be ported to other platforms (or rewritten if need be). Third, we're
no longer limited to just one IOIO controlled by a single host application.
You get the point. I just had to do it. One
problem: I don't know Jack about Bluetooth. Only know enough to know that it's
definitely doable. That's where the second key actor in this story comes in.
I'm digging the Web for open-source Bluetooth stack implementations. Pretty
soon I come across btstack,
developed by Matthias Ringwald. I also found other options, and at that point,
I was not completely sure which one to choose. So I contact Matthias and I
start checking out the code of several projects, and throw some of them away
for lack of maintenance and others for having Spaghetti code. But btstack
turns out to be just perfect. Easy to port, very clean code, doesn't use
the memory heap (embedded heaven), active maintenance and great discussion and
support forum. Matthias really got it right (at least my idea of getting this
sort of things right). Two nights later (mostly struggling with implementing
the USB driver for the dongle), and I'm able to open an end-to-end connection
from my phone to the IOIO. Then a few weeks of finding these tiny, cruel bugs
and getting everything nicely packaged and documented, etc.
And as I said, not a moment too soon! I got
to Android Open two days after having a working demo. There I met Aaron Weiss
from SparkFun face-to-face for the first time. Aaron is the engineer from
SparkFun's side that worked on IOIO from day one. Meeting him and having him
stand next to me while presenting was really great!
At the conference, I attended a keynote by Massimo Banzi, one of the two founders of Arduino. I really admire his work, especially after having taught a course on Arduino that enabled non-techie designers build the most awesome stuff. Quite a great keynote he gave, and a little later I've had the honor of presenting myself and inviting him to see my demo. And he came, and was so kind and positive and that really meant a lot to me.
At the conference, I attended a keynote by Massimo Banzi, one of the two founders of Arduino. I really admire his work, especially after having taught a course on Arduino that enabled non-techie designers build the most awesome stuff. Quite a great keynote he gave, and a little later I've had the honor of presenting myself and inviting him to see my demo. And he came, and was so kind and positive and that really meant a lot to me.
The moment I came home after the
conference I fell ill for a few days. Totally exhausted. Haven't had a decent
sleep in a few weeks. I took a few days off, and then back to work: a demo is
nice, but I gotta get this thing released. Fortunately, when preparing the demo
I wasn't playing quick 'n' dirty. So I just needed some polish, but no
throw-away code. And finally, I'm happy with it and feel confident enough
releasing it. It's not perfect-perfect, as multi-device support still needs
some care. But it's reliable and definitely useful as-is. I made a video
explaining users how to upgrade their IOIO to the new feature, building on top
of the firmware
upgrade capabilities that I previously enabled. Some have already reported
success.
Links
More information (and the
instructional video) can be found here.
IOIO can be purchased from SparkFun
(about $50) here.
The cheapest ($1.80 incl. shipping)
Bluetooth dongle I found and tested is here.
Questions are happily answered on the ioio-users discussion group.
Questions are happily answered on the ioio-users discussion group.
What's next?
There are several possible directions
I'm considering (your comments welcome):
- Supporting the multi-IOIO use-case properly.
- Supporting WiFi dongle (imagine that!).
- Releasing OpenAccessory support in non-Beta mode (now the ground is properly laid, with new bootloader and connection abstraction layers).
- Adding long overdue features that users requested such as infrared remote control protocol, synchronous parallel I/O, quadrature encoder, PPM output, etc.
ด้วยอัพเกรดเฟิร์มแวร์
กับ IOIO แต่จะสนับสนุนการใช้งานผ่านบลูทูธดองเกิลมาตรฐานในช่องต่อ
USB และสามารถที่จะสร้างการเชื่อมต่อกับโทรศัพท์ Android แบบไร้สาย! ที่ง่ายและมีประสิทธิภาพที่สุด
ในราคาประหยัด การงานใช้ Bluetooth แพลตฟอร์มต้นแบบ
ออกแบบให้ใช้ code โปรแกรมที่สามารถใช้ code
เดิมได้ด้วย ส่วนมากผู้ใช้งานจะกังวลเรื่องการใช้ควบคุมและสื่อสารกับ
Hardware ในงานที่ทำของเขา ส่วนการใช้งานกับ
IOIO Board นั้นง่ายมากเพียงเขียนโค้ดโปรแกรมประยุกต์เฉพาะ (สำหรับแอพลิเคชันดังกล่าวในตัวอย่าง
code ใช้ JAVA code น้อยกว่า 30 บรรทัดในการควบคุม IOIO ) และสามารถเลือกการเชื่อมต่ออัติโนมัติ ได้ทั้งแบบไร้สาย (
Bluetooth )และแบบใช้สาย (แบบเดิม) และยังสามารถเปลี่ยนจากแบบหนึ่งไปยังอีกแบบได้
ในขณะที่ทำงาน ผมไม่ทราบว่าของแพลตฟอร์มใดๆ
ที่มีอยู่ขณะนี้ ที่จะช่วยให้คุณใช้งานได้อย่างง่ายดายและราคาประหยัดแบบนี้ ที่ใกล้เคียงอาจจะเป็น
Amarino ข้อสำคัญ IOIO ยังสามารถเชื่อมต่อ USB กับ Android ในรูปแบบ (ADB หรือ OpenAccessory) ให้ความน่าใช้งานมากขึ้นในการเชื่อมต่อกับ Bluetooth ได้ด้วย คุณลองเปรียบเทียบพิจารณาดู
ถึงแม้ว่าผมจะคิดว่า
สิ่งนี้เป็นการพัฒนาเพียง เล็ก ๆ น้อย ๆ ในข้อความตอนนี้เป็นเรื่องราวมากขึ้นเกี่ยวกับ
รายละเอียดทางเทคนิคที่นอกเหนือจากข้อมูลทั่วไป ผมชอบที่อธิบายแบบนี้มากกว่าใน แบบที่เป็นแง่เทคนิค
ย้อนกลับไปในช่วงที่เผยแพร่ข้อมูล IOIO
Board ผู้แสดงความคิดเห็นคนหนึ่ง (ชื่อ
Inopia ขอบคุณมาก) ได้ตั้งข้อสังเกตว่า
IOIO เป็น USB
Host ดังนั้นจะสามารถใช้ ใช้บลูทูธดองเกิลมาตรฐานเพื่อที่จะทำให้การเชื่อมต่อแบบไร้สายได้ เพียงแค่ทำ
firmware เพิ่มขึ้นมา เขาพูดถูกต้อง!
และผมก็ชอบจริงๆกับความคิดนี้และมีความท้าทายอย่างมาก ผมรู้สึกว่าเราสามารถจะพัฒนาได้เป็นล้านๆ คุณสมบัติแต่ ความคิด Bluetooth
นี้ยอดเยี่ยมที่สุด ลองจินตนาการดูว่า : อุปกรณ์ แค่ 2 ตัว (Bluetooth dongle ที่ถูกที่สุด คือ $ 1.80 รวมค่าจัดส่งจาก
DealExtreme) และ IOIO Board คุณสามารถสร้างการใช้งานได้หลากหลายที่เป็นไปได้
เช่น ควบคุมบ้าน ควบคุมของเล่น R / C และอื่น ๆ อีกมากมาย
Android Developer
http://androiddevelopersthai.blogspot.com/
Android example code
http://androidcodeexample.blogspot.com/
ขออนุญาตฝากลิงค์นะคะ
ตอบลบคาสิโนออนไลน์ ที่ปลอดภัย โอนเงินรวดเร็ว มั่นคง ถ่ายทอดสดจากสถานที่จริง
ภาพ แสง สี เสียง สวยงามมากที่สุดในบรรดาเว็บคาสิโนออนไลน์ ที่นี่เลยค่ะ
https://www.111player.com
The most recent hp smart app for mac to connect printers from HP expects to offer minimal expense per page printing cost with insignificant starting expense, bringing about a serious all-out cost of possession settling on it an optimal decision for home clients.
ตอบลบThank you for sharing this blog. Your blog is very helpful and interesting. I am working Quickbooks accounting software and it is one of the best software as it offers many versions to use. Sometimes users face some error like Quickbooks is not accepting sign in details or credential are not matching with bank's data.This is called Quickbooks error 103 . This error can be solve by Quickbbok tool hub.
ตอบลบhello im robert hood i am a business man i have business of import and export out side in usa virtual bookkeeper
ตอบลบhelps me lots to manage my accounts work...and now i do my work with just a click
A 140 mm fan is a great choice for cooling your computer. It offers more airflow than a 120 mm fan, and can help to keep your system running cooler. There are a few things to consider when choosing a 140 mm fan such as the noise level and the static pressure.
ตอบลบ