/
1,412 Views0

Dans cet article, je vais vous montrer comment orienter une camera alors que vous vous trouver à 5km de la camera, voir plus loin.

Cet article n’est pas terminé mais sert comme aide-mémoire

Prérequis

Avoir configuré son Raspberry selon l’article

Raspberry Zero Header
Raspberry Pi Zero Header (J8 Header)

Théorie

Je me m’attarderais pas dans la théorie. Je vous invite donc à lire cet article (en anglais) sur les DutyCycle ou celui-ci (en français)

Quelques passages:

We can now start the pwm sequence by giving a command to specify the DutyCycle of the signal. Before we do this, we need to talk a little bit about how servos work. A typical servo wants to see a frequency of 50 Hz on the control line. The position it moves to depends on the pulse width of the signal. Most servos behave roughly as such, but you will need to tweak these numbers for your particular servo. Typically, the servo will go to the full left position when it sees a pulse width of 1 millisecond, it will go the middle position when it sees a pulse width of 1.5 millisecond, and it will go to the full right position when it sees a pulse width of 2 millisecond. Note however, that on the Raspberry Pi we do not specify a pulse width, but we specify a DutyCycle. So, we can use the following relationship:

DutyCycle =PulseWidth/Period

[…]

En général, le signal est envoyé toutes les 20 ms (donc la fréquence est de 50 Hz). Si le signal demeure haut pendant 1 ms (ce qui correspond à un rapport cyclique de 5 %), le servomoteur se place à sa position minimale, s’il demeure haut pendant 1,5 ms (rapport cyclique de 7,5%), il se place à sa position médiane, et s’il demeure haut pendant 2 ms (rapport cyclique de 10 %), il se place à sa position maximale.

Les valeurs exactes varient d’un servomoteur à l’autre, toutefois, et le mieux est d’effectuer quelques tests avec celui que vous utiliserez, afin de connaître les rapports cycliques nécessaires pour lui faire occuper ses positions extrêmes

Matériel

Un Raspberry Zero W https://www.adafruit.com/product/3400
avec une alimentation 5V

Raspberry Zero
Raspberry Zero

Header male https://www.adafruit.com/product/2822  que vous aurez soudé au Raspberry Zero

Raspberry zero header
Raspberry zero header

Un petit « Pan tilt kit » https://www.adafruit.com/product/1967 et deux condensateurs de 1000µF

servo
Rouge=3V, Brun=GND, Jaune= Signal. Souder le condensateur entre le rouge et le brun

Accessoirement, un châssis https://www.adafruit.com/product/3216

chariot

Références:

http://electroniqueamateur.blogspot.ch/2015/11/controler-un-servomoteur-en-python-avec.html
http://www.toptechboy.com/raspberry-pi/raspberry-pi-lesson-28-controlling-a-servo-on-raspberry-pi-with-python/
https://circuitdigest.com/article/servo-motor-basics
https://circuitdigest.com/microcontroller-projects/raspberry-pi-servo-motor-control
https://learn.sparkfun.com/tutorials/raspberry-gpio/python-rpigpio-api  http://www.instructables.com/id/Servo-Motor-Control-With-Raspberry-Pi/
http://deusyss.developpez.com/tutoriels/RaspberryPi/PythonEtLeGpio/

http://www.raspberrypi-france.fr/installer-camera-videosurveillance/

https://www.raspberrypi.org/documentation/usage/camera/python/README.md

Web controll : https://tutorials-raspberrypi.com/setup-raspberry-pi-node-js-webserver-control-gpios/

Préparation

Activation du SPI.

Ouvrez un terminal et tapez la commande suivante

sudo raspi-config

Cliquez sur 5 Interfacing Options

raspi interface options

Puis sur P4 SPI et activez le (enable)

Connexions

La numérotation des pin du Raspberry sont les suivantes. La pin 1, se trouve à côté de la carte SD. La pin 2 se trouve à côté de la pin 1 et la pin 3 se trouve dessous la pin 1, et ainsi de suite.

Pour le servo 1 y
fils rouge => pin 1
fils brun => pin 9
fils jaune => pin 18

Pour le servo 2 x
fils rouge => pin 17
fils brun => pin 25
fils jaune => pin 16

Il faut encore mettre un condensateur de 1000µF entre le fils rouge et brun, pour les deux servos.

Configuration de Dydns

sudo apt-get install ddclient
sudo apt-get install libio-socket-ssl-perl
sudo ddclient -query
sudo ddclient -debug -verbose -noquiet
sudo systemctl start/stop/status ddclient

Référence: https://hallard.me/adafruit-oled-display-driver-for-pi/

Puis activer l’I2C

sudo raspi-config

sélectionner 5 Interface Options puis P5 I2C

Installer les packages suivants

sudo apt-get install libi2c-dev i2c-tools
sudo mkdir /home/pierrot/Soft/oled-ssd1306
cd /home/pierrot/Soft/oled-ssd1306
sudo git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git
cd oled-ssd1206/

Scripts

Nous allons créer un petit script qui ca commander l’orientation de la camera. Pour cela, ouvrez votre terminal et taper la commande suivante

sudo apt-get install vim # Pour installer VIM, si ce n'est pas fait
cd
sudo vi camera.py

tapez sur la touche i pour écrire ce code

from time import pprint
import sys
import RPI.GPIO as GPIO

print("Hello Word")

A suivre …

Leave Comment:

fr_FRFrench