Невозможно повернуть двигатель постоянного тока назад, используя Raspberry Pi - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь использовать систему мониторинга посетителей с Raspberry Pi 3 и камерой Pi. В этом я использовал следующие компоненты

  • Raspberry Pi
  • Камера Pi
  • PushКнопка
  • Зуммер
  • Двигатель постоянного тока с IC
  • Светодиод

Я следовал этому уроку, чтобы сделать это https://circuitdigest.com/microcontroller-projects/visitor-monitoring-with-raspberry-pi-and-pi-camera

Но я модифицировал вышеуказанную программу.Я использовал Adafruit Char LCD Library для отображения сообщений. Моя программа на Python выглядит следующим образом:

import RPi.GPIO as gpio
import picamera
import time
from Adafruit_CharLCD import Adafruit_CharLCD

# instantiate lcd and specify pins
lcd = Adafruit_CharLCD(rs=26, en=19,
                       d4=13, d5=6, d6=5, d7=11,
                       cols=16, lines=2)


m11=17
m12=27
led=21
buz=16

button=20

#lcd BCM pin no
RS =26
EN =19
D4 =13
D5 =6
D6 =5
D7 =11

HIGH=1
LOW=0

gpio.setwarnings(False)
gpio.setmode(gpio.BCM)
gpio.setup(RS, gpio.OUT)
gpio.setup(EN, gpio.OUT)
gpio.setup(D4, gpio.OUT)
gpio.setup(D5, gpio.OUT)
gpio.setup(D6, gpio.OUT)
gpio.setup(D7, gpio.OUT)
gpio.setup(led, gpio.OUT)
gpio.setup(buz, gpio.OUT)
gpio.setup(m11, gpio.OUT)
gpio.setup(m12, gpio.OUT)
gpio.setup(button, gpio.IN, pull_up_down=gpio.PUD_UP)
#gpio.setup(button, gpio.IN)
gpio.output(led , 0)
gpio.output(buz , 0)
gpio.output(m11 , 0)
gpio.output(m12 , 0)
data=""

def capture_image():
    lcd.clear()
    lcd.message('Please Wait...')
    data= time.strftime("%d_%b_%Y\%H:%M:%S")
    camera.start_preview()
    time.sleep(5)
    print( data)
    camera.capture('/home/pi/Desktop/Visitors/%s.jpg'%data)
    camera.stop_preview()
    lcd.clear()
    lcd.message('Image Captured\n successfully')
    time.sleep(2)

def gate():
            lcd.clear()
            lcd.message("    Welcome  ")
            gpio.output(m11, 1)
            gpio.output(m12, 0)
            time.sleep(1.5)
            gpio.output(m11, 0)
            gpio.output(m12, 0)
            time.sleep(3)
            gpio.output(m11, 0)
            gpio.output(m12, 1)
            time.sleep(1.5)
            gpio.output(m11, 0)
            gpio.output(m12, 0)
            lcd.clear()
            lcd.message("  Thank You  ")
            time.sleep(2)


lcd.clear()

# display text on LCD display \n = new line
lcd.message('MSD Gurukul \n Welcomes You')
time.sleep(2)
lcd.clear()

lcd.message('Visitor Monitor\nSystem using RPi')
time.sleep(3)
lcd.clear()

camera = picamera.PiCamera()
camera.rotation=180
camera.awb_mode= 'auto'
camera.brightness=55
lcd.clear()
lcd.message(" Please Press \n Button")
time.sleep(2)
try:
    while 1:

            d= time.strftime("%d %b %Y")
            t= time.strftime("%H:%M:%S")
            lcd.clear()
            lcd.message("Time: %s"%t)
            lcd.message("\nDate:%s"%d)
            gpio.output(led, 1)
            if gpio.input(button)==False:
                gpio.output(buz, 1)
                gpio.output(led, 0)
                time.sleep(0.5)
                gpio.output(buz, 0)
                capture_image()
                gate()
            time.sleep(0.5)

except KeyboardInterrupt:
    lcd.clear()    
    lcd.message("Thank You\n Visit Again")
    time.sleep(3)
    gpio.output(led, 0)
##    gpio.cleaup()
finally:
    lcd.clear()
    exit(0)

Все мои компоненты работают нормально. Проблема в том, что, когда я звонил gate(), он открывает ворота (означает впереддвижение работает) Но не удается закрыть его (означает, что обратное движение не работает)

Я подключаю двигатель постоянного тока к выводу GPIO Raspberry Pi № 17,27 (выводы BCM). Пожалуйста, проверьте мой gate() и предложите несколькопомощь.

...