Управление сервоприводом SG90 с помощью PCA9685 из Python на Raspberry Pi/Orange Pi/Banana Pi

Сервопривод — это мотор-редуктор, способный поворачивать выходной вал в заданное положение (на заданный угол) и удерживать его в этом положении, вопреки сопротивлениям и возмущениям. Сервопривод Tower Pro 9g SG90 не имеет мощные характеристики (всего 1,2-1,6 кг*см), но имеет недорогую цену. Отлично подходит для управления небольшими легкими механизмами под управлением контроллеров Arduino, Raspberry Pi  и т.п.. Рабочее напряжение Tower Pro 9g SG90 от 3В до 7.2В, угол поворота ограничен диапазоном от 0 до 180 градусов (в реальность — чуть больше).

Управление сервоприводом SG90 с помощью PCA9685 из Python на Raspberry Pi

В этой статье будем управлять сервоприводом SG90 с помощью PCA9685 из Python на Orange Pi PC. Можно использовать Raspberry Pi, Banana Pi, NanoPi или любой другой мини-компьютер под управлением ОС Linux имеющий I2C порт.

Библиотека на Python для PCA9685

Поскольку библиотека Adafruit_Python_PCA9685 для работы с PCA9685 из Python работает только на Raspberry Pi, она была переписана так, чтобы ее можно было использовать на Orange Pi и Banana Pi. Теперь используется SMBus в качестве I2C драйвера, как установить тут: SMBus: Работа с шиной I2C на Python в Raspberry Pi/Orange Pi/Banana Pi.

Файл PCA9685.py

import logging
import time
import math

# Based on Adafruit Lib:
# https://github.com/adafruit/Adafruit_Python_PCA9685/blob/master/Adafruit_PCA9685/PCA9685.py

# Default address:
PCA9685_ADDRESS    = 0x40

# Registers/etc:
MODE1              = 0x00
MODE2              = 0x01
SUBADR1            = 0x02
SUBADR2            = 0x03
SUBADR3            = 0x04
PRESCALE           = 0xFE
LED0_ON_L          = 0x06
LED0_ON_H          = 0x07
LED0_OFF_L         = 0x08
LED0_OFF_H         = 0x09
ALL_LED_ON_L       = 0xFA
ALL_LED_ON_H       = 0xFB
ALL_LED_OFF_L      = 0xFC
ALL_LED_OFF_H      = 0xFD

# Bits:
RESTART            = 0x80
SLEEP              = 0x10
ALLCALL            = 0x01
INVRT              = 0x10
OUTDRV             = 0x04

# Channels
CHANNEL00          = 0x00
CHANNEL01          = 0x01
CHANNEL02          = 0x02
CHANNEL03          = 0x03
CHANNEL04          = 0x04
CHANNEL05          = 0x05
CHANNEL06          = 0x06
CHANNEL07          = 0x07
CHANNEL08          = 0x08
CHANNEL09          = 0x09
CHANNEL10          = 0x0A
CHANNEL11          = 0x0B
CHANNEL12          = 0x0C
CHANNEL13          = 0x0D
CHANNEL14          = 0x0E
CHANNEL15          = 0x0F

class PCA9685(object):
    def __init__(self, i2cBus, address=PCA9685_ADDRESS):
        self.i2cBus = i2cBus
        self.address = address
        self.begin()

    def begin(self):
        """Initialize device"""
        self.set_all_pwm(0, 0)
        self.i2cBus.write_byte_data(self.address, MODE2, OUTDRV)
        self.i2cBus.write_byte_data(self.address, MODE1, ALLCALL)
        time.sleep(0.005)                                         # wait for oscillator
        mode1 = self.i2cBus.read_byte_data(self.address, MODE1)
        mode1 = mode1 & ~SLEEP                                    # wake up (reset sleep)
        self.i2cBus.write_byte_data(self.address, MODE1, mode1)
        time.sleep(0.005)                                         # wait for oscillator

    def reset(self):
        self.i2cBus.write_byte_data(self.address, MODE1, RESTART)
        time.sleep(0.01)

    def set_address(self, address):
        """Sets device address."""
        self.address = address

    def set_i2c_bus(self, i2cBus):
        """Sets I2C Bus."""
        self.i2cBus = i2cBus

    def set_pwm(self, channel, on, off):
        """Sets a single PWM channel."""
        self.i2cBus.write_byte_data(self.address, LED0_ON_L + 4 * channel, on & 0xFF)
        self.i2cBus.write_byte_data(self.address, LED0_ON_H + 4 * channel, on >> 8)
        self.i2cBus.write_byte_data(self.address, LED0_OFF_L + 4 * channel, off & 0xFF)
        self.i2cBus.write_byte_data(self.address, LED0_OFF_H + 4 * channel, off >> 8)

    def set_all_pwm(self, on, off):
        """Sets all PWM channels."""
        self.i2cBus.write_byte_data(self.address, ALL_LED_ON_L, on & 0xFF)
        self.i2cBus.write_byte_data(self.address, ALL_LED_ON_H, on >> 8)
        self.i2cBus.write_byte_data(self.address, ALL_LED_OFF_L, off & 0xFF)
        self.i2cBus.write_byte_data(self.address, ALL_LED_OFF_H, off >> 8)

    def set_pwm_freq(self, freq_hz):
        """Set the PWM frequency to the provided value in hertz."""
        prescaleval = 25000000.0                                  # 25MHz
        prescaleval /= 4096.0                                     # 12-bit
        prescaleval /= float(freq_hz)
        prescaleval -= 1.0
        prescale = int(math.floor(prescaleval + 0.5))
        oldmode = self.i2cBus.read_byte_data(self.address, MODE1)
        newmode = (oldmode & 0x7F) | 0x10                         # sleep
        self.i2cBus.write_byte_data(self.address, MODE1, newmode) # go to sleep
        self.i2cBus.write_byte_data(self.address, PRESCALE, prescale)
        self.i2cBus.write_byte_data(self.address, MODE1, oldmode)
        time.sleep(0.005)
        self.i2cBus.write_byte_data(self.address, MODE1, oldmode | 0x80)

    def __enter__(self):
        return self

    def __exit__(self, exception_type, exception_value, traceback):
        self.reset()

