Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Bauhinia coronata and nitida: Wii Remote technologies for a sustainable world

Bauhinia coronata and nitida: Wii Remote technologies for a sustainable world

nitida is a portable, easy to use Wii Remote presenter application. coronata is a cross-platform, easy to use Wii Remote library for Java. This presentation describes these technologies and motivates development of sustainable solutions to daily problems.

Both projects are open-source and are located at https://github.com/awvalenti/bauhinia/.

This work was presented at Innovation Day, a special track of Internacional Conference on Management of computacional and collective IntElligence in Digital EcoSystems (MEDES 2015), Caraguatatuba, São Paulo, Brazil.

2a6130f3e7c06d3c5510be8aa1d98b12?s=128

André Willik Valenti

October 29, 2015
Tweet

Transcript

  1. Bauhinia coronata and nitida: Wii Remote technologies for a sustainable

    world Prof. MSc. André Willik Valenti MEDES'15 - Innovation Day - Caraguatatuba-SP (Brazil) Bauhinia coronata and nitida: Wii Remote technologies for a sustainable world by André Willik Valenti is licensed under a Creative Commons Attribution 4.0 International License.
  2. Who am I? • André Willik Valenti • Professor of

    Information Technology at IFSP Campinas • Programmer by formation and vocation • Interested in: ◦ Programming languages ◦ Software design ◦ Object-oriented programming ◦ Usability ◦ Tool development
  3. Agenda • Electronic waste discussion • nitida • coronata •

    Future work • Conclusions
  4. • 20,000,000+ tons of e-waste produced every year (according to

    ifixit.org) • What to do about that? https://commons.wikimedia.org/wiki/File:Electronic_waste.jpg Electronic waste https://commons.wikimedia.org/wiki/File:Guiyu-ewaste.jpg
  5. • The three R's principle: Reduce, Reuse, Recycle! Electronic waste

    https://www.flickr.com/photos/mcrecycles/3548639397
  6. Wii Remote • Main controller for the Nintendo Wii console

    • Commonly known as Wiimote • Bluetooth device • Has buttons, accelerometers and infrared tracking capabilities • Compatible with many Bluetooth adapters
  7. Wii Remote on a computer? • Not something new •

    Many interesting projects out there • Three projects from Johnny Chung Lee: ◦ Tracking Your Fingers with the Wiimote ◦ Low-Cost Multi-point Interactive Whiteboards Using the Wiimote ◦ Head Tracking for Desktop VR Displays using the Wii Remote
  8. Aren't there Wiimote applications already? • Yes: ◦ GlovePIE (Windows)

    ◦ Wiimote Presenter (Windows) ◦ CWiid (Linux)
  9. Then, why bother developing one? • GlovePIE ◦ Targeted at

    the hacking community ◦ Powerful features ◦ Non-intuitive interface ◦ Requires configuration ◦ Requires technical skills ◦ Needs administrative privileges ◦ Only for Windows
  10. Then, why bother developing one? • Wiimote Presenter ◦ More

    intuitive user interface ◦ Works out-of-box ◦ Buttons can be reassigned via GUI ◦ Extra features ◦ Only for Windows
  11. Then, why bother developing one? • CWiid ◦ Collection of

    console programs ◦ Installation and configuration are somewhat complicated ◦ By default, needs administrative privileges to run ◦ Only for Linux
  12. nitida overview • Cross-platform (tested on Windows and Linux) •

    Simple, informative user interface • Small, portable, executable JAR file (< 1MB) • Runs as ordinary user
  13. nitida requirements • Wii Remote • Bluetooth adapter (or a

    computer with built-in Bluetooth) • Java Runtime Environment 1.6+ • On Windows, pair Wii Remote device ◦ GlovePIE and Wiimote Presenter also have this requirement • On Linux, only once, install a system package: ◦ libbluetooth-dev (Ubuntu or derivatives; similar packages on other distributions) ◦ A one-time step requiring sudo That's it!
  14. Why Java? • java.awt.Robot ◦ Very simple class that generates

    keyboard events ◦ Does not need administrative privileges! • Java programs are portable across operating systems • Java is already installed on many computers
  15. Development • Assessment of many Wiimote-related libraries: ◦ wiiuse ◦

    WiiuseJ ◦ BlueCove ◦ wiimote-simple • Result: ◦ No library alone would work well both for Windows and Linux ◦ Decided to develop my own library, leveraged by existing ones
  16. coronata • Cross-platform Java Wiimote library • Easy to use

    • Simple API • Currently supports: ◦ Listening to button pressing ◦ Turning LEDs on ◦ Vibrating the controller
  17. Software architecture

  18. None
  19. Future work • nitida ◦ Improvements in usability ◦ Specific

    key mappings for PowerPoint, LibreOffice Impress, Google Presentations • coronata ◦ Test on Mac OS ◦ Improvements in API ◦ Detect disconnection of Wiimote on Windows ◦ New features: infrared tracking, accelerometer, sounds
  20. Conclusions • nitida is a user-friendly option for people with

    an idle Wiimote at home • coronata is a nice, cross-platform option for Java Wiimote development • Both open-source projects are located at https://github.com/awvalenti/bauhinia
  21. Conclusions • The three R's principle: ◦ Reduce ◦ Reuse

    ◦ Recycle
  22. Conclusions • Before buying something, consider developing it yourself! •

    You might ◦ reduce waste ◦ learn a lot ◦ save money ◦ start a nice new project
  23. Images credits Bauhinia Leaf, by Chong Fat (Own work (Self

    took photo)) [Public domain], via Wikimedia Commons Electronic Waste, by Curtis Palmer [CC BY 2.0], via Wikimedia Commons
  24. Images credits Guiyu e-waste town, by bleahbleahbleah (Own work) [CC

    BY-SA 3.0], via Wikimedia Commons By Celia Lunking / Montgomery Cty Division of Solid Waste Services [CC BY 2.0], via Flickr
  25. Thank you! Prof. MSc. André Willik Valenti (IFSP Campinas) awvalenti@gmail.com

    https://awvalenti.wordpress.com https://github.com/awvalenti