{"id":19371372,"url":"https://github.com/amid68/arduino-memory-game","last_synced_at":"2026-06-08T21:33:04.675Z","repository":{"id":258569899,"uuid":"874189230","full_name":"Amid68/arduino-memory-game","owner":"Amid68","description":"Arduino version of an Atari arcade memory game called Touch Me, using four LEDs, four pushbutton switches, and a piezo buzzer.","archived":false,"fork":false,"pushed_at":"2024-10-18T18:47:47.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-19T16:14:47.134Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Amid68.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-17T12:02:43.000Z","updated_at":"2024-10-18T18:47:50.000Z","dependencies_parsed_at":"2024-10-20T14:19:41.539Z","dependency_job_id":null,"html_url":"https://github.com/Amid68/arduino-memory-game","commit_stats":null,"previous_names":["amid68/arduino-memory-game"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Amid68/arduino-memory-game","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amid68%2Farduino-memory-game","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amid68%2Farduino-memory-game/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amid68%2Farduino-memory-game/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amid68%2Farduino-memory-game/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Amid68","download_url":"https://codeload.github.com/Amid68/arduino-memory-game/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amid68%2Farduino-memory-game/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34082130,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T08:18:12.192Z","updated_at":"2026-06-08T21:33:04.659Z","avatar_url":"https://github.com/Amid68.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Arduino Memory Game\n\n## Table of Contents\n- [Description](#description)\n- [Features](#features)\n- [Project Structure](#project-structure)\n- [Hardware Setup](#hardware-setup)\n- [Software Setup](#software-setup)\n  - [Arduino Version](#arduino-version)\n  - [Embedded C Version](#embedded-c-version)\n- [Usage](#usage)\n- [Demo](#demo)\n- [License](#license)\n- [Contributing](#contributing)\n- [Contact](#contact)\n\n## Description\n\nMemory Game is an interactive game inspired by Simon Says, designed to test and improve your memory skills. It features two distinct versions: an **Arduino (.ino) version** and an **Embedded C version**. Players are challenged to replicate increasingly complex sequences of button presses and LED flashes, with auditory feedback provided through a piezo buzzer.\n\n## Features\n\n- **Dual Implementations**: Available in both Arduino (.ino) and Embedded C versions.\n- **Responsive Gameplay**: Quick and accurate button press detection.\n- **Dynamic LED Feedback**: LEDs flash in synchronization with game sequences and user inputs.\n- **Auditory Feedback**: Unique melodies and tones enhance the gaming experience.\n- **Milestone Celebrations**: Special tunes and LED patterns celebrate every five correct sequences.\n- **Failure Handling**: Distinct failure tones and LED patterns indicate incorrect inputs and reset the game.\n\n## Project Structure\n\n```plaintext\n.\n├── LICENSE\n├── Makefile\n├── README.md\n├── ino_version\n│   └── ino_version.ino\n└── src\n    ├── config\n    │   └── config.h\n    ├── game\n    │   ├── game_logic.c\n    │   └── game_logic.h\n    ├── hal\n    │   ├── hal_adc.c\n    │   ├── hal_adc.h\n    │   ├── hal_delay.c\n    │   ├── hal_delay.h\n    │   ├── hal_gpio.c\n    │   ├── hal_gpio.h\n    │   ├── hal_pwm.c\n    │   ├── hal_pwm.h\n    │   ├── pin_mapping.c\n    │   └── pin_mapping.h\n    ├── input\n    │   ├── input.c\n    │   └── input.h\n    ├── main.c\n    ├── main.o\n    ├── output\n    │   ├── output.c\n    │   └── output.h\n    └── sound\n        ├── melody.c\n        ├── melody.h\n        ├── notes.h\n        ├── speaker.c\n        └── speaker.h\n\n9 directories, 28 files\n```\n\n## Hardware Setup\n\n![Hardware Setup](setup.png)\n\n**Components Needed:**\n- Arduino Uno\n- 4 Pushbuttons\n- 4 LEDs\n- 4 Current-limiting resistors (220Ω recommended)\n- Piezo Buzzer\n- Breadboard and Jumper Wires\n\n**Wiring Overview:**\n1. **Buttons**: Connect each pushbutton between digital pins 2-5 and GND, with internal pull-up resistors enabled.\n2. **LEDs**: Connect each LED's anode to digital pins 8-11 through a resistor and the cathode to GND.\n3. **Speaker**: Connect the piezo buzzer to digital pin 12 and GND.\n\n## Software Setup\n\n### Arduino Version\n\n1. **Requirements:**\n   - [Arduino IDE](https://www.arduino.cc/en/software) installed on your computer.\n\n2. **Setup Steps:**\n   - Open the `ino_version.ino` file located in the `ino_version` directory using Arduino IDE.\n   - Select the appropriate board and port from the `Tools` menu.\n   - Click the **Upload** button to compile and upload the sketch to your Arduino Uno.\n\n### Embedded C Version\n\n1. **Requirements:**\n   - [AVR GCC Toolchain](https://www.nongnu.org/avr-libc/user-manual/install_tools.html) installed.\n   - `make` utility installed.\n   - [AVRDUDE](http://www.nongnu.org/avrdude/) for uploading firmware.\n\n2. **Setup Steps:**\n   - Navigate to the project root directory in your terminal.\n   - Run `make` to compile the Embedded C version.\n   - Connect your Arduino Uno to the computer via USB.\n   - Use `make upload` to upload the compiled firmware to the Arduino.\n\n   **Note:** Ensure that the Makefile is configured correctly with your programmer settings.\n\n## Usage\n\n1. **Start the Game:**\n   - Upon powering the device, the intro melody will play with corresponding LED blinks.\n   - The game will display the first sequence.\n\n2. **Gameplay:**\n   - Repeat the sequence by pressing the corresponding buttons.\n   - Each correct input will extend the sequence by one step.\n   - Reach milestones every five correct sequences to hear celebratory melodies and LED patterns.\n\n3. **Failure:**\n   - Making an incorrect input will trigger a failure melody and reset the game.\n\n## Demo\n\nWatch the project in action!\n\n[![YouTube Demo](https://img.youtube.com/vi/yrkbXQtZy78/0.jpg)](https://www.youtube.com/watch?v=yrkbXQtZy78)\n\n*Click the image above to view the demo video.*\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n\n## Contributing\n\nContributions are welcome! Please fork the repository and submit a pull request with your enhancements.\n\n## Contact\n\nFor any questions or feedback, please contact:\n\n**Ameed Othman**  \nEmail: othman.ameed@gmail.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famid68%2Farduino-memory-game","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famid68%2Farduino-memory-game","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famid68%2Farduino-memory-game/lists"}