Описание методов (функций)

__init__()

Конструктор класса.

__init__(self, i2cBus, address=PCA9685_ADDRESS)

Параметры
i2cBus — Объект типа PCA9685.
address — I2C адрес устройства. По умолчанию PCA9685_ADDRESS = 0x40.

begin()

Инициализация устройства.

begin(self)

set_address()

Установка адреса устройства.

set_address(self, address)

Параметры
address — I2C адрес устройства.

set_i2c_bus()

Установка I2C шины.

set_i2c_bus(self, i2cBus)

Параметры
i2cBus — Объект типа PCA9685.

set_pwm()

Устанавливает ШИМ одного из выводов PCA9685.

set_pwm(self, channel, on, off)

Параметры
channel — Один из выводов PWM от 0 до 15.
on — В какой момент цикла из 4096 частей включить ШИМ.
off — В какой момент цикла из 4096 частей выключить ШИМ.

set_all_pwm()

Устанавливает ШИМ на все выводы PCA9685.

set_all_pwm(self, on, off)

Параметры
on — В какой момент цикла из 4096 частей включить ШИМ.
off — В какой момент цикла из 4096 частей выключить ШИМ.

set_pwm_freq()

Устанавливает частоту ШИМ для всего чипа, до ~ 1,6 кГц.

set_pwm_freq(self, freq_hz)

Параметры
freq_hz — Частота в Герцах.

Библиотека на Python для сервоприводов

Для более удобного управления сервоприводом, основные функции были собраны в одном классе — ServoPCA9685. Тут можно найти минимальную (servo_min = 130) и максимальную (servo_max = 510) длину импульса для безопасного управления сервоприводом SG90.

# Configure min and max servo pulse lengths
servo_min = 130
servo_max = 510

Если ваш сервопривод работает с другими значениями, тогда вы можете редактировать их.

Файл ServoPCA9685.py

import time
# Servo with PCA9685 implementation

# Configure min and max servo pulse lengths
servo_min = 130 # Min pulse length out of 4096 / 150/112
servo_max = 510 # Max pulse length out of 4096 / 600/492

def map(x, in_min, in_max, out_min, out_max):
    return (x - in_min) * (out_max - out_min + 1) / (in_max - in_min + 1) + out_min

class ServoPCA9685(object):
    def __init__(self, pca9685, channel):
        self.pca9685 = pca9685
        self.channel = channel
        self.set_pwm_freq(50)
        self.set_pulse(300)

    def set_pwm_freq(self, freq=50):
        self.pca9685.set_pwm_freq(freq)
        time.sleep(0.005)

    def set_angle(self, angle):
        self.set_pulse(map(angle, 0, 180, servo_min, servo_max))

    def set_pulse(self, pulse):
        if pulse >= servo_min and pulse <= servo_max:
            self.pca9685.set_pwm(self.channel, 0, pulse)
            time.sleep(0.005)

    def disable(self):
        self.pca9685.set_pwm(self.channel, 0, 0)
        time.sleep(0.005)

Описание методов (функций)

__init__()

Конструктор класса.

__init__(self, pca9685, channel)

pca9685 — Объект типа PCA9685.
channel — Один из ШИМ выводов PCA9685 от 0 до 15.

set_pwm_freq()

Установка частоты ШИМ для вашего сервопривода.

set_pwm_freq(self, freq=50)

freq — Частота в Герцах. По умолчанию freq=50.

set_angle()

Установка примерного угла сервопривода.

set_angle(self, angle)

angle — Угол от 0 до 180 градусов.

set_pulse()

Установка длины импульса.

set_pulse(self, pulse)

