mirror of
https://github.com/s00500/SimpleExpressions
synced 2024-11-21 18:00:55 +00:00
CLEANUP and adding Pirates
This commit is contained in:
parent
18e9c87d8e
commit
ad855f6a97
@ -22,13 +22,6 @@ void SimpleExpressionsClass::init(int aMouthPin, int aBuzzerPin) {
|
|||||||
//-- MOUTHS ----------------------------------------//
|
//-- MOUTHS ----------------------------------------//
|
||||||
///////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
/*
|
|
||||||
void SimpleExpressionsClass::putAnimationMouth(int aniMouth, int index){
|
|
||||||
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
void SimpleExpressionsClass::writeMouth(char mouthName[], int r, int g, int b) {
|
void SimpleExpressionsClass::writeMouth(char mouthName[], int r, int g, int b) {
|
||||||
int number = -1;
|
int number = -1;
|
||||||
for(int i = 0; i < frameCount; i++){
|
for(int i = 0; i < frameCount; i++){
|
||||||
@ -268,6 +261,14 @@ void SimpleExpressionsClass::playSound(int soundName){
|
|||||||
bendTones(4000, 3000, 1.02, 2, 20);
|
bendTones(4000, 3000, 1.02, 2, 20);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PIRATES:
|
||||||
|
// This is funny but very experimental and probably take long haha =P
|
||||||
|
for (int i = 0; i < 203; i++) { //203 is the total number of music notes in the song
|
||||||
|
int wait = duration[i] * songspeed;
|
||||||
|
_tone( notes[i], wait, 0); //tone(pin,frequency,duration)
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,9 +14,10 @@
|
|||||||
class SimpleExpressionsClass
|
class SimpleExpressionsClass
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
// General
|
||||||
void init(int mouthPin, int buzzerPin);
|
void init(int mouthPin, int buzzerPin);
|
||||||
|
|
||||||
|
// Mouths
|
||||||
void printMouth(int number, int r, int g, int b);
|
void printMouth(int number, int r, int g, int b);
|
||||||
void writeMouth(char mouthName[], int r, int g, int b);
|
void writeMouth(char mouthName[], int r, int g, int b);
|
||||||
|
|
||||||
@ -28,17 +29,11 @@ class SimpleExpressionsClass
|
|||||||
void writeMouthGeneric(const int mouthArray[7][3]);
|
void writeMouthGeneric(const int mouthArray[7][3]);
|
||||||
void writeMouthGeneric(const bool mouthArray[7], int r, int g, int b);
|
void writeMouthGeneric(const bool mouthArray[7], int r, int g, int b);
|
||||||
|
|
||||||
|
// Sounds
|
||||||
//void putAnimationMouth(int anim, int index);
|
|
||||||
|
|
||||||
//-- Sounds
|
|
||||||
void _tone (float noteFrequency, long noteDuration, int silentDuration);
|
void _tone (float noteFrequency, long noteDuration, int silentDuration);
|
||||||
void bendTones (float initFrequency, float finalFrequency, float prop, long noteDuration, int silentDuration);
|
void bendTones (float initFrequency, float finalFrequency, float prop, long noteDuration, int silentDuration);
|
||||||
void playSound(int soundName);
|
void playSound(int soundName);
|
||||||
|
|
||||||
//-- Gestures
|
|
||||||
//void playGesture(int gesture);
|
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Adafruit_NeoPixel mouth;
|
Adafruit_NeoPixel mouth;
|
||||||
|
112
Sounds.h
112
Sounds.h
@ -129,5 +129,117 @@
|
|||||||
#define S_FART1 16
|
#define S_FART1 16
|
||||||
#define S_FART2 17
|
#define S_FART2 17
|
||||||
#define S_FART3 18
|
#define S_FART3 18
|
||||||
|
#define PIRATES 19
|
||||||
|
|
||||||
|
|
||||||
|
const int songspeed = 1;
|
||||||
|
|
||||||
|
const PROGMEM int notes[] = { //Note of the song, 0 is a rest/pulse
|
||||||
|
NOTE_E4, NOTE_G4, NOTE_A4, NOTE_A4, 0,
|
||||||
|
NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0,
|
||||||
|
NOTE_C5, NOTE_D5, NOTE_B4, NOTE_B4, 0,
|
||||||
|
NOTE_A4, NOTE_G4, NOTE_A4, 0,
|
||||||
|
|
||||||
|
NOTE_E4, NOTE_G4, NOTE_A4, NOTE_A4, 0,
|
||||||
|
NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0,
|
||||||
|
NOTE_C5, NOTE_D5, NOTE_B4, NOTE_B4, 0,
|
||||||
|
NOTE_A4, NOTE_G4, NOTE_A4, 0,
|
||||||
|
|
||||||
|
NOTE_E4, NOTE_G4, NOTE_A4, NOTE_A4, 0,
|
||||||
|
NOTE_A4, NOTE_C5, NOTE_D5, NOTE_D5, 0,
|
||||||
|
NOTE_D5, NOTE_E5, NOTE_F5, NOTE_F5, 0,
|
||||||
|
NOTE_E5, NOTE_D5, NOTE_E5, NOTE_A4, 0,
|
||||||
|
|
||||||
|
NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0,
|
||||||
|
NOTE_D5, NOTE_E5, NOTE_A4, 0,
|
||||||
|
NOTE_A4, NOTE_C5, NOTE_B4, NOTE_B4, 0,
|
||||||
|
NOTE_C5, NOTE_A4, NOTE_B4, 0,
|
||||||
|
|
||||||
|
NOTE_A4, NOTE_A4,
|
||||||
|
//Repeat of first part
|
||||||
|
NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0,
|
||||||
|
NOTE_C5, NOTE_D5, NOTE_B4, NOTE_B4, 0,
|
||||||
|
NOTE_A4, NOTE_G4, NOTE_A4, 0,
|
||||||
|
|
||||||
|
NOTE_E4, NOTE_G4, NOTE_A4, NOTE_A4, 0,
|
||||||
|
NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0,
|
||||||
|
NOTE_C5, NOTE_D5, NOTE_B4, NOTE_B4, 0,
|
||||||
|
NOTE_A4, NOTE_G4, NOTE_A4, 0,
|
||||||
|
|
||||||
|
NOTE_E4, NOTE_G4, NOTE_A4, NOTE_A4, 0,
|
||||||
|
NOTE_A4, NOTE_C5, NOTE_D5, NOTE_D5, 0,
|
||||||
|
NOTE_D5, NOTE_E5, NOTE_F5, NOTE_F5, 0,
|
||||||
|
NOTE_E5, NOTE_D5, NOTE_E5, NOTE_A4, 0,
|
||||||
|
|
||||||
|
NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0,
|
||||||
|
NOTE_D5, NOTE_E5, NOTE_A4, 0,
|
||||||
|
NOTE_A4, NOTE_C5, NOTE_B4, NOTE_B4, 0,
|
||||||
|
NOTE_C5, NOTE_A4, NOTE_B4, 0,
|
||||||
|
//End of Repeat
|
||||||
|
|
||||||
|
NOTE_E5, 0, 0, NOTE_F5, 0, 0,
|
||||||
|
NOTE_E5, NOTE_E5, 0, NOTE_G5, 0, NOTE_E5, NOTE_D5, 0, 0,
|
||||||
|
NOTE_D5, 0, 0, NOTE_C5, 0, 0,
|
||||||
|
NOTE_B4, NOTE_C5, 0, NOTE_B4, 0, NOTE_A4,
|
||||||
|
|
||||||
|
NOTE_E5, 0, 0, NOTE_F5, 0, 0,
|
||||||
|
NOTE_E5, NOTE_E5, 0, NOTE_G5, 0, NOTE_E5, NOTE_D5, 0, 0,
|
||||||
|
NOTE_D5, 0, 0, NOTE_C5, 0, 0,
|
||||||
|
NOTE_B4, NOTE_C5, 0, NOTE_B4, 0, NOTE_A4
|
||||||
|
};
|
||||||
|
//*****************************************
|
||||||
|
const PROGMEM int duration[] = { //duration of each note (in ms) Quarter Note is set to 250 ms
|
||||||
|
125, 125, 250, 125, 125,
|
||||||
|
125, 125, 250, 125, 125,
|
||||||
|
125, 125, 250, 125, 125,
|
||||||
|
125, 125, 375, 125,
|
||||||
|
|
||||||
|
125, 125, 250, 125, 125,
|
||||||
|
125, 125, 250, 125, 125,
|
||||||
|
125, 125, 250, 125, 125,
|
||||||
|
125, 125, 375, 125,
|
||||||
|
|
||||||
|
125, 125, 250, 125, 125,
|
||||||
|
125, 125, 250, 125, 125,
|
||||||
|
125, 125, 250, 125, 125,
|
||||||
|
125, 125, 125, 250, 125,
|
||||||
|
|
||||||
|
125, 125, 250, 125, 125,
|
||||||
|
250, 125, 250, 125,
|
||||||
|
125, 125, 250, 125, 125,
|
||||||
|
125, 125, 375, 375,
|
||||||
|
|
||||||
|
250, 125,
|
||||||
|
//Rpeat of First Part
|
||||||
|
125, 125, 250, 125, 125,
|
||||||
|
125, 125, 250, 125, 125,
|
||||||
|
125, 125, 375, 125,
|
||||||
|
|
||||||
|
125, 125, 250, 125, 125,
|
||||||
|
125, 125, 250, 125, 125,
|
||||||
|
125, 125, 250, 125, 125,
|
||||||
|
125, 125, 375, 125,
|
||||||
|
|
||||||
|
125, 125, 250, 125, 125,
|
||||||
|
125, 125, 250, 125, 125,
|
||||||
|
125, 125, 250, 125, 125,
|
||||||
|
125, 125, 125, 250, 125,
|
||||||
|
|
||||||
|
125, 125, 250, 125, 125,
|
||||||
|
250, 125, 250, 125,
|
||||||
|
125, 125, 250, 125, 125,
|
||||||
|
125, 125, 375, 375,
|
||||||
|
//End of Repeat
|
||||||
|
|
||||||
|
250, 125, 375, 250, 125, 375,
|
||||||
|
125, 125, 125, 125, 125, 125, 125, 125, 375,
|
||||||
|
250, 125, 375, 250, 125, 375,
|
||||||
|
125, 125, 125, 125, 125, 500,
|
||||||
|
|
||||||
|
250, 125, 375, 250, 125, 375,
|
||||||
|
125, 125, 125, 125, 125, 125, 125, 125, 375,
|
||||||
|
250, 125, 375, 250, 125, 375,
|
||||||
|
125, 125, 125, 125, 125, 500
|
||||||
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,28 +1,21 @@
|
|||||||
#include <SimpleExpressions.h>
|
#include <SimpleExpressions.h>
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
// put your setup code here, to run once:
|
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
delay(2000);
|
delay(2000);
|
||||||
SimpleExpressions.init(13, 17);
|
SimpleExpressions.init(13, 17);
|
||||||
|
|
||||||
SimpleExpressions.clearMouth();
|
SimpleExpressions.clearMouth();
|
||||||
|
|
||||||
for (int i = 0; i < 18; i++) {
|
for (int i = 0; i < 18; i++) {
|
||||||
Serial.println(i);
|
Serial.println(i);
|
||||||
SimpleExpressions.printMouth(i, 30, 0, 0);
|
SimpleExpressions.printMouth(i, 30, 0, 0);
|
||||||
SimpleExpressions.playSound(i);
|
SimpleExpressions.playSound(i);
|
||||||
|
|
||||||
delay(1000);
|
delay(1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
// for (int i = 0; i < 18; i++) {
|
|
||||||
SimpleExpressions.writeMouth("cross", 30, 0, 0);
|
SimpleExpressions.writeMouth("cross", 30, 0, 0);
|
||||||
//Serial.println(i);
|
|
||||||
delay(1000);
|
delay(1000);
|
||||||
SimpleExpressions.writeMouth("hook", 0, 30, 0);
|
SimpleExpressions.writeMouth("hook", 0, 30, 0);
|
||||||
delay(1000);
|
delay(1000);
|
||||||
@ -30,5 +23,4 @@ void loop() {
|
|||||||
delay(1000);
|
delay(1000);
|
||||||
SimpleExpressions.writeMouth("rightarrow", 0, 15, 30);
|
SimpleExpressions.writeMouth("rightarrow", 0, 15, 30);
|
||||||
delay(1000);
|
delay(1000);
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
|
41
keywords.txt
41
keywords.txt
@ -1,5 +1,5 @@
|
|||||||
#######################################
|
#######################################
|
||||||
# Syntax Coloring Map For ExampleLibrary
|
# Syntax Coloring Map For SimpleExpressions
|
||||||
#######################################
|
#######################################
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
@ -25,22 +25,23 @@ _tone KEYWORD2
|
|||||||
# Constants (LITERAL1)
|
# Constants (LITERAL1)
|
||||||
#######################################
|
#######################################
|
||||||
|
|
||||||
S_CONNECTION
|
S_CONNECTION LITERAL1
|
||||||
S_DISCONNECTION
|
S_DISCONNECTION LITERAL1
|
||||||
S_BUTTON_PUSHED
|
S_BUTTON_PUSHED LITERAL1
|
||||||
S_MODE1
|
S_MODE1 LITERAL1
|
||||||
S_MODE2
|
S_MODE2 LITERAL1
|
||||||
S_MODE3
|
S_MODE3 LITERAL1
|
||||||
S_SURPRISE
|
S_SURPRISE LITERAL1
|
||||||
S_OHOOH
|
S_OHOOH LITERAL1
|
||||||
S_OHOOH2
|
S_OHOOH2 LITERAL1
|
||||||
S_CUDDLY
|
S_CUDDLY LITERAL1
|
||||||
S_SLEEPING
|
S_SLEEPING LITERAL1
|
||||||
S_HAPPY
|
S_HAPPY LITERAL1
|
||||||
S_SUPER_HAPPY
|
S_SUPER_HAPPY LITERAL1
|
||||||
S_HAPPY_SHORT
|
S_HAPPY_SHORT LITERAL1
|
||||||
S_SAD
|
S_SAD LITERAL1
|
||||||
S_CONFUSED
|
S_CONFUSED LITERAL1
|
||||||
S_FART1
|
S_FART1 LITERAL1
|
||||||
S_FART2
|
S_FART2 LITERAL1
|
||||||
S_FART3
|
S_FART3 LITERAL1
|
||||||
|
PIRATES LITERAL1
|
||||||
|
16
library.json
16
library.json
@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "SimpleExpressions",
|
|
||||||
"keywords": "Expressions, esp32, esp8266, arduino, avr, robot, cute, ws2812, leds, emotions, sounds, buzzer, beeper",
|
|
||||||
"description": "Make your robots cute and noisy",
|
|
||||||
"repository":
|
|
||||||
{
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/s00500/SimpleExpressions.git"
|
|
||||||
},
|
|
||||||
"frameworks": "arduino",
|
|
||||||
"platforms":
|
|
||||||
[
|
|
||||||
"espressif",
|
|
||||||
"arduino"
|
|
||||||
]
|
|
||||||
}
|
|
@ -18,7 +18,7 @@ Blockly.Blocks['show_mouth'] = {
|
|||||||
|
|
||||||
Blockly.Arduino['show_mouth'] = function(block) {
|
Blockly.Arduino['show_mouth'] = function(block) {
|
||||||
var input_color = Blockly.Arduino.valueToCode(block, 'Color', Blockly.Arduino.ORDER_ATOMIC);
|
var input_color = Blockly.Arduino.valueToCode(block, 'Color', Blockly.Arduino.ORDER_ATOMIC);
|
||||||
var code='SimpleExpressions.showMouth("+'mouth_name'+", '+color+')';
|
var code='SimpleExpressions.showMouth("'+'mouth_name'+'", ' + color + ')' ;
|
||||||
code+= '\n';
|
code+= '\n';
|
||||||
return code;
|
return code;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user