mirror of https://github.com/s00500/SimpleExpressions synced 2024-05-30 05:13:29 +00:00
An Arduino Library to make you robots cute and noisy
Go to file
Lukas Bachschwell 419f873313
Merge pull request #4 from per1234/depends
Specify library dependencies in library.properties
2020-01-06 10:44:04 +01:00
docs Adding images to documentation 2017-12-01 13:51:22 +01:00
examples/expressions Cleanup example 2017-12-01 13:51:36 +01:00
img/blocks new file: img/blocks/round_led_strip.svg 2017-12-16 11:44:16 +01:00
lang Merge branch 'master' into master 2017-12-16 20:11:15 +01:00
src Improving ESP32 LED Handeling, versionbump 2018-05-20 18:27:04 +02:00
.gitignore adding ignore 2017-11-21 13:11:50 +01:00
keywords.txt Fixing Keywords seperator 2017-12-01 14:19:17 +01:00
library.properties Specify library dependencies in library.properties 2020-01-06 00:11:18 -08:00
README.md Readme and keywords ready for initial release 2017-12-01 14:12:46 +01:00
simpleExpression_blocks.js modified: lang/SimpleExpressions.json 2017-12-16 11:46:18 +01:00

SimpleExpressions: Make your robots cute and noisy

image of a cute robot

This library simply takes a 7 LED Circle module and a buzzer to do lots of funny things, see for yourself. The reason I made this was that I wanted to have a simple way to make combine mouths and sounds on this funny little Robots

You can buy these little ws2812 circles for a dollar or two at aliexpress and other china marketplaces and they are a really simple way to make some funny output. And a beeper or buzzer is available literally everywhere.

The main parts


Internally the library uses the Adafruit NeoPixel Library, so make sure you have this one installed


The library can be installed manually (by unzipping and copying the files to the "libraries" directory) or using the Arduino Library installer, there is not to much to care about, just make sure the Adafruit NeoPixel Library is also installed.

Supported Platforms

The sound are taken from BQs Zowie. The Library supports all Arduino boards (that are compatible with the NeoPixel Library) and also the ESP8266 and ESP32


Just see the example how everything works together

  • SimpleExpressions.init(ledPin, buzzerPin); Initializes the library with the given pins

  • SimpleExpressions.clearMouth(); Clears the mouth and sets all pixels off

  • SimpleExpressions.printMouth(mouthNumber, red, green, blue); Prints a mouth by its number and using the given color, useful to iterate through all of them (use frameCount or colorFrameCount to determine the maximum number) (use without the colorvalues for multicolor mouths)

  • SimpleExpressions.writeMouth("cross", red, green, blue); Does basically the same but you can select the mouth by its name (use without the colorvalues for multicolor mouths)

  • SimpleExpressions.writeMouthGeneric(moutharray) Advanced: Write a mouth straight from your code with color values fo all of the pixels

  • SimpleExpressions.playSound(SOUND_NUMBER); Plays a sound by its number using the constants you can find below.

  • SimpleExpressions._tone(noteFrequency, noteDuration, silentDuration); Similar to the arduino tone function, but also working on ESP32 (using ledc)

  • SimpleExpressions.bendTones(note1Frequency, note2Frequency, prop, noteDuration, ilentDuration); Similar to the arduino tone function, but also working on ESP32 (using ledc)

Available mouth shapes

single color shapes

  • zeros
  • happySmall
  • happyFull
  • sadSmall
  • sadFull
  • neutral
  • circle
  • center
  • hook
  • upsidedownhook
  • kooh
  • upsidedownkooh
  • cross
  • rect
  • leftarrow
  • rightarrow
  • lefthalf
  • righthalf

multi color shapes

  • colorCircle

Available SOUNDS




  • S_MODE1

  • S_MODE2

  • S_MODE3



  • S_OHOOH2






  • S_SAD


  • S_FART1

  • S_FART2

  • S_FART3

  • PIRATES The complete PIRATES OF THE CARIBBEAN theme (highly experimental, but funny =P)


  • If you have new Ideas for different shapes or multicolor shapes just write them down and create a pull request (Or if you are not familiar with git draw them and post an issue)
  • Calculate frame count from arraysize
  • Example for writeMouthGeneric()
  • Currently I am happy with it, any Ideas? let me know

Buy me a coffee

If you like the library and all my other projects maybe think about buying me a coffee.? I really like coffee. 🙃

another image of a cute robot