Skip to content

Commit

Permalink
doc: update description
Browse files Browse the repository at this point in the history
  • Loading branch information
arcadien committed Dec 10, 2023
1 parent ddd6091 commit 959a0d1
Showing 1 changed file with 16 additions and 20 deletions.
36 changes: 16 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,48 +1,44 @@
# Five In A Row

Set of applications targetting Atmel/Microchip [ATMega328P](https://www.microchip.com/en-us/product/atmega328p), implementing shooting games.
Set of two applications targetting Atmel/Microchip [ATMega328P](https://www.microchip.com/en-us/product/atmega328p), implementing shooting game.

Using a _gun_, users tries to hit _targets_ managed by a _target host_.
Using a *gun*, users tries to hit *targets*.
The game is up to four players: yellow, green, red and blue.
There are 5 targets.

### Game mode

Various games will be implemented.

#### Simple shooter

Each player shoot until the five targets are hit. Number of shoots is counted on the gun. Successful hits are counted by the target host and sent to the remote application.
#### Biathlon like
Each player turn gives 5 shots. Player tries to hit each target. Total number of shoots is counted, as well as successfull hits.

## Functional details

### target

The **target host** application manages player points and turns. It communicates with an Android application implemented on top of [Bluetooth Electronics](https://www.keuwl.com/apps/bluetoothelectronics/) application. It manages the game logic and player points. Various games and modes can be implemented for the host. Each of these could have a specific remote UI.
The **target** application manages player points and turns. It communicates with an Android application implemented on top of [Bluetooth Electronics](https://www.keuwl.com/apps/bluetoothelectronics/) application. It manages the game logic and player points.

### Gun

### Gun
The **Gun** application manages the gun. Using two buttons, it allows:

| Press | Button 1 | Button 2 |
| ----- | -------- | ------------------------------ |
| short | shoot | reset shoot count |
| long | N/A | continuous laser (calibration) |
| Press | Button 1 | Button 2 |
|-------|------------------|--------------------------------|
| short | shoot | Begin new round (give 5 shots) |
| long | power off | continuous laser (calibration) |

Gun application manages following outputs:

- Laser
- vibrator
- 128x32 I²C display
* Laser
* vibrator
* 128x32 I²C display

## Architecture details

Some parts of the projet, implementing logic, can be used on both native and target platform.
All that code is represented in the "domain" package below.

Current target hardware for all applications is the [ATMega328p](https://www.microchip.com/en-us/product/atmega328p) chip from Atmel/Microchip.
Both **target** and **Gun** application are run both native and cross environment. The current
target hardware for both is the [ATMega328p](https://www.microchip.com/en-us/product/atmega328p) chip from Atmel/Microchip.
To facilitate testing and extension, user interface (Gui) and hardware abstraction (HAL) are provided using interfaces. Implementation exists for native and cross (i.e. testing) environments.

Note: The _BTEGui_ implementation can be used in native environment. Based on plain string exchange, if it may be difficult to interpret.
Note: The *BTEGui* implementation can be used in native environment. Based on plain string exchange, if it may be difficult to interpret.

![Architecture overview](architecture.png)

0 comments on commit 959a0d1

Please sign in to comment.