Commit 8f2ba9e6 authored by Majd Hafiri's avatar Majd Hafiri
Browse files

Merge branch 'setup_and_run' into 'main'

Setup and run

See merge request !12
parents d9c8d48f 1f49692b
# Robotic Arm on FPGA
## Prerequisites
1. [Vivado](https://www.xilinx.com/support/download.html) 2021.2 Installed
2. [FPGA Boolean board](https://www.realdigital.org/hardware/boolean) (Xilinx Spartan-7 XC7S50-CSGA324 )
3. Robotic Arm with 4 micro servo motors eg. [Wooden Robotic Arm](https://www.amazon.de/Mechanical-Science-Experiment-Raspberry-SNAM1500/dp/B08CKC3KZ6/ref=sr_1_27_sspa?crid=2HL9LRXQ69QLK&keywords=roboterarm+holz&qid=1656112841&sprefix=robotic+arm+wooden%2Caps%2C212&sr=8-27-spons&psc=1&smid=A249EEO40WNRMY&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUFGVFNIVTU3ODFDSzMmZW5jcnlwdGVkSWQ9QTA2NDk5MTEyTjNUTTYyOVM5VTBFJmVuY3J5cHRlZEFkSWQ9QTAwNzUyNzEyMUhGMUFZSDFONVZGJndpZGdldE5hbWU9c3BfbXRmJmFjdGlvbj1jbGlja1JlZGlyZWN0JmRvTm90TG9nQ2xpY2s9dHJ1ZQ==)
4. Clone this repository `git clone https://mygit.th-deg.de/mh02127/robotic-arm-on-fpga.git`
## How to Connect
1. Connect the 4 servo motors to `J7, J6, J5, J4` pins on the FPGA board.
2. Use a connector for `J8` pins to connect `VS` with `5V0` ( power the servos from the usb port `J12`).
3. Connect the FPGA board to your machine using the micro usb wire (must be connected at `J12` on FPGA).
4. Turn on the board (`SW16`).
## How To Run
- Open the cloned project and program the FPGA board with the bitstream in the cloned project using Vivado ( ready to go ).
## How to Use
- 4 slide switches `(SW0 -> SW3)` are used to select one servo at a time to control it by the push buttons. (each switch is connected with one servo)
- 2 push buttons `(BTN0, BTN1)` used to change the angle of the selected servo (`0 -> 180` degrees).
- 1 slide switch `(SW15)` used for the Automated process mode ( when it's on, the manual mode is disabled)
- Two Displays which show the letter `A` if Automated mode is selected ( `D1SP2` ) , or the number of the the servo selected on ( `D1SP1` )
## Manual Simulation
Each module has a testbench, therefore it should be simulated individually. In Vivado, Go to `tools -> settings -> Simulation` and select the testbench you wish to simulate in the `simulation top module name`. Additionally, change the simulation `runtime` to a high number(eg. 100000000 ns) since some modules require that in order to see the changes of their outputs.
## Synthesize & simulate ( without GUI )
1. Activate vivado : `. /tools/Xilinx/Vivado/2021.2/settings64.sh` ( Select the right path )
2. Simulation : `make -f vsim.mk` ( other testbenches can be simulated by modifying the vsim file -> explanation in the file )
3. Synthesis : `make -f vsyn.mk` (Needs some more modifications)
- Credits: [https://mygit.th-deg.de/gaydos/realdigital-boolean-makefile/-/tree/main](https://mygit.th-deg.de/gaydos/realdigital-boolean-makefile/-/tree/main)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment