1
0
mirror of https://github.com/s00500/SimpleExpressions synced 2024-12-22 04:10:49 +00:00

CLEANUP and adding Pirates

This commit is contained in:
Lukas Bachschwell 2017-12-01 12:45:46 +01:00
parent 18e9c87d8e
commit ad855f6a97
7 changed files with 145 additions and 60 deletions

View File

@ -22,13 +22,6 @@ void SimpleExpressionsClass::init(int aMouthPin, int aBuzzerPin) {
//-- MOUTHS ----------------------------------------//
///////////////////////////////////////////////////////////////////
/*
void SimpleExpressionsClass::putAnimationMouth(int aniMouth, int index){
}
*/
void SimpleExpressionsClass::writeMouth(char mouthName[], int r, int g, int b) {
int number = -1;
for(int i = 0; i < frameCount; i++){
@ -268,6 +261,14 @@ void SimpleExpressionsClass::playSound(int soundName){
bendTones(4000, 3000, 1.02, 2, 20);
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;
}
}

View File

@ -14,9 +14,10 @@
class SimpleExpressionsClass
{
public:
// General
void init(int mouthPin, int buzzerPin);
// Mouths
void printMouth(int number, 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 bool mouthArray[7], int r, int g, int b);
//void putAnimationMouth(int anim, int index);
//-- Sounds
// Sounds
void _tone (float noteFrequency, long noteDuration, int silentDuration);
void bendTones (float initFrequency, float finalFrequency, float prop, long noteDuration, int silentDuration);
void playSound(int soundName);
//-- Gestures
//void playGesture(int gesture);
private:
Adafruit_NeoPixel mouth;

112
Sounds.h
View File

@ -129,5 +129,117 @@
#define S_FART1 16
#define S_FART2 17
#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

View File

@ -1,28 +1,21 @@
#include <SimpleExpressions.h>
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
delay(2000);
SimpleExpressions.init(13, 17);
SimpleExpressions.clearMouth();
for (int i = 0; i < 18; i++) {
Serial.println(i);
SimpleExpressions.printMouth(i, 30, 0, 0);
SimpleExpressions.playSound(i);
delay(1000);
}
}
void loop() {
// for (int i = 0; i < 18; i++) {
SimpleExpressions.writeMouth("cross", 30, 0, 0);
//Serial.println(i);
delay(1000);
SimpleExpressions.writeMouth("hook", 0, 30, 0);
delay(1000);
@ -30,5 +23,4 @@ void loop() {
delay(1000);
SimpleExpressions.writeMouth("rightarrow", 0, 15, 30);
delay(1000);
//}
}

View File

@ -1,5 +1,5 @@
#######################################
# Syntax Coloring Map For ExampleLibrary
# Syntax Coloring Map For SimpleExpressions
#######################################
#######################################
@ -25,22 +25,23 @@ _tone KEYWORD2
# Constants (LITERAL1)
#######################################
S_CONNECTION
S_DISCONNECTION
S_BUTTON_PUSHED
S_MODE1
S_MODE2
S_MODE3
S_SURPRISE
S_OHOOH
S_OHOOH2
S_CUDDLY
S_SLEEPING
S_HAPPY
S_SUPER_HAPPY
S_HAPPY_SHORT
S_SAD
S_CONFUSED
S_FART1
S_FART2
S_FART3
S_CONNECTION LITERAL1
S_DISCONNECTION LITERAL1
S_BUTTON_PUSHED LITERAL1
S_MODE1 LITERAL1
S_MODE2 LITERAL1
S_MODE3 LITERAL1
S_SURPRISE LITERAL1
S_OHOOH LITERAL1
S_OHOOH2 LITERAL1
S_CUDDLY LITERAL1
S_SLEEPING LITERAL1
S_HAPPY LITERAL1
S_SUPER_HAPPY LITERAL1
S_HAPPY_SHORT LITERAL1
S_SAD LITERAL1
S_CONFUSED LITERAL1
S_FART1 LITERAL1
S_FART2 LITERAL1
S_FART3 LITERAL1
PIRATES LITERAL1

View File

@ -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"
]
}

View File

@ -18,7 +18,7 @@ Blockly.Blocks['show_mouth'] = {
Blockly.Arduino['show_mouth'] = function(block) {
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';
return code;
};