Learn how to use the littleBits Bluetooth module with a Raspberry Pi Zero WH to help you with your IoT projects!

Small colorful electronic modules called littleBits allow a variety of gadgets and devices — like wearables, robots, interactive remote controllers, and physical games — to be created by makers, educators, and hobbyists.

littleBits has the capability to wirelessly interact with the Raspberry Pi Zero W thereby allowing IoT devices to be built. This tutorial will show you how to build a basic wireless controller. To get started, you will need a few off the shelf electronic components and a littleBits Bluetooth Low Energy (BLE) module to control a Pi Zero W.

Required Hardware

Transistor Relay Driver Circuit

To control the Pi Zero W, an electrical interface circuit is required. Traditionally, controlling a Pi Zero to generate text on the screen or to operate a LED a simple electric switch is used.

Although using an electric switch is an effective method to operate a Pi Zero, this electrical approach lacks the ability for wireless operation and control. Luckily, another method to operate the Pi Zero and allow wireless control is possible with a transistor relay driver circuit.

A transistor relay driver allows control of high current circuits using an external switching contact. Figure 1a illustrates a typical transistor relay driver circuit. As shown in Figure 1b, closing the electric switch will allow the transistor (Q1) to turn on.

LITTLEBITS_BLUETOOTH_DW_MP_image1.jpg

Figure 1a. A typical transistor relay driver circuit. The electromechanical relay’s contacts are open thereby turning off the DC motor

LITTLEBITS_BLUETOOTH_DW_MP_image4.jpg

Figure 1b. The electromechanical relay’s contacts are closed allowing the dc motor to turn on

With the transistor turned on, the electromechanical relay’s coil is electrically energized. This energized electromechanical relay closes its contacts using a magnetic field. The electromechanical relay’s contact provides a control signal to the appropriate GPIO of the Pi Zero W.

To show another perspective of a transistor relay driver circuit, a TinkerCAD model illustrates the operation of the electromechanical relay. Figure 2a demonstrates an open relay contact displayed by the ohmmeter’s infinite resistance reading.

LITTLEBITS_BLUETOOTH_DW_MP_image11.jpg

Figure 2a. The ohmmeter’s reading displaying an open electromechanical relay contact

Pressing the tactile switch energizes the electromechanical relay’s coil switching the contacts closed. The ohmmeter displays a continuity value of zero ohms.

LITTLEBITS_BLUETOOTH_DW_MP_image9.jpg

Figure 2b. The ohmmeter’s reading displaying a closed electromechanical relay contact

With a good understanding of the operation of a transistor relay driver, the next step is wiring the transistor relay driver to the Pi Zero W.

Connecting the Pi Zero W to the littleBits module

The final construction of controlling a Pi Zero W with a littleBits module is the wiring of the transistor relay driver circuit to the small SBC. Figure 3 shows the block diagram of the wireless interface to operate a Pi Zero W. The tactile switch is used to test the transistor relay driver circuit prior to wirelessly controlling the Pi Zero W with a littleBits BLE bit and mobile device.

LITTLEBITS_BLUETOOTH_DW_MP_image10.jpg

Figure 3. The system block diagram of the littleBits BLE controller

Use the electrical wiring diagram shown in Figure 4 to build the littleBits BLE controller. The placement of the electronic components should be as close to the wiring diagram as possible. To assist you in the wiring of the transistor relay driver circuit, an electrical pinout of the Pi Zero W is provided in Figure 5.

LITTLEBITS_BLUETOOTH_DW_MP_image5.jpg

Figure 4. The electrical wiring diagram of the littleBits BLE controller

LITTLEBITS_BLUETOOTH_DW_MP_image8.jpg

Figure 5. Pi Zero W GPIO Pinout

With the transistor relay driver circuit wired and tested on the solderless breadboard, you will build the code using EduBlocks. The basic code for testing littleBits BLE control interface is shown in Figure 6.

LITTLEBITS_BLUETOOTH_DW_MP_image2.jpg

Figure 6. The EduBlocks blockly code for testing the littleBits BLE controller

You can also code the software in the Python programming language as shown in Figure 7.

LITTLEBITS_BLUETOOTH_DW_MP_image7.jpg

Figure 7. The equivalent Python code for the littleBits BLE controller

littleBits Gizmos and Gadgets App

To operate the BLE controller you will need the littleBits’ Gizmos and Gadgets app installed on an iOS or Android mobile device. The mobile device app allows a variety of controls such as a slider or button to operate the Pi Zero W. Also, the mobile device’s accelerometer by way of a shake motion can activate the Pi Zero W.

LITTLEBITS_BLUETOOTH_DW_MP_image6.jpg

Figure 8. The Gizmos and Gadget app is compatible with iOS and Android mobile devices

After you have installed the littleBits app on your mobile device, power the BLE controller interface with a 9V battery. Open Gizmos and Gadgets and pair the mobile device by selecting the wBLE icon. Select the button control and touch it with your finger. You should see the BLE message displayed on your HDMI monitor screen. Releasing the button will display the Waiting BLE message

LITTLEBITS_BLUETOOTH_DW_MP_image3.jpg

Figure 9. Pressing the Gizmos and Gadgets button control displays the BLE message on a HDMI monitor

You now have a wireless controller to explore the world of IoT. There is a multitude of awesome devices you can operate with your BLE controller. Happy IoT exploring!

Don Wilcher
Don is an educator, author, and EE who's worked on a wide array of robotics and controls systems in his career.