11.1 Accelerometer
import RPi.GPIO as GPIO
import time
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
from contextlib import closing
import sys
import RPi.GPIO as GPIO
from time import sleep
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.cleanup()
GPIO.setup(22,GPIO.OUT)
GPIO.setup(24,GPIO.OUT)
GPIO.setup(7,GPIO.OUT)
GPIO.setup(11,GPIO.OUT)
r1 = GPIO.PWM(22, 50)
r2 = GPIO.PWM(24, 50)
l1 = GPIO.PWM(11, 50)
l2 = GPIO.PWM(7, 50)
r1.start(0)
l1.start(0)
i=0
def forward1(i) :
if(i<100):
print('forward1')
r1.start(i)
l1.start(i)
l2.stop()
r2.stop()
sleep(0.1)
else :
print('forward2')
r1.ChangeDutyCycle(100)
l1.ChangeDutyCycle(100)
l2.stop()
r2.stop()
def reverse1(i) :
if(i<100):
print('reverse1')
r2.start(i)
l2.start(i)
l1.stop()
r1.stop()
sleep(0.1)
else :
print('reverse2')
r2.ChangeDutyCycle(100)
l2.ChangeDutyCycle(100)
l1.stop()
r1.stop()
def right1(i):
if(i<100):
print('right1')
r2.start(i)
l1.start(i)
sleep(0.1)
l2.stop()
r1.stop()
else :
print('right2')
r2.ChangeDutyCycle(100)
l1.ChangeDutyCycle(100)
l2.stop()
r1.stop()
def left1(i) :
if(i<100):
print('left1')
r1.start(i)
l2.start(i)
sleep(0.1)
l1.stop()
r2.stop()
else :
print('left2')
r1.ChangeDutyCycle(100)
l2.ChangeDutyCycle(100)
l1.stop()
r2.stop()
def stop() :
r1.stop()
l2.stop()
l1.stop()
r2.stop()
from i2clibraries import i2c_adxl345
adxl345=i2c_adxl345.i2c_adxl345(1)
try:
while True:
print(i)
(x,y,z)=adxl345.getAxes()
print(x,y,z)
sleep(0.1)
if(x<-0.2 and x>-1.5 and z<-0.2 and z>-1.5):
forward1(i)
print(i)
i=i+2
elif (x>-0.2 and x<0.2 and y>0.2 and y<1.5):
left1(i)
i=i+2
elif (x>-0.2 and x<0.2 and y<-0.2 and y>-1.5):
right1(i)
i=i+2
elif(x>0.2 and x<1.5 and z<-0.2 and z>-1.5):
reverse1(i)
i=i+2
else:
print("halt")
print(i)
i=0
stop()
except KeyboardInterrupt:
GPIO.cleanup()