mirror of
				https://github.com/s00500/SimpleExpressions
				synced 2025-11-03 17:53:23 +00:00 
			
		
		
		
	Initial Commit
This commit is contained in:
		
							
								
								
									
										85
									
								
								Shapes.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										85
									
								
								Shapes.h
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,85 @@
 | 
				
			|||||||
 | 
					#ifndef Shapes_h
 | 
				
			||||||
 | 
					#define Shapes_h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//***********************************************************************************
 | 
				
			||||||
 | 
					//*********************************MOUTHS DEFINES************************************
 | 
				
			||||||
 | 
					//***********************************************************************************
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define zero_code                  0b00001100010010010010010010001100
 | 
				
			||||||
 | 
					#define one_code                   0b00000100001100000100000100001110
 | 
				
			||||||
 | 
					#define two_code                   0b00001100010010000100001000011110
 | 
				
			||||||
 | 
					#define three_code                 0b00001100010010000100010010001100
 | 
				
			||||||
 | 
					#define four_code                  0b00010010010010011110000010000010
 | 
				
			||||||
 | 
					#define five_code                  0b00011110010000011100000010011100
 | 
				
			||||||
 | 
					#define six_code                   0b00000100001000011100010010001100
 | 
				
			||||||
 | 
					#define seven_code                 0b00011110000010000100001000010000
 | 
				
			||||||
 | 
					#define eight_code                 0b00001100010010001100010010001100
 | 
				
			||||||
 | 
					#define nine_code                  0b00001100010010001110000010001110
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define smile_code                 0b00000000100001010010001100000000
 | 
				
			||||||
 | 
					#define happyOpen_code        	   0b00000000111111010010001100000000
 | 
				
			||||||
 | 
					#define happyClosed_code		   0b00000000111111011110000000000000
 | 
				
			||||||
 | 
					#define heart_code                 0b00010010101101100001010010001100
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define bigSurprise_code           0b00001100010010100001010010001100
 | 
				
			||||||
 | 
					#define smallSurprise_code         0b00000000000000001100001100000000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define tongueOut_code             0b00111111001001001001000110000000
 | 
				
			||||||
 | 
					#define vamp1_code                 0b00111111101101101101010010000000
 | 
				
			||||||
 | 
					#define vamp2_code                 0b00111111101101010010000000000000
 | 
				
			||||||
 | 
					#define lineMouth_code             0b00000000000000111111000000000000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define confused_code              0b00000000001000010101100010000000
 | 
				
			||||||
 | 
					#define diagonal_code         	   0b00100000010000001000000100000010
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define sad_code             	   0b00000000001100010010100001000000
 | 
				
			||||||
 | 
					#define sadOpen_code 		       0b00000000001100010010111111000000
 | 
				
			||||||
 | 
					#define sadClosed_code   		   0b00000000001100011110110011000000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define okMouth_code               0b00000001000010010100001000000000
 | 
				
			||||||
 | 
					#define xMouth_code                0b00100001010010001100010010100001
 | 
				
			||||||
 | 
					#define interrogation_code         0b00001100010010000100000100000100
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define thunder_code               0b00000100001000011100001000010000
 | 
				
			||||||
 | 
					#define culito_code                0b00000000100001101101010010000000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define angry_code                 0b00000000011110100001100001000000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//Mouths sorted by numbers, and after, by happy to sad mouths
 | 
				
			||||||
 | 
					#define zero 				0
 | 
				
			||||||
 | 
					#define one  				1
 | 
				
			||||||
 | 
					#define two     			2
 | 
				
			||||||
 | 
					#define three               3
 | 
				
			||||||
 | 
					#define four                4
 | 
				
			||||||
 | 
					#define five                5
 | 
				
			||||||
 | 
					#define six                 6
 | 
				
			||||||
 | 
					#define seven               7
 | 
				
			||||||
 | 
					#define eight               8
 | 
				
			||||||
 | 
					#define nine   				9
 | 
				
			||||||
 | 
					#define smile               10
 | 
				
			||||||
 | 
					#define happyOpen      		11
 | 
				
			||||||
 | 
					#define happyClosed 	    12
 | 
				
			||||||
 | 
					#define heart      			13
 | 
				
			||||||
 | 
					#define bigSurprise         14
 | 
				
			||||||
 | 
					#define smallSurprise 		15
 | 
				
			||||||
 | 
					#define tongueOut 			16
 | 
				
			||||||
 | 
					#define vamp1               17
 | 
				
			||||||
 | 
					#define vamp2               18
 | 
				
			||||||
 | 
					#define lineMouth        	19
 | 
				
			||||||
 | 
					#define confused            20
 | 
				
			||||||
 | 
					#define diagonal       		21
 | 
				
			||||||
 | 
					#define sad         		22
 | 
				
			||||||
 | 
					#define sadOpen 	        23
 | 
				
			||||||
 | 
					#define sadClosed 		  	24
 | 
				
			||||||
 | 
					#define okMouth             25
 | 
				
			||||||
 | 
					#define xMouth              26
 | 
				
			||||||
 | 
					#define interrogation       27
 | 
				
			||||||
 | 
					#define thunder		       	28
 | 
				
			||||||
 | 
					#define culito       		29
 | 
				
			||||||
 | 
					#define angry 				30
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										261
									
								
								SimpleExpressions.cpp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										261
									
								
								SimpleExpressions.cpp
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,261 @@
 | 
				
			|||||||
 | 
					#include "Arduino.h"
 | 
				
			||||||
 | 
					#include "SimpleExpressions.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void SimpleExpressions::init(int mouthPin, int buzzerPin) {
 | 
				
			||||||
 | 
					  mouth = Adafruit_NeoPixel(7, mouthPin, NEO_GRB + NEO_KHZ800);
 | 
				
			||||||
 | 
					  pinBuzzer = buzzerPin;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  mouth.begin();
 | 
				
			||||||
 | 
					  mouth.show();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					///////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					//-- MOUTHS & ANIMATIONS ----------------------------------------//
 | 
				
			||||||
 | 
					///////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					unsigned long int SimpleExpressions::getMouthShape(int number){
 | 
				
			||||||
 | 
					  unsigned long int types []={zero_code,one_code,two_code,three_code,four_code,five_code,six_code,seven_code,eight_code,
 | 
				
			||||||
 | 
					  nine_code,smile_code,happyOpen_code,happyClosed_code,heart_code,bigSurprise_code,smallSurprise_code,tongueOut_code,
 | 
				
			||||||
 | 
					  vamp1_code,vamp2_code,lineMouth_code,confused_code,diagonal_code,sad_code,sadOpen_code,sadClosed_code,
 | 
				
			||||||
 | 
					  okMouth_code, xMouth_code,interrogation_code,thunder_code,culito_code,angry_code};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return types[number];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					unsigned long int SimpleExpressions::getAnimShape(int anim, int index){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  unsigned long int littleUuh_code[]={
 | 
				
			||||||
 | 
					     0b00000000000000001100001100000000,
 | 
				
			||||||
 | 
					     0b00000000000000000110000110000000,
 | 
				
			||||||
 | 
					     0b00000000000000000011000011000000,
 | 
				
			||||||
 | 
					     0b00000000000000000110000110000000,
 | 
				
			||||||
 | 
					     0b00000000000000001100001100000000,
 | 
				
			||||||
 | 
					     0b00000000000000011000011000000000,
 | 
				
			||||||
 | 
					     0b00000000000000110000110000000000,
 | 
				
			||||||
 | 
					     0b00000000000000011000011000000000
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  unsigned long int dreamMouth_code[]={
 | 
				
			||||||
 | 
					     0b00000000000000000000110000110000,
 | 
				
			||||||
 | 
					     0b00000000000000010000101000010000,
 | 
				
			||||||
 | 
					     0b00000000011000100100100100011000,
 | 
				
			||||||
 | 
					     0b00000000000000010000101000010000
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  unsigned long int adivinawi_code[]={
 | 
				
			||||||
 | 
					     0b00100001000000000000000000100001,
 | 
				
			||||||
 | 
					     0b00010010100001000000100001010010,
 | 
				
			||||||
 | 
					     0b00001100010010100001010010001100,
 | 
				
			||||||
 | 
					     0b00000000001100010010001100000000,
 | 
				
			||||||
 | 
					     0b00000000000000001100000000000000,
 | 
				
			||||||
 | 
					     0b00000000000000000000000000000000
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  unsigned long int wave_code[]={
 | 
				
			||||||
 | 
					     0b00001100010010100001000000000000,
 | 
				
			||||||
 | 
					     0b00000110001001010000100000000000,
 | 
				
			||||||
 | 
					     0b00000011000100001000010000100000,
 | 
				
			||||||
 | 
					     0b00000001000010000100001000110000,
 | 
				
			||||||
 | 
					     0b00000000000001000010100100011000,
 | 
				
			||||||
 | 
					     0b00000000000000100001010010001100,
 | 
				
			||||||
 | 
					     0b00000000100000010000001001000110,
 | 
				
			||||||
 | 
					     0b00100000010000001000000100000011,
 | 
				
			||||||
 | 
					     0b00110000001000000100000010000001,
 | 
				
			||||||
 | 
					     0b00011000100100000010000001000000
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  switch  (anim){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case littleUuh:
 | 
				
			||||||
 | 
					        return littleUuh_code[index];
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					    case dreamMouth:
 | 
				
			||||||
 | 
					        return dreamMouth_code[index];
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					    case adivinawi:
 | 
				
			||||||
 | 
					        return adivinawi_code[index];
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					    case wave:
 | 
				
			||||||
 | 
					        return wave_code[index];
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void SimpleExpressions::putAnimationMouth(unsigned long int aniMouth, int index){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      ledmatrix.writeFull(getAnimShape(aniMouth,index));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void SimpleExpressions::putMouth(unsigned long int mouth, bool predefined){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (predefined){
 | 
				
			||||||
 | 
					    ledmatrix.writeFull(getMouthShape(mouth));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  else{
 | 
				
			||||||
 | 
					    ledmatrix.writeFull(mouth);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void SimpleExpressions::clearMouth(){
 | 
				
			||||||
 | 
					  ledmatrix.clearMatrix();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					///////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					//-- SOUNDS -----------------------------------------------------//
 | 
				
			||||||
 | 
					///////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void SimpleExpressions::_tone (float noteFrequency, long noteDuration, int silentDuration){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // tone(10,261,500);
 | 
				
			||||||
 | 
					    // delay(500);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      if(silentDuration==0){silentDuration=1;}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      tone(SimpleExpressions::pinBuzzer, noteFrequency, noteDuration);
 | 
				
			||||||
 | 
					      delay(noteDuration);       //milliseconds to microseconds
 | 
				
			||||||
 | 
					      //noTone(PIN_Buzzer);
 | 
				
			||||||
 | 
					      delay(silentDuration);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void SimpleE::bendTones (float initFrequency, float finalFrequency, float prop, long noteDuration, int silentDuration){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //Examples:
 | 
				
			||||||
 | 
					  //  bendTones (880, 2093, 1.02, 18, 1);
 | 
				
			||||||
 | 
					  //  bendTones (note_A5, note_C7, 1.02, 18, 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if(silentDuration==0){silentDuration=1;}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if(initFrequency < finalFrequency)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					      for (int i=initFrequency; i<finalFrequency; i=i*prop) {
 | 
				
			||||||
 | 
					          _tone(i, noteDuration, silentDuration);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  } else{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      for (int i=initFrequency; i>finalFrequency; i=i/prop) {
 | 
				
			||||||
 | 
					          _tone(i, noteDuration, silentDuration);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void SimpleExpressions::sing(int songName){
 | 
				
			||||||
 | 
					  switch(songName){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case S_connection:
 | 
				
			||||||
 | 
					      _tone(note_E5,50,30);
 | 
				
			||||||
 | 
					      _tone(note_E6,55,25);
 | 
				
			||||||
 | 
					      _tone(note_A6,60,10);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case S_disconnection:
 | 
				
			||||||
 | 
					      _tone(note_E5,50,30);
 | 
				
			||||||
 | 
					      _tone(note_A6,55,25);
 | 
				
			||||||
 | 
					      _tone(note_E6,50,10);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case S_buttonPushed:
 | 
				
			||||||
 | 
					      bendTones (note_E6, note_G6, 1.03, 20, 2);
 | 
				
			||||||
 | 
					      delay(30);
 | 
				
			||||||
 | 
					      bendTones (note_E6, note_D7, 1.04, 10, 2);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case S_mode1:
 | 
				
			||||||
 | 
					      bendTones (note_E6, note_A6, 1.02, 30, 10);  //1318.51 to 1760
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case S_mode2:
 | 
				
			||||||
 | 
					      bendTones (note_G6, note_D7, 1.03, 30, 10);  //1567.98 to 2349.32
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case S_mode3:
 | 
				
			||||||
 | 
					      _tone(note_E6,50,100); //D6
 | 
				
			||||||
 | 
					      _tone(note_G6,50,80);  //E6
 | 
				
			||||||
 | 
					      _tone(note_D7,300,0);  //G6
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case S_surprise:
 | 
				
			||||||
 | 
					      bendTones(800, 2150, 1.02, 10, 1);
 | 
				
			||||||
 | 
					      bendTones(2149, 800, 1.03, 7, 1);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case S_OhOoh:
 | 
				
			||||||
 | 
					      bendTones(880, 2000, 1.04, 8, 3); //A5 = 880
 | 
				
			||||||
 | 
					      delay(200);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      for (int i=880; i<2000; i=i*1.04) {
 | 
				
			||||||
 | 
					           _tone(note_B5,5,10);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case S_OhOoh2:
 | 
				
			||||||
 | 
					      bendTones(1880, 3000, 1.03, 8, 3);
 | 
				
			||||||
 | 
					      delay(200);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      for (int i=1880; i<3000; i=i*1.03) {
 | 
				
			||||||
 | 
					          _tone(note_C6,10,10);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case S_cuddly:
 | 
				
			||||||
 | 
					      bendTones(700, 900, 1.03, 16, 4);
 | 
				
			||||||
 | 
					      bendTones(899, 650, 1.01, 18, 7);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case S_sleeping:
 | 
				
			||||||
 | 
					      bendTones(100, 500, 1.04, 10, 10);
 | 
				
			||||||
 | 
					      delay(500);
 | 
				
			||||||
 | 
					      bendTones(400, 100, 1.04, 10, 1);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case S_happy:
 | 
				
			||||||
 | 
					      bendTones(1500, 2500, 1.05, 20, 8);
 | 
				
			||||||
 | 
					      bendTones(2499, 1500, 1.05, 25, 8);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case S_superHappy:
 | 
				
			||||||
 | 
					      bendTones(2000, 6000, 1.05, 8, 3);
 | 
				
			||||||
 | 
					      delay(50);
 | 
				
			||||||
 | 
					      bendTones(5999, 2000, 1.05, 13, 2);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case S_happy_short:
 | 
				
			||||||
 | 
					      bendTones(1500, 2000, 1.05, 15, 8);
 | 
				
			||||||
 | 
					      delay(100);
 | 
				
			||||||
 | 
					      bendTones(1900, 2500, 1.05, 10, 8);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case S_sad:
 | 
				
			||||||
 | 
					      bendTones(880, 669, 1.02, 20, 200);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case S_confused:
 | 
				
			||||||
 | 
					      bendTones(1000, 1700, 1.03, 8, 2);
 | 
				
			||||||
 | 
					      bendTones(1699, 500, 1.04, 8, 3);
 | 
				
			||||||
 | 
					      bendTones(1000, 1700, 1.05, 9, 10);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case S_fart1:
 | 
				
			||||||
 | 
					      bendTones(1600, 3000, 1.02, 2, 15);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case S_fart2:
 | 
				
			||||||
 | 
					      bendTones(2000, 6000, 1.02, 2, 20);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case S_fart3:
 | 
				
			||||||
 | 
					      bendTones(1600, 4000, 1.02, 2, 20);
 | 
				
			||||||
 | 
					      bendTones(4000, 3000, 1.02, 2, 20);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										43
									
								
								SimpleExpressions.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										43
									
								
								SimpleExpressions.h
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,43 @@
 | 
				
			|||||||
 | 
					#ifndef SimpleMouth_h
 | 
				
			||||||
 | 
					#define SimpleMouth_h
 | 
				
			||||||
 | 
					#include <Adafruit_NeoPixel.h>
 | 
				
			||||||
 | 
					#ifdef __AVR__
 | 
				
			||||||
 | 
					  #include <avr/power.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "Shapes.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class SimpleExpressions
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  public:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void init(int mouthPin, int buzzerPin);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void putMouth(unsigned long int mouth, bool predefined = true);
 | 
				
			||||||
 | 
					    void putAnimationMouth(unsigned long int anim, int index);
 | 
				
			||||||
 | 
					    void clearMouth();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //-- Sounds
 | 
				
			||||||
 | 
					    void _tone (float noteFrequency, long noteDuration, int silentDuration);
 | 
				
			||||||
 | 
					    void bendTones (float initFrequency, float finalFrequency, float prop, long noteDuration, int silentDuration);
 | 
				
			||||||
 | 
					    void sing(int songName);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //-- Gestures
 | 
				
			||||||
 | 
					    void playGesture(int gesture);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  private:
 | 
				
			||||||
 | 
					    Adafruit_NeoPixel mouth;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    int pinBuzzer;
 | 
				
			||||||
 | 
					    int pinMouth;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    unsigned long int getMouthShape(int number);
 | 
				
			||||||
 | 
					    unsigned long int getAnimShape(int anim, int index);
 | 
				
			||||||
 | 
					    void _execute(int A[4], int O[4], int T, double phase_diff[4], float steps);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
		Reference in New Issue
	
	Block a user