wiki/en/motors.md

28 lines
1.5 KiB
Markdown

# Motors and PTZ
OpenIPC has support for motors on many devices through a variety of means. Many of these can be found in the [motors](https://github.com/OpenIPC/motors) repo.
## Types of control
### Vendor binary/module
Some motors can be controlled through a binary or kernel module. [ingenic-motor](https://github.com/OpenIPC/motors/tree/master/ingenic-motor) is an example of this. Hex messages are sent to the module that in turn move the motor. [xm-kmotor](https://github.com/OpenIPC/motors/tree/master/xm-kmotor) does this as well. View their READMEs for more information on configuration.
### UART
Some motors can be controlled through a UART TTY device. See [xm-uart.](https://github.com/OpenIPC/motors/blob/master/xm-uart/)
### GPIO
This is a simple and direct method to control a stepper motor by setting off GPIOs to a component on the board that assists in driving the motor. As long as you can probe your board and determine which GPIOs are connected to something like a ULN2803, there's a good chance you'll be able to control it.
#### ULN2003 Pinout
![wfdsad](../images/uln2803-pinout.png)
### 24BYJ48 Stepper Motor Diagram
![dsafsda](../images/24byj48-diagram.png)
## Configuring ONVIF
With [onvif_simple_server](https://github.com/roleoroleo/onvif_simple_server) you can easily gain access to PTZ controls through ONVIF (simple [example](https://github.com/OpenIPC/sandbox/tree/main/scripts/onvif)). Functionality will vary depending on the motor control package you use. See the server's example config in it's repo for all of the available commands.