2 Letter Word Learner With Morse Code

by Mr_Glenn in Circuits > Arduino

674 Views, 1 Favorites, 0 Comments

2 Letter Word Learner With Morse Code

20200529_133054 - Copy.jpg

I have been trying to learn the Scrabble (tm) 2 letter words for a while with no success. I have also been trying to learn Morse code again with little success.

I decided to try some subliminal learning by building a box which continuously showed the 2 letter words, in random order, and beeped out their letters in Morse code.

As I intended to enter the Instructables Arduino competition (2020) which has a sub prize for the use of Tinkercad I thought I would give that a try.

Parts & Tinkercad Link

Parts for actual construction:

1* Arduino UNO

1* LCD shield (generic)

1* Piezo sounder element

Tinkercad link:

https://www.tinkercad.com/things/dW5vJjR3OF4-fanta...

Tinkercad

Board_design_cropped.png

In Tinkercad I cloned the basic LCD hello world project and added in a piezo sounder.

For the software I initially dropped in some code that I had already started; my project had been on my mind a while.

My first experiences of Tinkercad were mixed, on the negative side the buzzer didn't sound very good and the LCD needed tinkering with the pot to get the display up and running.

On the positive side the emulator handled the use of variables in progmem and the debugger saved me a lot of head scratching.

The Morse code would not initially sound correctly and after some tries I remembered seeing the simulator debugger, setting a breakpoint on the entry to the Morse function showed it was getting a single value and another within the function finally made me realise that value was upper case when the function could only handle lower case!

Further simulation runs of my project were more successful, I am guessing my initial problem may have been communications lag?

Physical Construction

I used an Arduino UNO and an LCD shield and a piezo sounder, the Arduino and LCD shield just clip together and I added in the sounder with 2 connector wires.

The LCD shield used a different pinout to the Tinkercad sketch but altering the pin numbers in the initializer for it was enough to solve the problem, I also had to change the pin for the piezo sounder. After the code modifications everything ran fine.

Note that some shields have the backlight pin wired up incorrectly, like mine, to prevent problems with this I removed the offending pin (pin 10) from my shield

Limitations

You do get long chains of the same word and words appearing, it would have been better if I could shuffle the word array and then deal the words out like a deck of cards, I am not sure that is possible in this situation because of the use of progmem to store the word array.

The word list is from the official word list, the Collins Scrabble (tm) dictionary has some extra 2 letter words.

As I stated above the Morse function cannot handle uppercase letters, something to be aware of if you are considering using that code in another project.

References:

Source for information on faulty LCD shield wiring:

https://forum.arduino.cc/index.php?topic=96747.0

Source for the pinout of the shield I used:

http://www.robotshop.com/content/PDF/dfrobot-lcd-k...