This is the output of the error: (its as much as it will let me put on the forum)
FQBN: adafruit:samd:adafruit_feather_m4
Using board 'adafruit_feather_m4' from platform in folder: C:\Users\User\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.7.13
Using core 'arduino' from platform in folder: C:\Users\User\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.7.13
Detecting libraries used...
C:\Users\User\AppData\Local\Arduino15\packages\adafruit\tools\arm-none-eabi-gcc\9-2019q4/bin/arm-none-eabi-g++ -mcpu=cortex-m4 -mthumb -c -g -Os -Werror=return-type -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -D__SKETCH_NAME__="""sketch_mar31c.ino""" -w -x c++ -E -CC -DF_CPU=120000000L -DARDUINO=10607 -DARDUINO_FEATHER_M4 -DARDUINO_ARCH_SAMD -DARDUINO_SAMD_ADAFRUIT -D__SAMD51J19A__ -DADAFRUIT_FEATHER_M4_EXPRESS -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -DUSB_VID=0x239A -DUSB_PID=0x8022 -DUSBCON -DUSB_CONFIG_POWER=100 -DUSB_MANUFACTURER="Adafruit" -DUSB_PRODUCT="Feather M4 Express" -IC:\Users\User\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.7.13/libraries/Adafruit_TinyUSB_Arduino/src/arduino -DENABLE_CACHE -Os -DVARIANT_QSPI_BAUD_DEFAULT=50000000 -D__SAMD51J19A__ -DADAFRUIT_FEATHER_M4_EXPRESS -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -DUSB_VID=0x239A -DUSB_PID=0x8022 -DUSBCON -DUSB_CONFIG_POWER=100 -DUSB_MANUFACTURER="Adafruit" -DUSB_PRODUCT="Feather M4 Express" -IC:\Users\User\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.7.13/libraries/Adafruit_TinyUSB_Arduino/src/arduino -IC:\Users\User\AppData\Local\Arduino15\packages\adafruit\tools\CMSIS\5.4.0/CMSIS/Core/Include/ -IC:\Users\User\AppData\Local\Arduino15\packages\adafruit\tools\CMSIS\5.4.0/CMSIS/DSP/Include/ -IC:\Users\User\AppData\Local\Arduino15\packages\adafruit\tools\CMSIS-Atmel\1.2.2/CMSIS/Device/ATMEL/ -IC:\Users\User\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.7.13\cores\arduino -IC:\Users\User\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.7.13\variants\feather_m4 C:\Users\User\AppData\Local\Temp\arduino\sketches\FE7105C578C86644EDCEAFC98C6C868F\sketch\sketch_mar31c.ino.cpp -o nul
Alternatives for english.h: [TTS-master]
ResolveLibrary(english.h)
-> candidates: [TTS-master]
C:\Users\User\AppData\Local\Arduino15\packages\adafruit\tools\arm-none-eabi-gcc\9-2019q4/bin/arm-none-eabi-g++ -mcpu=cortex-m4 -mthumb -c -g -Os -Werror=return-type -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -D__SKETCH_NAME__="""sketch_mar31c.ino""" -w -x c++ -E -CC -DF_CPU=120000000L -DARDUINO=10607 -DARDUINO_FEATHER_M4 -DARDUINO_ARCH_SAMD -DARDUINO_SAMD_ADAFRUIT -D__SAMD51J19A__ -DADAFRUIT_FEATHER_M4_EXPRESS -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -DUSB_VID=0x239A -DUSB_PID=0x8022 -DUSBCON -DUSB_CONFIG_POWER=100 -DUSB_MANUFACTURER="Adafruit" -DUSB_PRODUCT="Feather M4 Express" -IC:\Users\User\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.7.13/libraries/Adafruit_TinyUSB_Arduino/src/arduino -DENABLE_CACHE -Os -DVARIANT_QSPI_BAUD_DEFAULT=50000000 -D__SAMD51J19A__ -DADAFRUIT_FEATHER_M4_EXPRESS -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -DUSB_VID=0x239A -DUSB_PID=0x8022 -DUSBCON -DUSB_CONFIG_POWER=100 -DUSB_MANUFACTURER="Adafruit" -DUSB_PRODUCT="Feather M4 Express" -IC:\Users\User\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.7.13/libraries/Adafruit_TinyUSB_Arduino/src/arduino -IC:\Users\User\AppData\Local\Arduino15\packages\adafruit\tools\CMSIS\5.4.0/CMSIS/Core/Include/ -IC:\Users\User\AppData\Local\Arduino15\packages\adafruit\tools\CMSIS\5.4.0/CMSIS/DSP/Include/ -IC:\Users\User\AppData\Local\Arduino15\packages\adafruit\tools\CMSIS-Atmel\1.2.2/CMSIS/Device/ATMEL/ -IC:\Users\User\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.7.13\cores\arduino -IC:\Users\User\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.7.13\variants\feather_m4 -Ic:\Users\User\Documents\Arduino\libraries\TTS-master C:\Users\User\AppData\Local\Temp\arduino\sketches\FE7105C578C86644EDCEAFC98C6C868F\sketch\sketch_mar31c.ino.cpp -o nul
Alternatives for Wire.h: [Wire@1.0]
ResolveLibrary(Wire.h)
-> candidates: [Wire@1.0]
Archiving built core (caching) in: C:\Users\User\AppData\Local\Temp\arduino\cores\119fe4e0988f8517e2822baf2336f28b\core.a
Linking everything together...
"C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\adafruit\\tools\\arm-none-eabi-gcc\\9-2019q4/bin/arm-none-eabi-g++" "-LC:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F" -Os -Wl,--gc-sections -save-temps "-TC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\samd\\1.7.13\\variants\\feather_m4/linker_scripts/gcc/flash_with_bootloader.ld" "-Wl,-Map,C:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F/sketch_mar31c.ino.map" --specs=nano.specs --specs=nosys.specs -mcpu=cortex-m4 -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -o "C:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F/sketch_mar31c.ino.elf" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F\\sketch\\TTS.cpp.o" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F\\sketch\\sketch_mar31c.ino.cpp.o" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F\\libraries\\TTS-master\\TTS.cpp.o" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F\\libraries\\TTS-master\\sound.cpp.o" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F\\libraries\\Wire\\Wire.cpp.o" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F\\libraries\\SPI\\SPI.cpp.o" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F\\libraries\\Adafruit_ZeroDMA\\Adafruit_ZeroDMA.cpp.o" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F\\libraries\\Adafruit_LSM9DS1_Library\\Adafruit_LSM9DS1.cpp.o" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F\\libraries\\Adafruit_BusIO\\Adafruit_BusIO_Register.cpp.o" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F\\libraries\\Adafruit_BusIO\\Adafruit_I2CDevice.cpp.o" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F\\libraries\\Adafruit_BusIO\\Adafruit_SPIDevice.cpp.o" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F\\libraries\\Adafruit_LIS3MDL\\Adafruit_LIS3MDL.cpp.o" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F\\libraries\\Adafruit_Unified_Sensor\\Adafruit_Sensor.cpp.o" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F\\libraries\\Adafruit_SSD1306\\Adafruit_SSD1306.cpp.o" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F\\libraries\\Adafruit_GFX_Library\\Adafruit_GFX.cpp.o" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F\\libraries\\Adafruit_GFX_Library\\Adafruit_GrayOLED.cpp.o" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F\\libraries\\Adafruit_GFX_Library\\Adafruit_SPITFT.cpp.o" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F\\libraries\\Adafruit_GFX_Library\\glcdfont.c.o" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F\\core\\variant.cpp.o" -Wl,--start-group "-LC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\adafruit\\tools\\CMSIS\\5.4.0/CMSIS/Lib/GCC/" "-LC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\samd\\1.7.13\\variants\\feather_m4" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 "-LC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\samd\\1.7.13\\variants\\feather_m4" -lm "C:\\Users\\User\\AppData\\Local\\Temp\\arduino\\sketches\\FE7105C578C86644EDCEAFC98C6C868F/core\\core.a" -Wl,--end-group
c:/users/user/appdata/local/arduino15/packages/adafruit/tools/arm-none-eabi-gcc/9-2019q4/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\User\AppData\Local\Temp\arduino\sketches\FE7105C578C86644EDCEAFC98C6C868F\libraries\TTS-master\TTS.cpp.o: in function `TTS::TTS(int)':
c:\Users\User\Documents\Arduino\libraries\TTS-master/TTS.cpp:349: multiple definition of `TTS::TTS(int)'; C:\Users\User\AppData\Local\Temp\arduino\sketches\FE7105C578C86644EDCEAFC98C6C868F\sketch\TTS.cpp.o:C:\Users\User\Downloads\Arduino-Ovilus-20220625T004940Z-001\Arduino Ovilus\sketch_mar31c/TTS.cpp:349: first defined here
c:/users/user/appdata/local/arduino15/packages/adafruit/tools/arm-none-eabi-gcc/9-2019q4/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\User\AppData\Local\Temp\arduino\sketches\FE7105C578C86644EDCEAFC98C6C868F\libraries\TTS-master\TTS.cpp.o: in function `TTS::TTS(int)':
c:\Users\User\Documents\Arduino\libraries\TTS-master/TTS.cpp:349: multiple definition of `TTS::TTS(int)'; C:\Users\User\AppData\Local\Temp\arduino\sketches\FE7105C578C86644EDCEAFC98C6C868F\sketch\TTS.cpp.o:C:\Users\User\Downloads\Arduino-Ovilus-20220625T004940Z-001\Arduino Ovilus\sketch_mar31c/TTS.cpp:349: first defined here
c:/users/user/appdata/local/arduino15/packages/adafruit/tools/arm-none-eabi-gcc/9-2019q4/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\User\AppData\Local\Temp\arduino\sketches\FE7105C578C86644EDCEAFC98C6C868F\libraries\TTS-master\TTS.cpp.o: in function `TTS::sayPhonemes(char const*)':
c:\Users\User\Documents\Arduino\libraries\TTS-master/TTS.cpp:359: multiple definition of `TTS::sayPhonemes(char const*)'; C:\Users\User\AppData\Local\Temp\arduino\sketches\FE7105C578C86644EDCEAFC98C6C868F\sketch\TTS.cpp.o:C:\Users\User\Downloads\Arduino-Ovilus-20220625T004940Z-001\Arduino Ovilus\sketch_mar31c/TTS.cpp:359: first defined here
c:/users/user/appdata/local/arduino15/packages/adafruit/tools/arm-none-eabi-gcc/9-2019q4/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\User\AppData\Local\Temp\arduino\sketches\FE7105C578C86644EDCEAFC98C6C868F\libraries\TTS-master\TTS.cpp.o: in function `TTS::sayText(char const*)':
c:\Users\User\Documents\Arduino\libraries\TTS-master/TTS.cpp:553: multiple definition of `TTS::sayText(char const*)'; C:\Users\User\AppData\Local\Temp\arduino\sketches\FE7105C578C86644EDCEAFC98C6C868F\sketch\TTS.cpp.o:C:\Users\User\Downloads\Arduino-Ovilus-20220625T004940Z-001\Arduino Ovilus\sketch_mar31c/TTS.cpp:553: first defined here
collect2.exe: error: ld returned 1 exit status
Using library TTS-master in folder: C:\Users\User\Documents\Arduino\libraries\TTS-master (legacy)
Using library Wire at version 1.0 in folder: C:\Users\User\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.7.13\libraries\Wire
Using library SPI at version 1.0 in folder: C:\Users\User\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.7.13\libraries\SPI
Using library Adafruit Zero DMA Library at version 1.1.0 in folder: C:\Users\User\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.7.13\libraries\Adafruit_ZeroDMA
Using library Adafruit LSM9DS1 Library at version 2.2.1 in folder: C:\Users\User\Documents\Arduino\libraries\Adafruit_LSM9DS1_Library
Using library Adafruit BusIO at version 1.15.0 in folder: C:\Users\User\Documents\Arduino\libraries\Adafruit_BusIO
Using library Adafruit LIS3MDL at version 1.2.4 in folder: C:\Users\User\Documents\Arduino\libraries\Adafruit_LIS3MDL
Using library Adafruit Unified Sensor at version 1.1.14 in folder: C:\Users\User\Documents\Arduino\libraries\Adafruit_Unified_Sensor
Using library Adafruit SSD1306 at version 2.5.9 in folder: C:\Users\User\Documents\Arduino\libraries\Adafruit_SSD1306
Using library Adafruit GFX Library at version 1.11.9 in folder: C:\Users\User\Documents\Arduino\libraries\Adafruit_GFX_Library
exit status 1
Compilation error: exit status 1
This is the code. Any help would be greatly appreciated.
#include <english.h>
#include <Sound.h>
#include <TTS.h>
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_LSM9DS1.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#define OLED_WIDTH 128
#define OLED_HEIGHT 64
#define OLED_ADDR 0x3C
Adafruit_SSD1306 display(OLED_WIDTH, OLED_HEIGHT);
// i2c, initialize the sensor breakout board
Adafruit_LSM9DS1 lsm = Adafruit_LSM9DS1();
#define LSM9DS1_SCK 21
#define LSM9DS1_MISO 12
#define LSM9DS1_MOSI 20
#define LSM9DS1_XGCS 6
#define LSM9DS1_MCS 5
void setupSensor()
{
// Set the magnetometer sensitivity
lsm.setupMag(lsm.LSM9DS1_MAGGAIN_4GAUSS);
}
// Dictionary of the 1000 most common English words.
const char *words[] = {"the", "unknown", "sad", "window", "fire", "flood", "unknown", "work", "you", "that", "he", "was", "for", "on", "are", "with", "unknown", "spiritualism", "his", "they", "be", "at", "one", "have", "this", "spiirts", "or", "had", "by", "hot", "word", "but", "what", "some", "we", "can", "out", "other", "were", "all", "there", "when", "up", "use", "your", "how", "said", "an", "each", "she", "which", "do", "their", "time", "if", "will", "way", "about", "many", "then", "them", "write", "would", "like", "so", "these", "her", "long", "make", "thing", "see", "him", "two", "has", "look", "more", "day", "could", "go", "come", "did", "number", "sound", "no", "most", "people", "my", "over", "know", "water", "than", "call", "first", "who", "may", "down", "side", "been", "now", "find", "any", "new", "work", "part", "take", "get", "place", "made", "live", "where", "after", "back", "little", "only", "round", "man", "year", "came", "show", "every", "good", "me", "give", "our", "under", "name", "very", "through", "just", "form", "sentence", "great", "think", "say", "help", "low", "line", "differ", "turn", "cause", "much", "mean", "before", "move", "right", "boy", "old", "too", "same", "tell", "does", "set", "three", "want", "air", "well", "also", "play", "small", "end", "put", "home", "read", "hand", "port", "large", "spell", "add", "even", "land", "here", "must", "big", "high", "such", "follow", "act", "why", "ask", "men", "change", "went", "light", "kind", "off", "need", "house", "picture", "try", "us", "again", "animal", "point", "mother", "world", "near", "build", "self", "earth", "father", "head", "stand", "own", "page", "should", "country", "found", "answer", "school", "grow", "study", "still", "learn", "plant", "cover", "food", "sun", "four", "between", "state", "keep", "eye", "never", "last", "let", "thought", "city", "tree", "cross", "farm", "hard", "start", "might", "story", "saw", "far", "sea", "draw", "left", "late", "run", "don't", "while", "press", "close", "night", "real", "life", "few", "north", "open", "seem", "together", "next", "white", "children", "begin", "got", "walk", "example", "ease", "paper", "group", "always", "music", "those", "both", "mark", "often", "letter", "until", "mile", "river", "car", "feet", "care", "second", "book", "carry", "took", "science", "eat", "room", "friend", "began", "idea", "fish", "mountain", "stop", "once", "base", "hear", "horse", "cut", "sure", "watch", "color", "face", "wood", "main", "enough", "plain", "girl", "usual", "young", "ready", "above", "ever", "red", "list", "though", "feel", "talk", "bird", "soon", "body", "dog", "family", "direct", "pose", "leave", "song", "measure", "door", "product", "black", "short", "numeral", "class", "wind", "question", "happen", "complete", "ship", "area", "half", "rock", "order", "fire", "south", "problem", "piece", "told", "knew", "pass", "since", "top", "whole", "king", "space", "heard", "best", "hour", "better", "true", "during", "hundred", "five", "remember", "step", "early", "hold", "west", "ground", "interest", "reach", "fast", "verb", "sing", "listen", "six", "table", "travel", "less", "morning", "ten", "simple", "several", "vowel", "toward", "war", "lay", "against", "pattern", "slow", "center", "love", "person", "money", "serve", "appear", "road", "map", "rain", "rule", "govern", "pull", "cold", "notice", "voice", "unit", "power", "town", "fine", "certain", "fly", "fall", "lead", "cry", "dark", "machine", "note", "wait", "plan", "figure", "star", "box", "noun", "field", "rest", "correct", "able", "pound", "done", "beauty", "drive", "stood", "contain", "front", "teach", "week", "final", "gave", "green", "oh", "quick", "develop", "ocean", "warm", "free", "minute", "strong", "special", "mind", "behind", "clear", "tail", "produce", "fact", "street", "inch", "multiply", "nothing", "course", "stay", "wheel", "full", "force", "blue", "object", "decide", "surface", "deep", "moon", "island", "foot", "system", "busy", "test", "record", "boat", "common", "gold", "possible", "plane", "stead", "dry", "wonder", "laugh", "thousand", "ago", "ran", "check", "game", "shape", "equate", "hot", "miss", "brought", "heat", "snow", "tire", "bring", "yes", "distant", "fill", "east", "paint", "language", "among", "grand", "ball", "yet", "wave", "drop", "heart", "am", "present", "heavy", "dance", "engine", "position", "arm", "wide", "sail", "material", "size", "vary", "settle", "speak", "weight", "general", "ice", "matter", "circle", "pair", "include", "divide", "syllable", "felt", "perhaps", "pick", "sudden", "count", "square", "reason", "length", "represent", "art", "subject", "region", "energy", "hunt", "probable", "bed", "brother", "egg", "ride", "cell", "believe", "fraction", "forest", "sit", "race", "window", "store", "summer", "train", "sleep", "prove", "lone", "leg", "exercise", "wall", "catch", "mount", "wish", "sky", "board", "joy", "winter", "sat", "written", "wild", "instrument", "kept", "glass", "grass", "cow", "job", "edge", "sign", "visit", "past", "soft", "fun", "bright", "gas", "weather", "month", "million", "bear", "finish", "happy", "hope", "flower", "clothe", "strange", "gone", "jump", "baby", "eight", "village", "meet", "root", "buy", "raise", "solve", "metal", "whether", "push", "seven", "paragraph", "third", "shall", "held", "hair", "describe", "cook", "floor", "either", "result", "burn", "hill", "safe", "cat", "century", "consider", "type", "law", "bit", "coast", "copy", "phrase", "silent", "tall", "sand", "soil", "roll", "temperature", "finger", "industry", "value", "fight", "lie", "beat", "excite", "natural", "view", "sense", "ear", "else", "quite", "broke", "case", "middle", "kill", "son", "lake", "moment", "scale", "loud", "spring", "observe", "child", "straight", "consonant", "nation", "dictionary", "milk", "speed", "method", "organ", "pay", "age", "section", "dress", "cloud", "surprise", "quiet", "stone", "tiny", "climb", "cool", "design", "poor", "lot", "experiment", "bottom", "key", "iron", "single", "stick", "flat", "twenty", "skin", "smile", "crease", "hole", "trade", "melody", "trip", "office", "receive", "row", "mouth", "exact", "symbol", "die", "least", "trouble", "shout", "except", "wrote", "seed", "tone", "join", "suggest", "clean", "break", "lady", "yard", "rise", "bad", "blow", "oil", "blood", "touch", "grew", "cent", "mix", "team", "wire", "cost", "lost", "brown", "wear", "garden", "equal", "sent", "choose", "fell", "fit", "flow", "fair", "bank", "collect", "save", "control", "decimal", "gentle", "woman", "captain", "practice", "separate", "difficult", "doctor", "please", "protect", "noon", "whose", "locate", "ring", "character", "insect", "caught", "period", "indicate", "radio", "spoke", "atom", "human", "history", "effect", "electric", "expect", "crop", "modern", "element", "hit", "student", "corner", "party", "supply", "bone", "rail", "imagine", "provide", "agree", "thus", "capital", "won't", "chair", "danger", "fruit", "rich", "thick", "soldier", "process", "operate", "guess", "necessary", "sharp", "wing", "create", "neighbor", "wash", "bat", "rather", "crowd", "corn", "compare", "poem", "string", "bell", "depend", "meat", "rub", "tube", "famous", "dollar", "stream", "fear", "sight", "thin", "triangle", "planet", "hurry", "chief", "colony", "clock", "mine", "tie", "enter", "major", "fresh", "search", "send", "yellow", "gun", "allow", "print", "dead", "spot", "desert", "suit", "current", "lift", "rose", "continue", "block", "chart", "hat", "sell", "success", "company", "subtract", "event", "particular", "deal", "swim", "term", "opposite", "wife", "shoe", "shoulder", "spread", "arrange", "camp", "invent", "cotton", "born", "determine", "quart", "nine", "truck", "noise", "level", "chance", "gather", "shop", "stretch", "throw", "shine", "property", "column", "molecule", "select", "wrong", "gray", "repeat", "require", "broad", "prepare", "salt", "nose", "plural", "anger", "claim", "continent", "oxygen", "sugar", "death", "pretty", "skill", "women", "season", "solution", "magnet", "silver", "thank", "branch", "match", "suffix", "especially", "fig", "afraid", "huge", "sister", "steel", "discuss", "forward", "similar", "guide", "experience", "score", "apple", "bought", "led", "pitch", "coat", "mass", "card", "band", "rope", "slip", "win", "dream", "evening", "condition", "feed", "tool", "total", "basic", "smell", "valley", "nor", "double", "seat", "arrive", "master", "track", "parent", "shore", "division", "sheet", "substance", "favor", "connect", "post", "spend", "chord", "unknown", "glad", "original", "share", "station", "dad", "bread", "charge", "proper", "bar", "offer", "segment", "slave", "duck", "instant", "market", "degree", "populate", "chick", "dear", "enemy", "reply", "drink", "occur", "support", "speech", "nature", "range", "steam", "motion", "path", "liquid", "log", "meant", "quotient", "teeth", "shell", "neck"};
// Media pins
#define PWM A0
#define buttonPin 13
TTS text2speech(PWM); // default is digital pin 10
int buttonState = 0;
float lastMag = 0;
float lastTemp = 0;
void setup() {
pinMode(buttonPin, INPUT);
Serial.begin(115200);
// Try to initialise and warn if we couldn't detect the chip
if (!lsm.begin())
{
Serial.println("Oops ... unable to initialize the LSM9DS1. Check your wiring!");
while (1);
}
setupSensor();
display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR);
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0, 17);
display.println(" SPIRIT");
display.println(" WORD");
display.println(" DATABASE");
display.display();
delay(9000);
display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR);
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0, 17);
display.println(" (WAITING)");
display.display();
}
void loop() {
buttonState = digitalRead(buttonPin);
// Check if the switch has been thrown. If so, start measuring and speaking.
if (buttonState == HIGH) {
lsm.read(); /* ask it to read in the data */
/* Get a new sensor event */
sensors_event_t a, m, g, temp;
lsm.getEvent(&a, &m, &g, &temp);
// Get the latest magnetometer and temperature reading
float newMag = lastMag; //Use previous reading as fallback
if (isnan(m.magnetic.x) || isnan(m.magnetic.y) || isnan(m.magnetic.z)) Serial.println("Sensor malreading");
else newMag = sqrt(sq(m.magnetic.x) + sq(m.magnetic.y) + sq(m.magnetic.z));
float newTemp = temp.temperature;
// If this isn't our first reading...
if (lastMag != 0) {
// Calculate the change in magnetic field/temperature
float deltaMag = abs(newMag - lastMag);
float deltaTemp = abs(newTemp - lastTemp);
// Get the biggest change of the two
float index = max(deltaMag, deltaTemp);
// Convert to an index of our dictionary array
float wordindfloat = index * 30.0 + 1.6;
int wordindint = round(wordindfloat);
// Speak the change on teh speaker
text2speech.setPitch(5);
text2speech.sayText(words[wordindint]);
Serial.println(words[wordindint]);
display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR);
display.clearDisplay();
display.setTextSize(3);
display.setTextColor(WHITE);
display.setCursor(1, 20);
display.println(words[wordindint]);
display.display();
// Store the readings for the next loop
lastMag = newMag;
lastTemp = newTemp;
}
// Store our readings as a baseline
else {
lastMag = newMag;
lastTemp = newTemp;
}
delay(random(200000ul, 500000ul));
}
}