Skip to content

ubilab-ws21/puzzle-3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Puzzle 3

Contents

Puzzle overview

The central role of our puzzle plays a "radio". The radio consists of a touchscreen display, a speaker, a module to play sound from an sd card, three encoders for tuning as well as one for the volume. The devices are all connected to a ESP32 WROOM Development kit. Final aim of the puzzle is to retrieve the so-called "green code" which is needed in a combination to restart the final server, i.e. to succeed in playining the Escape Room. It is to be discussed if the radio will maybe deliver more information, e.g. hints for the next puzzle (Morse-Code sound to open the server room door). The green code will eventually be displayed on the radio screen, once all the radio-related puzzles have been solved. The puzzles to be solved include the correct positioning of the three encoders which results in a change of the radio station. The new channel also comes with a new radio display screen. Solving a word game now leads to the final green code.

Repo Structure

This repository is structured in the following way:

  • datasheets contains all interesting datasheets
  • designs contains eagle designs
  • code contains the code
  • notes cotains all notes from lectures and meetings

Fitting the Puzzle into the story

The radio belongs to the hobby funker and former power distribution worker Ferdi. He has been fired a few years ago due to automatisation and digitalization of the distribution center. Ever since he has been fired, the work in the control room had been done autonomously. Ferdi has always predicted that the full autonoumous room can be dangerous in the future because nobody knows how to fix things if something goes wrong.

Puzzle Description

Puzzle Part 1

There is an antenna hidden in the room. When the radio turns on, there is nothing but noise to hear. The players need to find the antenna and plug it into a socket one can find at the radio. This will trigger a button. Also, the correct positioning of the antenna makes a difference which is observed by an encoder insider the radio case. When both is fine, there will be no noise anymore and an emergency broadcast can be heard nicely.

Puzzle Part 2

A world map is placed in the room. There are three colored pins placed on three diffeents countries pinned on the map. Meanwhile, the screen of the radio shows a three slider bars in the same colors, where the values of each bar can be changed with a correspondingly colored encoder. Both the radio and the world map belong to the former control room worker, i.e. his name is printed on both the radio case and the world map. The emergency broadcast plays repeatedly. The players must look at the pins on the map, extract the difference of the locations to the greenwich mean time (=delta) and turn the correspondingly colored encoders so that the sliding bars have the deltas as values. When this is done, the Emergency broadcast stops, and instead the voice of the former control room worker, a hobby radio operator, arises. Also the screen changed. The puzzle is solved.

Puzzle Part 3

In the recording, the former control room worker repeatedly says that he has forseen this and that going away from manual control to autonoumously controlled distribution was a bad choice. The screen shows a word puzzle, where it is not clear yet how it looks exactly. From the voice from the radio guy it becomes clear how to solve the puzzle. After the puzzle was solved, the screen changes again and shows the code which is needed for the next puzzle of the next group (code for opening the door via light bulbs)

MQTT Topics/Specification

Topic Description Payload Reset-Value Subscriber Publisher
3/gamecontrol Control the radio: which puzzle state is currently in play Enum(Gamecontrol) idle radio, operator radio, operator
3/antenna/orientation gives information if the angle of the antenna correct boolean false operator radio
3/map/knob1 gives information whether knob1 is in correct position boolean false operator radio
3/map/knob2 gives information whether knob2 is in correct position boolean false operator radio
3/map/knob3 gives information whether knob3 is in correct position boolean false operator radio
3/touchgame/trialCount gives information about the trails the group already had int 0 operator radio
3/touchgame/displayTime the game can either be set in easy or hard mode boolean false radio operator

3/gamecontrol maybe splitted to received and sended topic. For now we wait for feedback by the operator

Enum(gameControl) Description Subscriber Publisher
idle Radiopuzzle is waiting in idle mode to be started by operator radio operator
antenna antenna game is started by operator radio operator
antennaFinished antenna game is finished operator radio
map map game is started by operator radio operator
mapFinished map game is finished operator radio
touchgame touchgame is started by operator radio operator
touchgameFinished touchgame is finished operator radio
finished radio game is finished operator radio
int(trailCount) Description
++ everytime the game is failed, the trialcounter is increased

#Topic: 3/gamecontrol

Description: Control the radio: which puzzle state is currently in play

Payload: Enum(Gamecontrol)

Reset-Value: Idle

Enum Values:

Idle: Radio puzzle is waiting in Idle mode to be started

  • Publisher: Operator: set the third puzzle in idle mode

  • Subscriber: Radio: receive to stay in idle mode

  • antenna: antenna game is started Operator: start the first part of the puzzle radio: receive to start the puzzle with antenna game

  • antennaFinished: antenna game is finished Operator: receive updates on the gamestatus radio: update once the game is finished

  • map: map game is played Operator: start the second part of the puzzle radio: receive to start the second part of the puzzle

  • mapFinished: map game is finished Operator: receive updates on the gamestatus radio: update once the game is finished

  • touchgame: touchgame is played Operator: start the third part of the puzzle radio: receive to start the third part of the puzzle

  • touchgameFinished: touchgame is finished Operator: receive updates on the game status radio: update once the game is finished

  • finished: puzzle 3 is solved Operator: set the third puzzle in finished mode radio: receive to get in finished mode

Topic: 3/antenna/orientation

Description: gives information about the antenna orientation, should the operator know about the randomisation of the required postion?

Payload: int[0-23] or boolean Radio: update if antenna is set up in the correct direction Operator: receive updates on the antenna orientation

Topic: 3/map/knob1

Description: Control/Check the first knob

Playload: boolean

Reset-Value: false Radio: update if the the first knob/color reaches/leaves the correct postion Operator: receive updates on the first knob

Topic: 3/map/knob2

Description: Control/Check the second knob

Playload: boolean

Reset-Value: false Radio: update if the the second knob/color reaches/leaves the correct postion Operator: receive updates on the second knob

Topic: 3/map/knob3

Description: Control/Check the third knob

Playload: boolean

Reset-Value: false Radio: update if the the third knob/color reaches/leaves the correct postion Operator: receive updates on the third knob

Topic: 3/touchgame/trialCount

Description: Sends the number of trials to the operator

Payload: int

Reset-Value is 0 Radio: Update the trial number after each failed attempt Operator: receive updates on the failed attempts

Topic: 3/touchgame/displayTime

Description: Operator sets the time to easy or hard mode

Payload: boolean

Reset-Value: false Radio: receive updates on mode setting Operator: set mode for puzzle

Description: needs some discussion what should be updated to the operator

Documents

The datasheets can be found in the datasheets directory

Notes

The board with the ICs, placed on the bottom of the radio case inside, should be 9cm x 13cm long. Software game: We only have one rectangle. By placing the blue rectangle on a letter and touching it, the rectangle and the letter will go to the next free location in the password space.

Next Tasks - 23.01

  • Driver Board an case anbringen
  • MQTT auf ESP32 fertig implementieren

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •