User:Thijshijsijsjss/Pen Plotting Panache/twitchplaysplotter: Difference between revisions
(Add serialport setup code) |
(Add code snippet for receiving messages with tmi.js) |
||
Line 24: | Line 24: | ||
===tmi.js=== | ===tmi.js=== | ||
We use [https://tmijs.com/ tmi.js] for communication with the Twitch chat. | |||
<syntaxhighlight lang=javascript> | |||
const tmi = require('tmi.js'); | |||
const client = new tmi.Client({ | |||
// specify what channel to connect to: | |||
channels: ['twitchplaysplotter'] | |||
}); | |||
client.connect(); | |||
// function for receiving chat messages: | |||
client.on('message', (channel, tags, message, self) => { | |||
// print name of chatter and their message | |||
console.log(`${tags['display-name']}: ${message}`); | |||
}); | |||
</syntaxhighlight> |
Revision as of 11:11, 8 February 2024
twitchplaysplotter is a pen plotter project inspired by TwitchPlaysPokemon in which a pen plotter can be controlled through the chat of a Twitch livestream. This project, worked on by Rosa, Victor and Thijs, was initiated both to experiment with the collaborative and performative nature of plotters, and to facililate participation of pen plotter enthusiasts who were not able to make it to the 2024-02-12 pen plotting party physically.
This page will describe the project, provide some documentation and some imagery.
Setup
Node.js packages
serialport
We use the serialport package to communicate with the serialport the plotter is connected to:
const { SerialPort } = require('serialport')
const port = new SerialPort({
path: '/dev/ttyUSB0',
baudRate: 9600,
})
tmi.js
We use tmi.js for communication with the Twitch chat.
const tmi = require('tmi.js');
const client = new tmi.Client({
// specify what channel to connect to:
channels: ['twitchplaysplotter']
});
client.connect();
// function for receiving chat messages:
client.on('message', (channel, tags, message, self) => {
// print name of chatter and their message
console.log(`${tags['display-name']}: ${message}`);
});