Asteroids and lasers - what could possibly go wrong...

Overview

ko-fi

ESP32 Asteroids

A simple implementation of the classic arcade game Asteroids on the ESP32 using a laser and mirrors.

Although the code is based around driving a laser, you can use if with a normal display if you have one.

You can watch a video on how it all works here

Video

You can find more details on the schematics and how the laser galvos work in this video - https://youtu.be/bl1e54QGJk4.

The project is built using PlatformIO and uses the Esspressif IDF. I've been testing on a WROVER module, but it should work on a WROOM as well - though there may be some issues with running out of memory.

The code is still under development. There are some bugs and issues to be found.

You might also like...
Second life for famous JPEGView - fast and tiny viewer/editor for JPEG, BMP, PNG, WEBP, TGA, GIF and TIFF images with a minimalist GUI and base image processing.
Second life for famous JPEGView - fast and tiny viewer/editor for JPEG, BMP, PNG, WEBP, TGA, GIF and TIFF images with a minimalist GUI and base image processing.

JPEGView-Image-Viewer-and-Editor Updated Dec 07 2021. Version 1.1.1.0 has been released. Download link1, link2 added. Second life for famous JPEGView

An easy to build CO2 Monitor/Meter with Android and iOS App for real time visualization and charting of air data, data logger, a variety of communication options (BLE, WIFI, MQTT, ESP-Now) and many supported sensors.
An easy to build CO2 Monitor/Meter with Android and iOS App for real time visualization and charting of air data, data logger, a variety of communication options (BLE, WIFI, MQTT, ESP-Now) and many supported sensors.

CO2-Gadget An easy to build CO2 Monitor/Meter with cell phone App for real time visualization and charting of air data, datalogger, a variety of commu

Allows to swap the Fn key and left Control key and other tweaks on Macbook Pro and Apple keyboards in GNU/Linux

A patched hid-apple kernel module UPDATE August 2020: swap_fn_leftctrl is now built-in in Linux 5.8 🎉 UPDATE Jun 2020: New feature added (swap_fn_f13

Command line C++ and Python VSTi Host library with MFCC, FFT, RMS and audio extraction and .wav writing.
Command line C++ and Python VSTi Host library with MFCC, FFT, RMS and audio extraction and .wav writing.

______ _ ___ ___ | ___ \ | | | \/ | | |_/ /___ _ __ __| | ___ _ __| . . | __ _ _ __

Classified is an easy and handy encryptor and and decryptor which is can protect your file.

CLASSIFIED Classified is an encrypted and a decrypter. It can encrypt anykind of file with any extension. It is very secure. The thing only matters is

LLVM IR and optimizer for shaders, including front-end adapters for GLSL and SPIR-V and back-end adapter for GLSL

Licensing LunarGLASS is available via a three clause BSD-style open source license. Goals The primary goals of the LunarGLASS project are: Reduce the

This is a tool for software engineers to view,record and analyse data(sensor data and module data) In the process of software development.
This is a tool for software engineers to view,record and analyse data(sensor data and module data) In the process of software development.

![Contributors][Huang Jianyu] Statement 由于工具源码在网上公开,除使用部分开源项目代码外,其余代码均来自我个人,工具本身不包含公司的知识产权,所有与公司有关的内容均从软件包中移除,软件发布遵循Apache协议,任何人均可下载进行修改使用,如使用过程中出现任何问

Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more
Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more

EnTT is a header-only, tiny and easy to use library for game programming and much more written in modern C++. Among others, it's used in Minecraft by

Comments
  • Box2D font

    Box2D font

    Thank you for this project. Looks like it's missing the box2d.h file? Was wondering if this was an omission or intentional before I start commenting out references to that file....?

    Here's the console build output:

    In file included from src/Fonts/SimpleFont.hpp:5,
                     from src/Fonts/SimpleFont.cpp:1:
    src/Fonts/Font.hpp:3:10: fatal error: box2d/box2d.h: No such file or directory
     #include "box2d/box2d.h"
              ^~~~~~~~~~~~~~~
    compilation terminated.
    
    opened by hondaman900 8
  • box2d missing

    box2d missing

    Hi,

    I wasnt sure if the other submitted issue was related to this but the box2d lib doesn't seem to exist. Thank you, I still owe you some pictures and videos of my RGB laser display and hope to add colour to your project!

    opened by trevorboultwood 2
  • rotate world screen

    rotate world screen

    my output is rotated 90 degrees, is there an easy way to rotate the world box?

    PS thanks for sharing this. I had a bunch of issues with your ilda file renderer in your other library but this is working at rendering fonts. I don't have an encoder hooked up yet.

    PPS First thought is active noise canceling for the galvo, wonder how hard that would be.

    opened by jschoch 2
Owner
atomic14
atomic14
possibly the cheapest polysynth you can make

Arduino Polysynth possibly the cheapest polysynth you can make. It doesn't have an interface - you have to plug in a midi keyboard. It has 10 voices,

Marek Bereza 10 Jul 20, 2022
null 313 Dec 31, 2022
PikaScript is an ultra-lightweight Python engine with zero dependencies and zero-configuration, that can run with 4KB of RAM (such as STM32G030C8 and STM32F103C8), and is very easy to deploy and expand.

PikaScript 中文页| Star please~ 1. Abstract PikaScript is an ultra-lightweight Python engine with zero dependencies and zero-configuration, that can run

Lyon 906 Dec 29, 2022
Signed - a 3D modeling and construction language based on Lua and SDFs. Signed will be available for macOS and iOS and is heavily optimized for Metal.

Signed - A 3D modeling language Abstract Signed is a Lua based 3D modeling language, it provides a unique way to create high quality 3D content for yo

Markus Moenig 90 Nov 21, 2022
ESP32 firmware to read and control EMS and Heatronic compatible equipment such as boilers, thermostats, solar modules, and heat pumps

EMS-ESP is an open-source firmware for the Espressif ESP8266 and ESP32 microcontroller that communicates with EMS (Energy Management System) based equipment from manufacturers like Bosch, Buderus, Nefit, Junkers, Worcester and Sieger.

EMS-ESP 274 Jan 8, 2023
Hobbyist Operating System targeting x86_64 systems. Includes userspace, Virtual File System, An InitFS (tarfs), Lua port, easy porting, a decent LibC and LibM, and a shell that supports: piping, file redirection, and more.

SynnixOS Epic Hobby OS targeting x86_64 CPUs, it includes some hacked together functionality for most essential OSs although, with interactivity via Q

RaidTheWeb 42 Oct 28, 2022
🎮 Plants vs. Zombies multiplayer battle, developed via reverse engineering, inline hook and dynamic-link library injection. Two online players defend and attack as the plant side and zombie side respectively.

Plants vs. Zombies Online Battle This project has two original repositories: https://github.com/czs108/Plants-vs.-Zombies-Online-Battle https://github

Liugw 71 Oct 14, 2021
Free,Open-Source,Cross-platform agent and Post-exploiton tool written in Golang and C++, the architecture and usage like Cobalt Strike

Khepri Free,Open-Source,Cross-platform agent and Post-exploiton tool written in Golang and C++ Description Khepri is a Cross-platform agent, the archi

Young 1.4k Jan 3, 2023
PLP Project Programming Language | Programming for projects and computer science and research on computer and programming.

PLPv2b PLP Project Programming Language Programming Language for projects and computer science and research on computer and programming. What is PLP L

PLP Language 5 Aug 20, 2022
A run-time C++ library for working with units of measurement and conversions between them and with string representations of units and measurements

Units What's new Some of the CMake target names have changed in the latest release, please update builds appropriately Documentation A library that pr

Lawrence Livermore National Laboratory 112 Dec 14, 2022