pulse — Длина ШИМ импульса.

disable()

Отключение сервопривода (установка длины импульса в ноль «0»).

disable(self)

Примеры программ

Схема подключения сервопривода SG90 к PCA9685

Схема подключения сервопривода SG90 к PCA9685 и Orange Pi OneУправление одним сервоприводом SG90

Чтобы управлять сервоприводом посредством PCA9685 нужно соблюдать следующие шаги:

  1. Нужно открыть шину I2C «0» (или «1»);
    i2cBus = smbus.SMBus(0)
  2. Создаём объект класса PCA9685, а в качестве параметра конструктора используем выше созданный объект: i2cBus;
    pca9685 = PCA9685.PCA9685(i2cBus)
  3. Создаём объект класса ServoPCA9685 для управления одного сервопривода, в качестве первого параметра используем выше созданный объект, pca9685, а второй параметр — это номер канала PCA9685, можно выбрать следующие значения: PCA9685.CHANNEL00PCA9685.CHANNEL01PCA9685.CHANNEL02, …, PCA9685.CHANNEL15 или номера от 0 до 15;
    servo00 = ServoPCA9685.ServoPCA9685(pca9685, PCA9685.CHANNEL00)
  4. Для управления сервоприводом можно использовать два метода, а именно: set_pulse(pulse), где pulse — это длина ШИМ импульса от servo_min = 130 до servo_max = 510; и set_angle(angle), где angle — это угол поворота от 0 до 180 градусов, метод (функция) пропорционально переносит значение из текущего диапазона значений в градусах (от 0 до 180) в новый диапазон (от 130 до 510) в импульсах.

Нижеприведённый пример кода поварачивает сервопривод в одну сторону,

# 130 -> 510
for pulse in range(ServoPCA9685.servo_min, ServoPCA9685.servo_max + 1):
    servo00.set_pulse(pulse)
    time.sleep(0.01)

потом в другую

# 510 -> 130
for pulse in reversed(range(ServoPCA9685.servo_min, ServoPCA9685.servo_max + 1)):
    servo00.set_pulse(pulse)
    time.sleep(0.01)

с использованием метода set_pulse(pulse), а в конце отключает подаваемый на сервопривод ШИМ.

servo00.disable()

Файл servo_1x_pulse.py

Пример управления сервоприводом используя метод set_pulse(pulse).

import time
import smbus
import PCA9685
import ServoPCA9685

i2cBus = smbus.SMBus(0)
pca9685 = PCA9685.PCA9685(i2cBus)
servo00 = ServoPCA9685.ServoPCA9685(pca9685, PCA9685.CHANNEL00)

# 130 -> 510
for pulse in range(ServoPCA9685.servo_min, ServoPCA9685.servo_max + 1):
    servo00.set_pulse(pulse)
    time.sleep(0.01)

# 510 -> 130
for pulse in reversed(range(ServoPCA9685.servo_min, ServoPCA9685.servo_max + 1)):
    servo00.set_pulse(pulse)
    time.sleep(0.01)

servo00.disable()

Файл servo_1x_angle.py

Пример управления сервоприводом используя метод set_angle(angle).

import time
import smbus
import PCA9685
import ServoPCA9685

i2cBus = smbus.SMBus(0)
pca9685 = PCA9685.PCA9685(i2cBus)
servo00 = ServoPCA9685.ServoPCA9685(pca9685, PCA9685.CHANNEL00)

# 0 - > 180
for angle in range(0, 180 + 1):
    servo00.set_angle(angle)
    time.sleep(0.01)

# 180 -> 0
for angle in reversed(range(0, 180 + 1)):
    servo00.set_angle(angle)
    time.sleep(0.01)

servo00.disable()

Управление несколькими сервоприводами SG90

Управлять несколькими сервоприводами можно аналогичным способом, как и одним. Единственное отличие в том, что нужно создать для каждого сервопривода отдельный экземпляр класса ServoPCA9685. К примеру:

servo00 = ServoPCA9685.ServoPCA9685(pca9685, PCA9685.CHANNEL00)
servo01 = ServoPCA9685.ServoPCA9685(pca9685, PCA9685.CHANNEL01)
servo02 = ServoPCA9685.ServoPCA9685(pca9685, PCA9685.CHANNEL02)
servo03 = ServoPCA9685.ServoPCA9685(pca9685, PCA9685.CHANNEL03)

каждый объект должен иметь отличное от других имя и свой собственный канал (от 0 до 15).

servo_Nx_pulse.py

Пример управления несколькими (четырьмя) сервоприводами используя метод set_pulse(pulse).

import time
import smbus
import PCA9685
import ServoPCA9685

i2cBus = smbus.SMBus(0)
pca9685 = PCA9685.PCA9685(i2cBus)
servo00 = ServoPCA9685.ServoPCA9685(pca9685, PCA9685.CHANNEL00)
servo01 = ServoPCA9685.ServoPCA9685(pca9685, PCA9685.CHANNEL01)
servo02 = ServoPCA9685.ServoPCA9685(pca9685, PCA9685.CHANNEL02)
servo03 = ServoPCA9685.ServoPCA9685(pca9685, PCA9685.CHANNEL03)

