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.


André Willik Valenti

October 29, 2015


  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

  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