Adding the Pi to Picasso with wireless digital graffiti

It looks like the Nintendo Wii Remote (Wiimote) has become a staple in many maker toolkits! Case in point: with the help of a Raspberry Pi and the cwiid Python library, David Pride turned the popular piece of tech into a giant digital graffiti spraycan.

Raspberry Pi-powered Nintento Wiimote digital art

Using the Wiimote with a Raspberry Pi

While it’s no longer being updated and supported, the cwiid library is still a handy resource for creators who want to integrate the Wiimote with their Raspberry Pi.

Raspberry Pi-powered Nintento Wiimote digital art

Over the years, makers have used the Wiimote to control robots, musical instruments, and skateboards; the accessibility of the library plus the low cost and availability of the remote make using this tool a piece of cake…or pie, in this instance.

Digital graffiti

Using aWiimote, a Wii Sensor Bar, and a large display, David Pride hacked his way to digital artistry wonderment and enabled attendees of the Open University Knowledge Makers event to try their hand at wireless drawing. It’s kinda awesome.

OK, it’s all kinds of awesome. We really like it.

Digital graffiti ingredients

To construct David’s digital graffiti setup, you’ll need:

  • A Raspberry Pi
  • A Nintendo Wii Remote and a Wii Sensor Bar
  • A power supply and DC/DC power converter
  • A large display, e.g. a TV or projector screen
  • A 30mm × 30mm mirror and this 3D-printed holder

Putting it all together

David provides the step-by-step instructions for setting up the Wiimote and Raspberry Pi on his website, including a link to the GitHub repository with the complete project code. The gist of the build process is as follows:

Raspberry Pi-powered Nintento Wiimote digital art

After installing the cwiid library on the Raspberry Pi, David connected the Pi to the Wiimote via Bluetooth. And after some digging into the onboard libraries of the remote itself, he was able to access the infrared technology that lets the remote talk to the Sensor Bar.

Raspberry Pi-powered Nintento Wiimote digital art

The 3D-printed holder with which David augmented the Wiimote lets the user hold the remote upright like a spray can, while the integrated mirror reflects the IR rays so the Sensor Bar can detect them.

Raspberry Pi-powered Nintento Wiimote digital art

The Sensor Bar perceives the movement of the Wiimote, and this data is used to turn the user’s physical actions into works of art on screen. Neat!

If you’ve used the Nintendo Wiimote for your Raspberry Pi projects, let us know. And, speaking of the Wii, has anyone hacked their Balance Board with a Pi?

On a completely unrelated note…

How cool is this?!

6 comments

Avatar

IIRC it’s actually the “sensor bar” that contains the IR LEDs, and the Wiimote that does the sensing?

Pedants’R’Us ;-)

Avatar

You are 100% correct. Bugs the heck out of me when people get it wrong. But it’s Nintendo’s fault for calling it a “sensor bar” emitter or positioning bar would have made more sense

Avatar

I use 3B+ with lastet image, hcitool scan can’it find wii.
Is device issude?

Avatar

What msg do you get if you do the following?..

sudo service bluetooth status

Avatar

i have the same problem and when i run that i get

bluetooth.service – Bluetooth service
Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset
Active: active (running) since Sat 2019-06-22 23:22:57 CDT; 16h ago
Docs: man:bluetoothd(8)
Main PID: 574 (bluetoothd)
Status: “Running”
CGroup: /system.slice/bluetooth.service
└─574 /usr/lib/bluetooth/bluetoothd

Jun 22 23:22:57 Grunts-raspberrypi-3b systemd[1]: Starting Bluetooth service…
Jun 22 23:22:57 Grunts-raspberrypi-3b bluetoothd[574]: Bluetooth daemon 5.43
Jun 22 23:22:57 Grunts-raspberrypi-3b systemd[1]: Started Bluetooth service.
Jun 22 23:22:57 Grunts-raspberrypi-3b bluetoothd[574]: Starting SDP server
Jun 22 23:22:57 Grunts-raspberrypi-3b bluetoothd[574]: Bluetooth management inte
Jun 22 23:22:57 Grunts-raspberrypi-3b bluetoothd[574]: Failed to obtain handles
Jun 22 23:22:57 Grunts-raspberrypi-3b bluetoothd[574]: Sap driver initialization
Jun 22 23:22:57 Grunts-raspberrypi-3b bluetoothd[574]: sap-server: Operation not
Jun 22 23:22:57 Grunts-raspberrypi-3b bluetoothd[574]: Endpoint registered: send
Jun 22 23:22:57 Grunts-raspberrypi-3b bluetoothd[574]: Failed to set privacy: Re
lines 1-19/19 (END)
~

Leave a Comment

Comments are closed