GithubHelp home page GithubHelp logo

blueandi / racinglaptimer Goto Github PK

View Code? Open in Web Editor NEW
6.0 3.0 2.0 1.68 MB

Racing lap timer, based on a laser sensor.

License: MIT License

HTML 20.03% CSS 0.09% JavaScript 7.39% C++ 72.49%
esp8266 esp8266-arduino wemos-d1-mini waveshare laser race laptimer competition cpp11

racinglaptimer's Introduction

Racing Lap Timer

A racing lap timer, based on a laser sensor.

License Repo Status Release Build Status

RacingLapTimer

Motivation

For line follower competitions a racing lap timer shall be used. It doesn't only measure the lap time, it shows it nice via web interface, inclusive automatically result table generation.

Initial Startup

If the system starts up the first time, it will spawn a wifi access point with the SSID RacingLapTimer. Connect to it, it will request a password (default: "let me in"). Configure there the wifi network SSID/password to which the system shall later connect.

After configuration, the system will try to establish a connection. If the connection is not successful, the access point will be spawned again. Otherwise the credentials will be stored to persistent memory and loaded the next time automatically.

Electronic

Schematic

Schematic files can be found here. These have been developed using KiCAD 6.

MCU

MCU

  • Digital signal of laser sensor is connected to D1/GPIO_5 of the Wemos D1 Mini.
  • Power is supplied by USB 5V directly to the Wemos D1 Mini

Laser Power Supply

Power Supply

  • Laser module Vcc shall be 3.3V, because MCU is only 3.3V tolerant.
  • THT or SMD resistor options are provided. DO NOT PLACE ALL RESISTORS.

Laser Sensor

Power Supply

  • Pin header for Waveshare Laser Sensor.

PCB

v1.0

PCBv1.0

  • It is recommended to give the Laser Sensor some kind of support in order to protect the pin header from breaking. The height of the support depends on the pin headers used.

Software

Preparation

Install the serial driver for the Wemos D1 Mini board. Find the latest drivers here: https://www.wemos.cc/en/latest/ch340_driver.html

IDE

The PlatformIO IDE is used for the development. Its build on top of Microsoft Visual Studio Code.

Installation

  1. Install VSCode.
  2. Install PlatformIO IDE according to this HowTo.
  3. Close and start VSCode again.
  4. Recommended is to take a look to the quick-start guide.

Build Project

  1. Load workspace in VSCode.
  2. Change to PlatformIO toolbar.
  3. Project Tasks -> Build or via hotkey ctrl-alt-b

Update of the device

Update via usb

  1. Connect the Wemos D1 Mini board to your PC via USB.
  2. Build and upload the software via Project Tasks -> Upload.
  3. Build and upload the filesystem via Project Tasks -> Upload File System image.

Used Libraries

  • Arduino - ESP framework.
  • WifiManager - ESP8266 WiFi Connection manager with fallback web configuration portal.
  • WebSockets - A WebSocket Server and Client for Arduino based on RFC6455.

System Context

SystemContextDiagram

Issues, Ideas And Bugs

If you have further ideas or you found some bugs, great! Create a issue or if you are able and willing to fix it by yourself, clone the repository and create a pull request.

License

The whole source code is published under the MIT license.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, shall be licensed as above, without any additional terms or conditions.

racinglaptimer's People

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

racinglaptimer's Issues

"Clearing Laptime" Buttons

It shall be possible to clear the racing lap result table in the webinterface. And it shall be possible to clear per team.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.