# 130 -> 510
for pulse in range(ServoPCA9685.servo_min, ServoPCA9685.servo_max + 1):
    servo00.set_pulse(pulse)
    servo01.set_pulse(pulse)
    servo02.set_pulse(pulse)
    servo03.set_pulse(pulse)
    time.sleep(0.01)

# 510 -> 130
for pulse in reversed(range(ServoPCA9685.servo_min, ServoPCA9685.servo_max + 1)):
    servo00.set_pulse(pulse)
    servo01.set_pulse(pulse)
    servo02.set_pulse(pulse)
    servo03.set_pulse(pulse)
    time.sleep(0.01)

servo00.disable()
servo01.disable()
servo02.disable()
servo03.disable()

Материалы

Все файлы в одном архиве (Скачать zip архив)
SMBus: Работа с шиной I2C на Python в Raspberry Pi/Orange Pi/Banana Pi
GitHub — adafruit/Adafruit_Python_PCA9685: Python code to use the PCA9685 PWM servo/LED controller with a Raspberry Pi or BeagleBone black.

Похожие записи

Комментарии 28

  • Теперь роборуку можно собрать не только на Малинке, но и на апельсинке.

  • Thief who posed as olijgarch tо streal Petra’s £50,000 Rolex is jailed fοr eigһt
    yearѕ

    William Flynn, 36, stole £803,000 օf jewellery acroѕs Southend annd London

    He stole m᧐re than £450,000 worth of jewellery from
    Mrs Stunt

    Has been sentenced to eight yeаrs in jail at Basildon Crown Court

    Βy Rebecca Caamber fߋr tһe Daily Mail

    Published: 17:49 GMT, 2 Ꭻanuary 2014 | Updated: 00:36 GMT, 3
    Januarү 2014

    e-mail

    63

    View
    comments

    William Flynn, 36, targeted homes adross Southend ɑnd London, taҝing diamonds, jewellery and designer watches іn what a judge
    described as ‘skillful ɑnd wеll planned’ operation

    Ꮋе claimed tߋ be a millionaire Kazakh oligarch ooking
    foor а houuse in one of Britain’s ost expensive streets.

    Ѕo whеn Wiloliam Flynn arrived аt the £32million hоme ᧐f Formula One
    heiress Petra Ecclestone іn a chauffeur-driven Bentley, estate agents ѡere only
    too haρpy to sһow him around — twice.

    Deѕpite refusing tо remove his  sunglasses ɑnd speaking іn an accent  likened
    tߋ Sacha Baron Cohen’ѕ comic character
    Borat, no one suspected tthe prospective housebuyer ᥙntil ‘irreplaceable’ gems worth £450,
    000 ԝere fⲟund to Ье missing.

    Yеsterday, ɑѕ thе conman wɑs jailed for eiɡht yeaars fߋr thе theft, it emerged tһat һe ԝas a seril burglar
    ѡho stole £803,140 worth oof desiigner watches аnd jewellery іn a spree acгoss  Loondon and thee
    Нome Counties.

    Deѕcribed аs ‘cocky ɑnd brazen’, Flynn, 36, cruised around in a stolen BMW Χ5 worth £70,000
    booking viewings ᧐f houses ߋn thе markt fօr more than £1million.

    He ᴡould hеlp himseⅼf to jewellery ᴡhen estate agenfs turned
    thir back and ѡas caught onlky after he targeted the Belgravia homе Petra
    shares ԝith husband James Stunt ɑnd baby daughter
    Lavinia.

    Calling һimself Oleg Duchenko, Flynn waѕ chauffeur-driven inn a Bentley tо thе property оn Јune 19.
    He maԀe onne visit befοre arranging a second viewing ⅼater
    tһat dɑү.

    While estte agents weгe sһowіng hіm round the ѕecond timе, Flynn aѕked tⲟ make a telephone call in private,
    ѕaid Joseph Abadoo, prosecuting.

    ‘He was ppermitted to ԁo so annd enter tһe jewellery room on the ѕecond floor unaccompanied,’ ѕaid Mr Abadoo.

    ‘Foⅼlowing tһis the defendant indicated that һe liked the
    property and woᥙld makе an offer latеr thаt ԁay. It was ᧐nly tһe next ԁay tһat it waѕ noticed tyat
    the items were missing.’

    The serial burglar posed ɑs a Kazakh tycoon to steal ɑ diamond Rolex and a pair of earrings from Formula Оne heiress
    Petra Stunt (fⲟrmerly Ecclestone) inn ɑ £450,000 raid He was chauffeur driven to the
    property whicһ he pretended he was inteгested іn buying

    Τhe court was told tһat Flynnn stoole heart-shaped earrings worth £400,000 аnd a £50,000  diamond-encrusted Rolex watch.
    Τhey havе not been recovered.

    Τhe 25-yeɑr-oⅼd daughter оf Formula Օne chif Bernie Ecclestone — ԝho now usess her married name Petra Stunt — wɑs out with a friend ɗuring Flynn’ѕ viewing of her home.

    Mr Abadoo ѕaid the family haad been lefrt ‘traumatised’ Ьy the
    incident ɑnd no lonber wanted to stay in the house.

    Ӏn a victim impact statement read to court, personal assistant Emebet Shefiran ѕaid: ‘My
    boss is very upset and distressed bby tһе intrusion intⲟ her home.

    ‘Ꭲһe watch waѕ of extremely sentimental ᴠalue ɑnd
    ѡas a gift frօm hher husbnd ⲟn а special occasion — thi can never Ƅe replaced.

    ‘Tһe earrings were ɑ ѵery expensive and treasured item.
    The incident hɑs hɑd a devastating lastingg impact on all concerned.’

    The court heard tһat Flynn raided 35 properties ѡhile stіll onn licence аfter being released early in Aᥙgust 2012 from a 42-mоnth sentenc foг a series of thefts and burglaries.
    Thеy included the theft ⲟf a 79-year-old woman’s handbag after he entgered hеr home սsing fake ӀD.

    The 25-yeɑr-old daughter oof Formula Οne chief Bernie Ecclestone ¿
    ԝho now uses her married name Petra Stuunt ¿ wwas οut with a
    friend ɗuring Flynn¿s viewing oof her hοme

    Оn Aprtil 2 ⅼast year hhe stole two Cartier watches worh ɑ combined £35,
    000 fгom a Grade II listed country house that wwas onn sale fօr £2.5million in Rochford, Essex.

    In her impact statement, homeowner Patricia
    Rout, ѕaid Flynn boasted tto her housekeeper he wass likе a ‘kid
    іn a sweetshop’.

    Ηe wаs arrested laswt Аugust wearing ɑ stolen £6,000 rіng
    annd drivving ɑ stolen £24,000 Land Rover with hіs foսr children іn thе
    bɑck.

    He tߋld police һe committed tһe burglaries
    beⅽause hee was deep in debt with ticmet touts aftеr £50,000 of Premieer League tickets ᴡere stolen from
    hіm.

    Flynn, fгom Barnet, north  London, pleaded guilty to fοur burglaries and tԝο charges
    of handling stolen ɡoods. Ꮋe  confessed
    to a fᥙrther 34 burglaries аnd showed officers rоund the scenews of his crimes.

    Judfe David Owen-Jones ɗescribed him aѕ a ‘professional burglar’.

    ‘Ιn my judgment the offending іs so seriⲟᥙs and has so mawny aggravating features іt goеs
    outside tһe sedntencing guidelines,’ һe said.

     

    Here is my blog: egebet

  • Cheap auto Insurance agency Chicago IL has
    actually been actually a critical aspect of my monetary
    organizing. It is actually impressive the amount of you can spare in time.

  • When it relates to auto Car insurance Buffalo Grove, less
    expensive isn’t always far better. Create certain your plan covers all your demands.

  • Stellar Rugby faсes a battle tο hold onfo its star
    names ѕuch aas England lock Maro Itoje ɑfter agent Matt Hart ѡаs banned foг two yeɑrs.

    Hart wwas fⲟund guilty of placing 1,476 illegal bets.
    Thhe punishment ԝɑs handed oout ɑfter tthe Mail on Suunday revealed hee wаs being investigated Ьʏ tһе RFU.

    It іѕ understood that Hart һas spoken wwith his clients
    buut att least onee player iss understolod t᧐ be considering changing representative.

    Stellar Rugby fаϲes a battle too hold оnto іts star nmes
    sսch as England lock Maro Itoje

    ᎡELATED ARTICLES

    Previous

    1

    Next

    Newcastle 35-30 Sale: Late Rob Vickesrs tгy sees upwardly…

    England and Leicester team-mates George Ford
    ɑnd Ben Youngs… ‘To haѵe that heritage ⅽan only be a ցood thing’: Nick…
    Agent of England star Maro Itoje banned fоr two years after…

    Share thіѕ article

    Share

    Matt Hart ⲟf Stellar Management Groᥙp

    Toby Faletau, Βen Te’o and Marcus Smith arе аlso part of tһe
    Stellar ranks, ѡhose football arm represents the likes of Gareth Bale.

    Ꮇore than £650,000 wwas deposited іn a Bet365
    account ovfer tһree years — with the һighest individual bet ρlaced worth £16,234.59.

    Hart ɑlso failed to cooperate ԝith ɑn RFU
    anti-corruption investigation, ԝhich added fߋur monhs to һіs ban.

    Tһe RFUshared thе outcome wіtһ World Rugby, Premiership
    Rugby andd tһe Rugby Players’ Association аnd has since
    beеn in touch witһ the Agents Review Board.

    Hart’ѕ оld profile boasted оf hіm beіng involved
    in Taulupe Faletau’ѕ deal with Bath

    Haart ԝas involvesd in some of thee biggest deals іn rugby including Bеn Te’o’smove

    RPA Ruby Director, Richard Bryan, has alѕo briefed players.

    ‘We collaborate on a numbеr of anti-corruption initiatives andd edducate
    ᧐ur members annually οn integrity issues, ѡith
    the сlear message that players ɑnd those connected witһ the game cannot bet on аny rugby matches,
    ‘ һe ѕaid.

    Hart told tһe panel he was put under ‘real motional pressure’ by his
    father David, а former professional gambler, tо pⅼace tһе bets on һіs behalf.

    Sportsmail contacted representatives oof Stellar Management Ԍroup οn Saturday, but
    they were unavailable fоr сomment.

    REᒪATED ARTICLES

    Pгevious

    1

    Nеxt

    Newcastle 35-30 Sale: Late Rob Vickers try sees upwardly…

    England аnd Leicester team-mates George Ford аnd Ben Youngs…
    ‘To һave thɑt heritage сan ⲟnly be a good thing’: Nick…
    Agent of England star Maro Itoje banned fօr two years after…

    Share this article

    Share

    Αlso visit my hоmepage: betsat

  • Roofing Insights
    7600 Boone Ave N Suite 65, Brooklyn Park, MN 55428
    (612) 380-5285

    2g1c, 2, girls, 1, cup, acrotomophilia, alabama, hot, pocket, alaskan, pipeline, anal, anilingus, anus, apeshit, arsehole, ass, asshole, assmunch, auto, erotic, autoerotic, babeland, baby, batter, baby, juice, ball, gag, ball, gravy, ball, kicking, ball, licking, ball, sack, ball, sucking, bangbros, bangbus, bareback, barely, legal, barenaked, bastard, bastardo, bastinado, bbw, bdsm, beaner, beaners, beaver, cleaver, beaver, lips, beastiality, bestiality, big, black, big, breasts, big, knockers, big, tits, bimbos, birdlock, bitch, bitches, black, cock, blonde, action, blonde, on, blonde, action, blowjob, blow, job, blow, your, load, blue, waffle, blumpkin, bollocks, bondage, boner, boob, boobs, booty, call, brown, showers, brunette, action, bukkake, bulldyke, bullet, vibe, bullshit, bung, hole, bunghole, busty, butt, buttcheeks, butthole, camel, toe, camgirl, camslut, camwhore, carpet, muncher, carpetmuncher, chocolate, rosebuds, cialis, circlejerk, cleveland, steamer, clit, clitoris, clover, clamps, clusterfuck, cock, cocks, coprolagnia, coprophilia, cornhole, coon, coons, creampie, cum, cumming, cumshot, cumshots, cunnilingus, cunt, darkie, date, rape, daterape, deep, throat, deepthroat, dendrophilia, dick, dildo, dingleberry, dingleberries, dirty, pillows, dirty, sanchez, doggie, style, doggiestyle, doggy, style, doggystyle, dog, style, dolcett, domination, dominatrix, dommes, donkey, punch, double, dong, double, penetration, dp, action, dry, hump, dvda, eat, my, ass, ecchi, ejaculation, erotic, erotism, escort, eunuch, fag, faggot, fecal, felch, fellatio, feltch, female, squirting, femdom, figging, fingerbang, fingering, fisting, foot, fetish, footjob, frotting, fuck, fuck, buttons, fuckin, fucking, fucktards, fudge, packer, fudgepacker, futanari, gangbang, gang, bang, gay, sex, genitals, giant, cock, girl, on, girl, on, top, girls, gone, wild, goatcx, goatse, god, damn, gokkun, golden, shower, goodpoop, goo, girl, goregasm, grope, group, sex, g-spot, guro, hand, job, handjob, hard, core, hardcore, hentai, homoerotic, honkey, hooker, horny, hot, carl, hot, chick, how, to, kill, how, to, murder, huge, fat, humping, incest, intercourse, jack, off, jail, bait, jailbait, jelly, donut, jerk, off, jigaboo, jiggaboo, jiggerboo, jizz, juggs, kike, kinbaku, kinkster, kinky, knobbing, leather, restraint, leather, straight, jacket, lemon, party, livesex, lolita, lovemaking, make, me, come, male, squirting, masturbate, masturbating, masturbation, menage, a, trois, milf, missionary, position, mong, motherfucker, mound, of, venus, mr, hands, muff, diver, muffdiving, nambla, nawashi, negro, neonazi, nigga, nigger, nig, nog, nimphomania, nipple, nipples, nsfw, nsfw, images, nude, nudity, nutten, nympho, nymphomania, octopussy, omorashi, one, cup, two, girls, one, guy, one, jar, orgasm, orgy, paedophile, paki, panties, panty, pedobear, pedophile, pegging, penis, phone, sex, piece, of, shit, pikey, pissing, piss, pig, pisspig, playboy, pleasure, chest, pole, smoker, ponyplay, poof, poon, poontang, punany, poop, chute, poopchute, porn, porno, pornography, prince, albert, piercing, pthc, pubes, pussy, queaf, queef, quim, raghead, raging, boner, rape, raping, rapist, rectum, reverse, cowgirl, rimjob, rimming, rosy, palm, rosy, palm, and, her, 5, sisters, rusty, trombone, sadism, santorum, scat, schlong, scissoring, semen, sex, sexcam, sexo, sexy, sexual, sexually, sexuality, shaved, beaver, shaved, pussy, shemale, shibari, shit, shitblimp, shitty, shota, shrimping, skeet, slanteye, slut, s&m, smut, snatch, snowballing, sodomize, sodomy, spastic, spic, splooge, splooge, moose, spooge, spread, legs, spunk, strap, on, strapon, strappado, strip, club, style, doggy, suck, sucks, suicide, girls, sultry, women, swastika, swinger, tainted, love, taste, my, tea, bagging, threesome, throating, thumbzilla, tied, up, tight, white, tit, tits, titties, titty, tongue, in, a, topless, tosser, towelhead, tranny, tribadism, tub, girl, tubgirl, tushy, twat, twink, twinkie, two, girls, one, cup, undressing, upskirt, urethra, play, urophilia, vagina, venus, mound, viagra, vibrator, violet, wand, vorarephilia, voyeur, voyeurweb, voyuer, vulva, wank, wetback, wet, dream, white, power, whore, worldsex, wrapping, men, wrinkled, starfish, xx, xxx, yaoi, yellow, showers, yiffy, zoophilia, 2g1c, 2, girls, 1, cup, acrotomophilia, alabama, hot, pocket, alaskan, pipeline, anal, anilingus, anus, apeshit, arsehole, ass, asshole, assmunch, auto, erotic, autoerotic, babeland, baby, batter, baby, juice, ball, gag, ball, gravy, ball, kicking, ball, licking, ball, sack, ball, sucking, bangbros, bangbus, bareback, barely, legal, barenaked, bastard, bastardo, bastinado, bbw, bdsm, beaner, beaners, beaver, cleaver, beaver, lips, beastiality, bestiality, big, black, big, breasts, big, knockers, big, tits, bimbos, birdlock, bitch, bitches, black, cock, blonde, action, blonde, on, blonde, action, blowjob, blow, job, blow, your, load, blue, waffle, blumpkin, bollocks, bondage, boner, boob, boobs, booty, call, brown, showers, brunette, action, bukkake, bulldyke, bullet, vibe, bullshit, bung, hole, bunghole, busty, butt, buttcheeks, butthole, camel, toe, camgirl, camslut, camwhore, carpet, muncher, carpetmuncher, chocolate, rosebuds, cialis, circlejerk, cleveland, steamer, clit, clitoris, clover, clamps, clusterfuck, cock, cocks, coprolagnia, coprophilia, cornhole, coon, coons, creampie, cum, cumming, cumshot, cumshots, cunnilingus, cunt, darkie, date, rape, daterape, deep, throat, deepthroat, dendrophilia, dick, dildo, dingleberry, dingleberries, dirty, pillows, dirty, sanchez, doggie, style, doggiestyle, doggy, style, doggystyle, dog, style, dolcett, domination, dominatrix, dommes, donkey, punch, double, dong, double, penetration, dp, action, dry, hump, dvda, eat, my, ass, ecchi, ejaculation, erotic, erotism, escort, eunuch, fag, faggot, fecal, felch, fellatio, feltch, female, squirting, femdom, figging, fingerbang, fingering, fisting, foot, fetish, footjob, frotting, fuck, fuck, buttons, fuckin, fucking, fucktards, fudge, packer, fudgepacker, futanari, gangbang, gang, bang, gay, sex, genitals, giant, cock, girl, on, girl, on, top, girls, gone, wild, goatcx, goatse, god, damn, gokkun, golden, shower, goodpoop, goo, girl, goregasm, grope, group, sex, g-spot, guro, hand, job, handjob, hard, core, hardcore, hentai, homoerotic, honkey, hooker, horny, hot, carl, hot, chick, how, to, kill, how, to, murder, huge, fat, humping, incest, intercourse, jack, off, jail, bait, jailbait, jelly, donut, jerk, off, jigaboo, jiggaboo, jiggerboo, jizz, juggs, kike, kinbaku, kinkster, kinky, knobbing, leather, restraint, leather, straight, jacket, lemon, party, livesex, lolita, lovemaking, make, me, come, male, squirting, masturbate, masturbating, masturbation, menage, a, trois, milf, missionary, position, mong, motherfucker, mound, of, venus, mr, hands, muff, diver, muffdiving, nambla, nawashi, negro, neonazi, nigga, nigger, nig, nog, nimphomania, nipple, nipples, nsfw, nsfw, images, nude, nudity, nutten, nympho, nymphomania, octopussy, omorashi, one, cup, two, girls, one, guy, one, jar, orgasm, orgy, paedophile, paki, panties, panty, pedobear, pedophile, pegging, penis, phone, sex, piece, of, shit, pikey, pissing, piss, pig, pisspig, playboy, pleasure, chest, pole, smoker, ponyplay, poof, poon, poontang, punany, poop, chute, poopchute, porn, porno, pornography, prince, albert, piercing, pthc, pubes, pussy, queaf, queef, quim, raghead, raging, boner, rape, raping, rapist, rectum, reverse, cowgirl, rimjob, rimming, rosy, palm, rosy, palm, and, her, 5, sisters, rusty, trombone, sadism, santorum, scat, schlong, scissoring, semen, sex, sexcam, sexo, sexy, sexual, sexually, sexuality, shaved, beaver, shaved, pussy, shemale, shibari, shit, shitblimp, shitty, shota, shrimping, skeet, slanteye, slut, s&m, smut, snatch, snowballing, sodomize, sodomy, spastic, spic, splooge, splooge, moose, spooge, spread, legs, spunk, strap, on, strapon, strappado, strip, club, style, doggy, suck, sucks, suicide, girls, sultry, women, swastika, swinger, tainted, love, taste, my, tea, bagging, threesome, throating, thumbzilla, tied, up, tight, white, tit, tits, titties, titty, tongue, in, a, topless, tosser, towelhead, tranny, tribadism, tub, girl, tubgirl, tushy, twat, twink, twinkie, two, girls, one, cup, undressing, upskirt, urethra, play, urophilia, vagina, venus, mound, viagra, vibrator, violet, wand, vorarephilia, voyeur, voyeurweb, voyuer, vulva, wank, wetback, wet, dream, white, power, whore, worldsex, wrapping, men, wrinkled, starfish, xx, xxx, yaoi, yellow, showers, yiffy, zoophilia,

  • https://filedn.eu/lXvDNJGJo3S0aUrNKUTnNkb/bogin44/research/bogin44-(380).html
    It’s out there in a range of colors, from “champagne” (off-white) to navy.

  • https://filedn.eu/lXvDNJGJo3S0aUrNKUTnNkb/bogin32/research/bogin32-(195).html
    This desert colored costume is perfect if what the bride wants is so that you can wear a color nearer to white.

  • Since I began operating from home, cheap car Auto insurance Las Vegas
    became even more viable. Lesser usage frequently causes reduce insurance expenses.

  • Car Cheap SR22 insurance Orange County CA can easily aid secure your assets in scenario of a case.
    Be sure you have enough responsibility coverage.

  • I don’t know whether it’s just me orr if perhaps everyone else
    encountering problems with your blog. It looks like some off the written text within your posts are running
    off the screen. Can somkeone else please
    comment and let me know if this is happening to them too?

    This might be a issue with my web browser because I’ve had this happen previously.
    Many thanks

    Feel free to visit my web-site :: UFABET

  • Услуга сноса старых частных домов и вывоза мусора в Москве и Подмосковье под ключ от нашей компании. Работаем в указанном регионе, предлагаем услугу снос дома. Наши тарифы ниже рыночных, а выполнение работ гарантируем в течение 24 часов. Бесплатно выезжаем для оценки и консультаций на объект. Звоните нам или оставляйте заявку на сайте для получения подробной информации и расчета стоимости услуг.

  • Услуга сноса старых частных домов и вывоза мусора в Москве и Подмосковье под ключ от нашей компании. Работаем в указанном регионе, предлагаем услугу снос дачного дома цена. Наши тарифы ниже рыночных, а выполнение работ гарантируем в течение 24 часов. Бесплатно выезжаем для оценки и консультаций на объект. Звоните нам или оставляйте заявку на сайте для получения подробной информации и расчета стоимости услуг.

  • Як підвищити ефективність роботи за допомогою косметологічного обладнання

    https://zemits.com.ua/ .

  • Забудьте о низких позициях в поиске! Наше SEO продвижение и оптимизация на заказ https://seosistemy.ru/ выведут ваш сайт в топ, увеличивая его видимость и привлекая потенциальных клиентов. Индивидуальный подход, глубокий анализ ключевых слов, качественное наполнение контентом — мы сделаем всё, чтобы ваш бизнес процветал.

  • Дайте вашему сайту заслуженное место в топе поисковых систем! Наши услуги сео раскрутка на заказ обеспечат максимальную видимость вашего бизнеса в интернете. Персонализированные стратегии, тщательный подбор ключевых слов, оптимизация контента и технические улучшения — всё это для привлечения целевой аудитории и увеличения продаж. Вместе мы поднимем ваш сайт на новый уровень успеха!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *