Main Content

”Lord Vetinari stood at his window watching the semaphore tower on the other side of the river. All eight of the big shutters facing him were blinking furiously - black, white, black, white, black, white Information was flying into the air. Twenty miles behind him, on another tower on Sto Lat, someone was looking through a telescope and shouting out numbers. How quickly the future comes upon us, he thought.” T. Pratchett, The Fifth Elephant
After building a voice-controlled jumping jack based on the AIY voice kit, I had the idea to build a voice-controlled semaphore, bringing together the latest in IT technology with the beginnings of telecommunications and data transfer.
At first I had the idea to replicate the French semaphore system by Chappe, which was the first known system for nation-wide telecommunications using a semaphore system. But it turned out to be a bit too complicated to be realized using standard servos within a day. My next target was something similar to the clacks system described by Terry Pratchett, e.g. in “Going Postal”, as a 2x4 shutter semaphore system (not as the 4x4 matrix depicted in the movie). Unfortunately I could not find too much technical details available on this system. So I ended up with the 2x3 matrix semaphore system developed by Lord Murray, that had been used by the British Navy for a while. In addition, a six shutter/bit system does fit well to the six servo connectors available on the AIY voice HAT. But, as I did not have six servos at hand between the years, I finally decided to build a simulator made of LEDs first.
Concerning the code displayed, one could use the Murray system, but again the information I had available on it was rather limited, not allowing to display any numbers and symbols. So I came to the point to use the Braille system instead, which also uses a 2x3 matrix to display letters, numbers and other signs. The Braille system is the international standard to print texts readable for the blind. It is also a markup language, which uses a number indicator to define that numbers will be displayed next, and indicators to define that one, or many, of the following letters are written as capitals. I therefore decided to set up a slightly simplified system, with numbers and some signs defined by the Nemeth extension of the Braille system instead, and just use upper case letters, at least for the beginning. This allows to have unique patterns for every letter, number or sign to be displayed in my special application, and to omit the text analysis required for real Braille.
The final device allows to speak a word or sentence into the AIY voice recognition system, then the voice pattern data is sent via WLAN and internet to some Google sever in the US, gets decoded there, and, at least in my case, the interpreted data is sent back to Europe, where finally I get the recognized sentence displayed as a text string. This text string is then broken by the Python script into the individual letters, and now, by comparison with a dictionary defining the corresponding patterns, the pattern information is retreived and the patterns are displayed on a 2x3 LED matrix. Please have a look on the accompanying video.
I have set the display rate to one character per second, which should be long enough for a trained person to identify and translate the pattern. A possible next step would be to use a pattern recognition device like the AIY video HAT (so far not available in Europe) to read and interpret the patterns automatically, so to close the circle.
Further concepts for improvements, some with more real-world relevance, are discussed in the ‘outlook’ part of this instructable.”

Link to article