This is a small CLI tool to run an node-ipc based inter-process-communication service for connecting and controlling Sphero toys via IPC messages. It uses Sphero Connector Core, a tiny wrapper around the unofficial Sphero V2 API for communicating with Sphero toys.
Install Sphero-Connector-IPC via npm:
npm install --save sphero-connector-ipc
Add npm run script to your package.json
:
{
"scripts": {
"sphero-connector-ipc": "sphero-connector-ipc"
}
}
Add the following section to your package.json
:
{
"sphero-connector": {
"type": "ipc"
}
}
Finally, run npm run sphero-connector-ipc
and sphero-connector-ipc will start an ipc service with id sphero-ipc-server
listening for ipc messages.
By default, the ipc services started by sphero-connector-ipc is named sphero-ipc-server
.
You can change the service id in the sphero-connector
section of your package.json as follows:
{
"sphero-connector": {
"type": "ipc",
"serviceId": "my-custom-service-id"
}
}
Note: valid serviceId
values must be strings from 5 to 30 characters.
To auto-connect with a Sphero toy on start, you can specify the toy type and name in your package.json.
{
"sphero-connector": {
"type": "ipc",
"connectOnStart": {
"toyType": "SpheroMini",
"toyName": "SM-0815"
}
}
}
Valid values for toyType
are: SpheroMini
, LightningMcQueen
, R2D2
, R2Q5
, BB9E
.
The toyName
option is currently only supported for toyType: "SpheroMini"
.
connectSpheroMini
connectSpheroMiniWithName
(toyName: string)connectLightningMcQueen
connectR2D2
connectR2Q5
connectBB9E
wake
sleep
setMainLedColor
(hexColor: string)
const ipc = require('node-ipc');
const delay = require('delay');
ipc.config.id = 'my-sphero-ipc-client';
ipc.config.retry = 1500;
ipc.config.silent = true;
ipc.connectTo('sphero-ipc-server', () => {
ipc.of['sphero-ipc-server'].on('connect', async () => {
ipc.of['sphero-ipc-server'].emit('connectSpheroMini');
await delay(10000);
ipc.of['sphero-ipc-server'].emit('setMainLedColor', '#FF0000');
});
});
Please be aware of the licenses of the components used in this project. Everything else that has been developed by the contributions to this project is under MIT License.