Commands
Command System
A command system is required to send commands to the vocalizer. The following systems are supported:
Kyber Control System — Support coming soon. Mention Human-Cyborg Relations when purchasing and the Kyber team will generously donate $10 to FIRST Robotics.
DIY — Build your own control system. As a starting point, see the C++ command API developed by Alec Muir.
Commands
Commands can be sent over Serial, UART, or I2C. All commands must be wrapped in a container: <...>
To send multiple commands at once, include them within a single container separated by commas: <...,...>
...or chain multiple containers in a single string: <...><...>
Command | Response | Description |
---|---|---|
Stimuli | ||
SH0 | Trigger mild happy vocalization | |
SH1 | Trigger extreme happy vocalization | |
SS0 | Trigger mild sad vocalization | |
SS1 | Trigger extreme sad vocalization | |
SM0 | Trigger mild angry vocalization | |
SM1 | Trigger extreme angry vocalization | |
SC0 | Trigger mild scared vocalization | |
SC1 | Trigger extreme scared vocalization | |
SE | Trigger overload/electrocution vocalization | |
Muse | ||
M1 | Enable muse | |
M0 | Disable muse | |
MT | Toggle muse | |
MM | Trigger single musing | |
MN# | Set minimum gap (seconds) between musings | |
MX# | Set maximum gap (seconds) between musings | |
SD WAV | ||
CA#### | Play WAV file number | |
CB#### | Play WAV file number | |
CA####C#### | Play random WAV file between file number | |
CB####C#### | Play random WAV file between file number | |
Stop | ||
PSV | Stop vocalizer immediately | |
PSG | Stop vocalizer gracefully (will continue to play until next phoneme on which it is gramatically correct to end a sentence) | |
PSA | Stop WAV channel A immediately | |
PSB | Stop WAV channel B immediately | |
Volume | ||
PVV# | Set vocalizer volume | |
PVA# | Set WAV channel A volume | |
PVB# | Set WAV channel B volume | |
Override | ||
OA0 | Disable Canonical mode and enable Improvisational mode (*) | |
OA1 | Enable Canonical mode and disable Improvisational mode (*) | |
O1 | Enable Personality Chip Override (*) | |
O0 | Disable Personality Chip Override (*) | |
OR | Reset all emotions to 0 | |
OH# | Set Happy emotion to | |
OS# | Set Sad emotion to | |
OM# | Set Mad emotion to | |
OC# | Set Scared emotion to | |
Record | --- | |
RRP# | Play from memory slot | |
RRS# | Save to memory slot | |
R0 | Set strict memory playback (*) | |
R1 | Set organic memory playback (*) | |
Query | ||
QEH |
| Returns the Happy emotion as an integer from |
QES |
| Returns the Sad emotion as an integer from |
QEM |
| Returns the Angry emotion as an integer from |
QEC |
| Returns the Scared emotion as an integer from |
QE |
| Returns the value of each emotion as an integer from |
QO |
| Returns |
QM |
| Returns |
QF |
| Returns an integer from |
QT |
| Returns a float representing the total original duration of the currently playing vocalization, or |
QPV |
| Returns |
QPA |
| Returns an integer from |
QPB |
| Returns an integer from |
QVV |
| Returns an integer from |
QVA |
| Returns an integer from |
QVB |
| Returns an integer from |
QD |
| Returns key metrics. Comma separated list with the results of these commands: QEH,QES,QEM,QEC,QO,QM,QF,QT,QPV,QPA,QPB |
(*) = Persistently stored in R2D2Vocalizer.txt
(†) = Persistently stored in Config.txt
Command Examples
<SH1>
— Trigger extreme happy vocalization.
<CA0025>
— Play SD WAV file number 0025 on WAV channel A.
<CB0003C0185>
— Play random SD WAV File between file number 0003 and file number 0185 on WAV channel B.
<QEH>
— Query Happy emotion. Receive: <QEH,12>
<QE>
— Query all emotions. Receive: <QE,4,28,100,68>
Multiple commands can be chained:
<SH1,M1>
— Trigger extreme happy vocalization and enable muse.
<SH1><M1>
— Alternate syntax for same command as above.
<SM0,QM>
— Trigger mild angry vocalization and query muse state. Receive: <QM0>
Last updated