GithubHelp home page GithubHelp logo

yetkinakyz / li-fi_v2v_stm32 Goto Github PK

View Code? Open in Web Editor NEW
16.0 2.0 4.0 5.04 MB

STM32 based vehicle to vehicle wireless serial communication with visible light spectrum.

License: Apache License 2.0

C 99.76% Assembly 0.24%
li-fi vlc v2v serial-communication wireless-communication

li-fi_v2v_stm32's Introduction

STM32 Based V2V Wireless Serial Communication with Li-Fi Technology

Prototype Test Video: https://youtu.be/mz5iK-CQuQg

This project aims serial communication between two vehicles by using visible light spectrum. It is still in progress.

I used two STM32F103C8T6 based development boards for communication.

The transmitter side has 5 buttons and a 16x2 LCD screen. Each button controls one different messege. The LCD shows the selected message before it is sent. In order to see and select a message, push a button once. Then push the same button again in order to send the message. If you push a different button, you see and select a different message.

The receiver side has a 16x2 LCD screen and a buzzer. When a message is received to the receiver side, the buzzer sounds and the message is printed on the LCD. The buzzer sounds until the message is received and showed on the LCD.

The transmitter transmits a single character corresponding to a message on the receiver side. For example, the transmitter sends "_". When the character is transmitted to the receiver, the receiver prints the message corresponding to that character. For example, the receiver prints "SLOW!".

The LCDs communicate with the boards over I2C. You should check the slave addresses in I2C LCD libraries because these addresses depend on your LCD I2C drivers. You should shift to left for one bit to your slave address when you change it. For example, if your slave address is 0x27, you should write it as 0x4E.

I used a 5W power led as the transmitter's light source, and I used BPW21, a photodiode, in order to capture signals. In order to communciate over visible light, I used OOK (On-Off Keying) modulation. For serial communication, I used UART protocol.

In this project, communication is provided at 115200 baud rate in line with the owned resources. It does not work adaptively yet. In other words, communication can be achieved at a certain light intensity or distance. An AGC can solve this problem.

If you have a suggestion or a question, or just want to say hi, please contact me!

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.