---
# System prepended metadata

title: 智慧創新 pi-hexapod setup
tags: [' raspberry-pi', ' competition', setup]

---

---
tags: setup, competition, raspberry-pi
---

# 智慧創新 pi-hexapod setup

## Access
1. Auto connect to wifi
   SSID:`4a0c`
   password:`10000111`
2. `ssh pi@pi-hexapod`, you can replace `pi-hexapod` with local IP address.
  password:`root`, this is also the password for root.
3. Nginx welcome webpage: `http://pi-hexapod/`
4. RTMP live video: `rtmp://pi-hexapod/live`
5. RTMP static webpage: `http://pi-hexapod/stat`
6. flask control server: `http://pi-hexapod:5000/`
    - http request send from control PC with [Remote_controller_GUI](https://github.com/ghnmqdtg/Remote_controller_GUI)
    - http request format
      - `/`, GET, return `Hello World\n`
      - `/`, POST, `dir` could be `up`, `down`, `left`, `right`, `stretch` or `shrink`.
        ```json 
        { 
          "direction": "dir",
          "mode": mode_int
        }
        ```
        | dir           | Movement of pi-hexapod |
        | ------------- | ---------------------- |
        | `up`          | `walk(True)`           |
        | `down`        | `walk(False)`          |
        | `left`        | `rotate(True)`         |
        | `right`       | `rotate(False)`        |
        | `stretch`     | `stand()`              |
        | `shrink`      | `shrink()`             |
        | anything else | `rest()`               |
        
        | mode_int | Movement of pi-hexapod |
        | -------- | ---------------------- |
        | 0        | stupid walk            |
        | 1        | normal walk            |
        | 2        | best walk              |

        Return: `oh you posted something\n`.

## Codes and service
Services file are located at `/etc/systemd/system/`. Services should auto start after booting and auto restart on tasks failures. You can find all the service files [here](https://github.com/ghnmqdtg/Remote_controller_GUI/tree/master/in_pi/service).

- Nginx and RTMP Server
  - Nginx RTMP config: `/usr/local/nginx/conf/nginx.conf`
  - Nginx Service: `nginx.service`
  - RTMP push webcam service: `webcam-push-rtmp.service`
  - Ref: [Video Streaming Server (nginx, rtmp)](https://hackmd.io/hAXbGzRbRg-bAuHTA2yPVg?view)
- Action control flask server
  - File: `/root/hexapod/flask_http_server_service.py`
  - git: [Remote_controller_GUI/in_pi/flask_http_server_service.py](https://github.com/ghnmqdtg/Remote_controller_GUI/blob/master/in_pi/flask_http_server_service.py)
  - Service: `hexapod-action-server.service`
- RPlidar
  Remember to modify the `hostname` in the following  python file. Change it to the IP of control PC.
  - File: `/root/hexapod/rplidar_tcp_socket_client.py`
  - git: [Remote_controller_GUI/in_pi/rplidar_tcp_socket_client.py](https://github.com/ghnmqdtg/Remote_controller_GUI/blob/master/in_pi/rplidar_tcp_socket_client.py)
  - Service: `hexapod-rplidar.service`
  - Garph on PC:
    [rplidar_tcp_socket_server.py](https://github.com/ghnmqdtg/Remote_controller_GUI/blob/master/rplidar_tcp_socket_server.py)
    `python rplidar_tcp_socket_server.py`
- Action test file:
  - `/root/hexapod/hexapod_action_test.py`, [Remote_controller_GUI/in_pi/hexapod_action_test.py](https://github.com/ghnmqdtg/Remote_controller_GUI/blob/master/in_pi/hexapod_action_test.py)
  - `/root/hexapod/usr_input_servo_test.py`, [Remote_controller_GUI/in_pi/usr_input_servo_test.py](https://github.com/ghnmqdtg/Remote_controller_GUI/blob/master/in_pi/usr_input_servo_test.py)
