simon says with pro mini, display, ws2812 and touch keys
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 
 
Ondřej Hruška 24209ae725
workaround for startup glitch
6 lat temu
lib readme etc 7 lat temu
.gitignore initial boilerplate 7 lat temu
CMakeLists.txt improved the randomizer 7 lat temu
LICENSE initial boilerplate 7 lat temu
Makefile improved the randomizer 7 lat temu
README.md updated readme 7 lat temu
avr-c-bp.pro initial boilerplate 7 lat temu
display.c workaround for startup glitch 6 lat temu
display.h improved the randomizer 7 lat temu
game.c add smoothing to the pwm lightsense, reduce Fail idle delay from 5 to 3s (based on experience on makerfaire prague) 6 lat temu
game.h added idle rainbow effect 7 lat temu
leds.c added idle rainbow effect 7 lat temu
leds.h added idle rainbow effect 7 lat temu
main.c some timing tuning 7 lat temu
pinout.h final final 7 lat temu
rng.c improved the randomizer 7 lat temu
rng.h improved the randomizer 7 lat temu
style.astylerc initial boilerplate 7 lat temu

README.md

Simon game with Pro Mini

There is not much documentation for this project because I made exactly one copy of the hardware and it'll probably end there. But if anyone tries to replicate this, here are some hints:

Parts

  • powered by 4 AA batteries (3 would be enough)
  • buck module to 4V, EN pin controlled by microcontroller (and a button through resistor, mcu senses button for soft shutdown etc). Those modules can be found on aliexpress. For a replacement, you can just put a mosfet there or something, as long as V_sup won't go over 5V.
  • arduino pro mini (anything with atmega328p will work)
  • 4 neopixels - blinky lights (chained)
  • dual 7-seg display unit for score, CC or CA doesn't matter, easy to reverse in code
  • 4 buttons or TTP223 touch keys for user input
  • 1 photo-transistor and some resistors for ambient light sense
  • displays driven by 595 or equivalent (eg 74HC4094)

what to connect to where can be found in pinout.h.

I'll send a more detailed schematic on request, if I still find my notes.

Flashing

The firmware can be flashed using the arduino bootloader (via the makefile), but that produces a 1s delay on startup when the bootloader waits. For this reason I've wiped the bootloader and flashed it directly with AVR Dragon using ISP programming.