Joystick pixel painter
Steer a green dot around the matrix with a joystick.
What you need
- TinkerPie V1 board (or the free online simulator)
- USB-C data cable
- Joystick (2 axes)
Wiring
Joystick: VRx → P10, VRy → P11, +5V → 3.3 V, GND → GND.
Step by step
- Open Joystick pixel painter in TinkerPie Studio. It opens as blocks.
- Wire it: Joystick: VRx → P10, VRy → P11, +5V → 3.3 V, GND → GND.
- Press Run to try it in the simulator. Use the sliders and buttons under the board picture to test it.
- Connect TinkerPie with a USB-C cable in Chrome or Edge, press Connect, then Download. Or, with Studio started from the TinkerPie launcher on your computer, open the Arduino C++ tab and press Build & Flash.
- Change something: a colour, a number, a sound. Then run it again.
The code
This is the program the blocks make. The same program runs in the simulator and on the board.
JavaScript
var x, y;
basic.forever(function () {
x = Math.round(math.map(sensors.joystick(Pin.P10), -100, 100, 0, 5));
y = Math.round(math.map(sensors.joystick(Pin.P11), -100, 100, 0, 4));
basic.clearScreen();
led.plot(x, y, Colors.Green);
basic.pause(100);
});Arduino C++ (TinkerPie library)
// Joystick pixel painter
// Arduino C++ made by TinkerPie Studio from the blocks. Board: TinkerPie V1 (ESP32-S3).
// Arduino IDE: install the TinkerPie library (Studio menu > Arduino library), then Tools > Board > ESP32S3 Dev Module,
// USB CDC On Boot: Enabled, Flash Size: 16MB, Partition Scheme: 16M Flash (3MB APP/9.9MB FATFS), PSRAM: OPI PSRAM.
#include <TinkerPie.h>
using namespace tinkerpie;
double x = 0;
double y = 0;
void setup() {
tinkerpie::begin();
basic::forever([]() {
x = round(math::map(sensors::joystick(Pin::P10), -100, 100, 0, 5));
y = round(math::map(sensors::joystick(Pin::P11), -100, 100, 0, 4));
basic::clearScreen();
led::plot(x, y, Colors::Green);
basic::pause(100);
});
}
void loop() {
tinkerpie::loop(); // runs the forever blocks and handles events
}More projects like this
Thirsty plant alarmA soil moisture sensor tells TinkerPie when the plant needs water: a sad face and a beep.Sensor projectsUltrasonic rulerMeasures how far your hand is, in centimetres, with an HC-SR04 sonar.Sensor projectsSmart dustbin lidWave over the bin: a servo opens the lid for two seconds, then closes it.Sensor projectsIntruder alarmA PIR motion sensor sees someone moving: red flashes and a siren.Sensor projectsWeather station on OLEDA DHT11 measures temperature and humidity; an OLED screen shows them with a bar.Sensor projectsRoom climate on an LCDAn AHT20 sensor and a 16 × 2 LCD. The matrix smiles when the room is comfortable.Sensor projects