https://github.com/edydfang/electronic_car_diy
A small project for Digital Circuit Course
https://github.com/edydfang/electronic_car_diy
bluetooth cradle-head motor pi-camera servo
Last synced: 8 months ago
JSON representation
A small project for Digital Circuit Course
- Host: GitHub
- URL: https://github.com/edydfang/electronic_car_diy
- Owner: edydfang
- License: lgpl-3.0
- Created: 2017-05-29T19:05:49.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-06-09T18:14:49.000Z (about 9 years ago)
- Last Synced: 2025-07-07T06:46:50.835Z (11 months ago)
- Topics: bluetooth, cradle-head, motor, pi-camera, servo
- Language: C
- Homepage:
- Size: 10.5 MB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Electronic Car DIY
A small project for Digital Circuit Course
---
## Hardware
- Remote controller based on MCU `STC12C5A60S2`, triaxial accelerometer `ADXL345` and bluetooth 2.0 module `HC-05`
- Car chassis and wheels
- `Raspberry Pi 3` Model B
- Pi Camera
- Cradle head made with `two` `SG90` servo
- `Two` Dual Full-Bridge Motor Drivers `L298N`
- `Four` 12-V stepping motors
- Adafruit 16-Channel 12-bit PWM/Servo Driver `PCA9685`
- Wireless Network / WIFI
## Tools
- USB to TTL Transformer
- Dupont Lines
- 5V power to support `Raspberry Pi`, remote controller, `PCA9685` and cradle servos
- 12V power to support wheel motors
## Functions Implemented
- `send.c` in the folder `Remote Controller` is for the MCU `STC12C5A60S2` to connect and read data from `ADXL345` via `I2C` protocal and then transmit them to bluetooth via `UART`
- `client.py` is used on PC to read the data receive by bluetooth via a `USB-TTL` serial and send the data via internet to the server on the raspberry Pi
- `server.py` is used to receive the data and make the decision for the motors and the cradle head.
- `cradle.py` is used to control the servos on the cradle head
- `face_tracker.py` is used to track the face appear in the camera of Pi and control cradle head via `cradle.py`
- OpenCV
- rough tracking method
## Important
- Except for `cradle.py` and `face_tracker.py`, all the python scripts should be run in python 3 or higher.
## TO DO
- improve the size of pictures from the Pi Camera
- change the cradle head moving algorithm to PID
- improve the motors algorithm, add feedback processing