diff --git a/AlphaBot-CARIA/AlphaBot-Assembly-Diagram.pdf b/AlphaBot-CARIA/AlphaBot-Assembly-Diagram.pdf
new file mode 100644
index 0000000..ea67f64
Binary files /dev/null and b/AlphaBot-CARIA/AlphaBot-Assembly-Diagram.pdf differ
diff --git a/AlphaBot-CARIA/AlphaBot-User-Manual.pdf b/AlphaBot-CARIA/AlphaBot-User-Manual.pdf
new file mode 100644
index 0000000..af96e85
Binary files /dev/null and b/AlphaBot-CARIA/AlphaBot-User-Manual.pdf differ
diff --git a/AlphaBot-CARIA/AlphaBot_Schematic.pdf b/AlphaBot-CARIA/AlphaBot_Schematic.pdf
new file mode 100644
index 0000000..f7dd3d9
Binary files /dev/null and b/AlphaBot-CARIA/AlphaBot_Schematic.pdf differ
diff --git a/AlphaBot-CARIA/Pi-python/AlphaBot.py b/AlphaBot-CARIA/Pi-python/AlphaBot.py
new file mode 100644
index 0000000..c3b18c7
--- /dev/null
+++ b/AlphaBot-CARIA/Pi-python/AlphaBot.py
@@ -0,0 +1,82 @@
+import RPi.GPIO as GPIO
+import time
+
+class AlphaBot(object):
+
+ def __init__(self,in1=12,in2=13,ena=6,in3=20,in4=21,enb=26):
+ self.IN1 = in1
+ self.IN2 = in2
+ self.IN3 = in3
+ self.IN4 = in4
+ self.ENA = ena
+ self.ENB = enb
+
+ GPIO.setmode(GPIO.BCM)
+ GPIO.setwarnings(False)
+ GPIO.setup(self.IN1,GPIO.OUT)
+ GPIO.setup(self.IN2,GPIO.OUT)
+ GPIO.setup(self.IN3,GPIO.OUT)
+ GPIO.setup(self.IN4,GPIO.OUT)
+ GPIO.setup(self.ENA,GPIO.OUT)
+ GPIO.setup(self.ENB,GPIO.OUT)
+ self.forward()
+ self.PWMA = GPIO.PWM(self.ENA,500)
+ self.PWMB = GPIO.PWM(self.ENB,500)
+ self.PWMA.start(50)
+ self.PWMB.start(50)
+
+ def forward(self):
+ GPIO.output(self.IN1,GPIO.HIGH)
+ GPIO.output(self.IN2,GPIO.LOW)
+ GPIO.output(self.IN3,GPIO.LOW)
+ GPIO.output(self.IN4,GPIO.HIGH)
+
+ def stop(self):
+ GPIO.output(self.IN1,GPIO.LOW)
+ GPIO.output(self.IN2,GPIO.LOW)
+ GPIO.output(self.IN3,GPIO.LOW)
+ GPIO.output(self.IN4,GPIO.LOW)
+
+ def backward(self):
+ GPIO.output(self.IN1,GPIO.LOW)
+ GPIO.output(self.IN2,GPIO.HIGH)
+ GPIO.output(self.IN3,GPIO.HIGH)
+ GPIO.output(self.IN4,GPIO.LOW)
+
+ def left(self):
+ GPIO.output(self.IN1,GPIO.LOW)
+ GPIO.output(self.IN2,GPIO.LOW)
+ GPIO.output(self.IN3,GPIO.LOW)
+ GPIO.output(self.IN4,GPIO.HIGH)
+
+ def right(self):
+ GPIO.output(self.IN1,GPIO.HIGH)
+ GPIO.output(self.IN2,GPIO.LOW)
+ GPIO.output(self.IN3,GPIO.LOW)
+ GPIO.output(self.IN4,GPIO.LOW)
+
+ def setPWMA(self,value):
+ self.PWMA.ChangeDutyCycle(value)
+
+ def setPWMB(self,value):
+ self.PWMB.ChangeDutyCycle(value)
+
+ def setMotor(self, left, right):
+ if((right >= 0) and (right <= 100)):
+ GPIO.output(self.IN1,GPIO.HIGH)
+ GPIO.output(self.IN2,GPIO.LOW)
+ self.PWMA.ChangeDutyCycle(right)
+ elif((right < 0) and (right >= -100)):
+ GPIO.output(self.IN1,GPIO.LOW)
+ GPIO.output(self.IN2,GPIO.HIGH)
+ self.PWMA.ChangeDutyCycle(0 - right)
+ if((left >= 0) and (left <= 100)):
+ GPIO.output(self.IN3,GPIO.HIGH)
+ GPIO.output(self.IN4,GPIO.LOW)
+ self.PWMB.ChangeDutyCycle(left)
+ elif((left < 0) and (left >= -100)):
+ GPIO.output(self.IN3,GPIO.LOW)
+ GPIO.output(self.IN4,GPIO.HIGH)
+ self.PWMB.ChangeDutyCycle(0 - left)
+
+
diff --git a/AlphaBot-CARIA/Pi-python/Infrared_Line_Tracking.py b/AlphaBot-CARIA/Pi-python/Infrared_Line_Tracking.py
new file mode 100644
index 0000000..d1ff4fd
--- /dev/null
+++ b/AlphaBot-CARIA/Pi-python/Infrared_Line_Tracking.py
@@ -0,0 +1,239 @@
+#!/usr/bin/python
+# -*- coding:utf-8 -*-
+import RPi.GPIO as GPIO
+import time
+
+CS = 5
+Clock = 25
+Address = 24
+DataOut = 23
+
+class TRSensor(object):
+ def __init__(self,numSensors = 5):
+ self.numSensors = numSensors
+ self.calibratedMin = [0] * self.numSensors
+ self.calibratedMax = [1023] * self.numSensors
+ self.last_value = 0
+
+ """
+ Reads the sensor values into an array. There *MUST* be space
+ for as many values as there were sensors specified in the constructor.
+ Example usage:
+ unsigned int sensor_values[8];
+ sensors.read(sensor_values);
+ The values returned are a measure of the reflectance in abstract units,
+ with higher values corresponding to lower reflectance (e.g. a black
+ surface or a void).
+ """
+ def AnalogRead(self):
+ value = [0,0,0,0,0,0]
+ #Read Channel0~channel4 AD value
+ for j in range(0,6):
+ GPIO.output(CS, GPIO.LOW)
+ for i in range(0,4):
+ #sent 4-bit Address
+ if(((j) >> (3 - i)) & 0x01):
+ GPIO.output(Address,GPIO.HIGH)
+ else:
+ GPIO.output(Address,GPIO.LOW)
+ #read MSB 4-bit data
+ value[j] <<= 1
+ if(GPIO.input(DataOut)):
+ value[j] |= 0x01
+ GPIO.output(Clock,GPIO.HIGH)
+ GPIO.output(Clock,GPIO.LOW)
+ for i in range(0,6):
+ #read LSB 8-bit data
+ value[j] <<= 1
+ if(GPIO.input(DataOut)):
+ value[j] |= 0x01
+ GPIO.output(Clock,GPIO.HIGH)
+ GPIO.output(Clock,GPIO.LOW)
+ #no mean ,just delay
+ for i in range(0,6):
+ GPIO.output(Clock,GPIO.HIGH)
+ GPIO.output(Clock,GPIO.LOW)
+# time.sleep(0.0001)
+ GPIO.output(CS,GPIO.HIGH)
+ return value[1:]
+
+ """
+ Reads the sensors 10 times and uses the results for
+ calibration. The sensor values are not returned; instead, the
+ maximum and minimum values found over time are stored internally
+ and used for the readCalibrated() method.
+ """
+ def calibrate(self):
+ max_sensor_values = [0]*self.numSensors
+ min_sensor_values = [0]*self.numSensors
+ for j in range(0,10):
+
+ sensor_values = self.AnalogRead();
+
+ for i in range(0,self.numSensors):
+
+ # set the max we found THIS time
+ if((j == 0) or max_sensor_values[i] < sensor_values[i]):
+ max_sensor_values[i] = sensor_values[i]
+
+ # set the min we found THIS time
+ if((j == 0) or min_sensor_values[i] > sensor_values[i]):
+ min_sensor_values[i] = sensor_values[i]
+
+ # record the min and max calibration values
+ for i in range(0,self.numSensors):
+ if(min_sensor_values[i] > self.calibratedMin[i]):
+ self.calibratedMin[i] = min_sensor_values[i]
+ if(max_sensor_values[i] < self.calibratedMax[i]):
+ self.calibratedMax[i] = max_sensor_values[i]
+
+ """
+ Returns values calibrated to a value between 0 and 1000, where
+ 0 corresponds to the minimum value read by calibrate() and 1000
+ corresponds to the maximum value. Calibration values are
+ stored separately for each sensor, so that differences in the
+ sensors are accounted for automatically.
+ """
+ def readCalibrated(self):
+ value = 0
+ #read the needed values
+ sensor_values = self.AnalogRead();
+
+ for i in range (0,self.numSensors):
+
+ denominator = self.calibratedMax[i] - self.calibratedMin[i]
+
+ if(denominator != 0):
+ value = (sensor_values[i] - self.calibratedMin[i])* 1000 / denominator
+
+ if(value < 0):
+ value = 0
+ elif(value > 1000):
+ value = 1000
+
+ sensor_values[i] = value
+
+ print("readCalibrated",sensor_values)
+ return sensor_values
+
+ """
+ Operates the same as read calibrated, but also returns an
+ estimated position of the robot with respect to a line. The
+ estimate is made using a weighted average of the sensor indices
+ multiplied by 1000, so that a return value of 0 indicates that
+ the line is directly below sensor 0, a return value of 1000
+ indicates that the line is directly below sensor 1, 2000
+ indicates that it's below sensor 2000, etc. Intermediate
+ values indicate that the line is between two sensors. The
+ formula is:
+
+ 0*value0 + 1000*value1 + 2000*value2 + ...
+ --------------------------------------------
+ value0 + value1 + value2 + ...
+
+ By default, this function assumes a dark line (high values)
+ surrounded by white (low values). If your line is light on
+ black, set the optional second argument white_line to true. In
+ this case, each sensor value will be replaced by (1000-value)
+ before the averaging.
+ """
+ def readLine(self, white_line = 0):
+
+ sensor_values = self.readCalibrated()
+ avg = 0
+ sum = 0
+ on_line = 0
+ for i in range(0,self.numSensors):
+ value = sensor_values[i]
+ if(white_line):
+ value = 1000-value
+ # keep track of whether we see the line at all
+ if(value > 200):
+ on_line = 1
+
+ # only average in values that are above a noise threshold
+ if(value > 50):
+ avg += value * (i * 1000); # this is for the weighted total,
+ sum += value; #this is for the denominator
+
+ if(on_line != 1):
+ # If it last read to the left of center, return 0.
+ if(self.last_value < (self.numSensors - 1)*1000/2):
+ #print("left")
+ return 0;
+
+ # If it last read to the right of center, return the max.
+ else:
+ #print("right")
+ return (self.numSensors - 1)*1000
+
+ self.last_value = avg/sum
+
+ return self.last_value
+
+GPIO.setmode(GPIO.BCM)
+GPIO.setwarnings(False)
+GPIO.setup(Clock,GPIO.OUT)
+GPIO.setup(Address,GPIO.OUT)
+GPIO.setup(CS,GPIO.OUT)
+GPIO.setup(DataOut,GPIO.IN,GPIO.PUD_UP)
+
+# Simple example prints accel/mag data once per second:
+if __name__ == '__main__':
+
+ from AlphaBot import AlphaBot
+
+ maximum = 35;
+ integral = 0;
+ last_proportional = 0
+
+ TR = TRSensor()
+ Ab = AlphaBot()
+ Ab.stop()
+ print("Line follow Example")
+ time.sleep(0.5)
+ for i in range(0,400):
+ TR.calibrate()
+ print(i)
+ print(TR.calibratedMin)
+ print(TR.calibratedMax)
+ time.sleep(0.5)
+ Ab.backward()
+ while True:
+ position = TR.readLine()
+ #print(position)
+
+ # The "proportional" term should be 0 when we are on the line.
+ proportional = position - 2000
+
+ # Compute the derivative (change) and integral (sum) of the position.
+ derivative = proportional - last_proportional
+ integral += proportional
+
+ # Remember the last position.
+ last_proportional = proportional
+
+ '''
+ // Compute the difference between the two motor power settings,
+ // m1 - m2. If this is a positive number the robot will turn
+ // to the right. If it is a negative number, the robot will
+ // turn to the left, and the magnitude of the number determines
+ // the sharpness of the turn. You can adjust the constants by which
+ // the proportional, integral, and derivative terms are multiplied to
+ // improve performance.
+ '''
+ power_difference = proportional/25 + derivative/100 #+ integral/1000;
+
+ if (power_difference > maximum):
+ power_difference = maximum
+ if (power_difference < - maximum):
+ power_difference = - maximum
+ print(position,power_difference)
+ if (power_difference < 0):
+ Ab.setPWMB(maximum + power_difference)
+ Ab.setPWMA(maximum);
+ else:
+ Ab.setPWMB(maximum);
+ Ab.setPWMA(maximum - power_difference)
+
+
diff --git a/AlphaBot-CARIA/Pi-python/Infrared_Obstacle_Avoidance.py b/AlphaBot-CARIA/Pi-python/Infrared_Obstacle_Avoidance.py
new file mode 100644
index 0000000..6de6301
--- /dev/null
+++ b/AlphaBot-CARIA/Pi-python/Infrared_Obstacle_Avoidance.py
@@ -0,0 +1,38 @@
+import RPi.GPIO as GPIO
+import time
+from AlphaBot import AlphaBot
+
+Ab = AlphaBot()
+
+DR = 16
+DL = 19
+
+GPIO.setmode(GPIO.BCM)
+GPIO.setwarnings(False)
+GPIO.setup(DR,GPIO.IN,GPIO.PUD_UP)
+GPIO.setup(DL,GPIO.IN,GPIO.PUD_UP)
+
+try:
+ while True:
+ DR_status = GPIO.input(DR)
+ DL_status = GPIO.input(DL)
+ if((DL_status == 1) and (DR_status == 1)):
+ Ab.forward()
+ print("forward")
+ elif((DL_status == 1) and (DR_status == 0)):
+ Ab.left()
+ print("left")
+ elif((DL_status == 0) and (DR_status == 1)):
+ Ab.right()
+ print("right")
+ else:
+ Ab.backward()
+ time.sleep(0.2)
+ Ab.left()
+ time.sleep(0.2)
+ Ab.stop()
+ print("backward")
+
+except KeyboardInterrupt:
+ GPIO.cleanup();
+
diff --git a/AlphaBot-CARIA/Pi-python/Infrared_Remote_Control.py b/AlphaBot-CARIA/Pi-python/Infrared_Remote_Control.py
new file mode 100644
index 0000000..8b03cc0
--- /dev/null
+++ b/AlphaBot-CARIA/Pi-python/Infrared_Remote_Control.py
@@ -0,0 +1,99 @@
+import RPi.GPIO as GPIO
+import time
+from AlphaBot import AlphaBot
+
+Ab = AlphaBot()
+
+IR = 18
+PWM = 50
+n=0
+
+GPIO.setmode(GPIO.BCM)
+GPIO.setwarnings(False)
+GPIO.setup(IR,GPIO.IN,GPIO.PUD_UP)
+
+
+def getkey():
+ if GPIO.input(IR) == 0:
+ count = 0
+ while GPIO.input(IR) == 0 and count < 200: #9ms
+ count += 1
+ time.sleep(0.00006)
+
+ count = 0
+ while GPIO.input(IR) == 1 and count < 80: #4.5ms
+ count += 1
+ time.sleep(0.00006)
+
+ idx = 0
+ cnt = 0
+ data = [0,0,0,0]
+ for i in range(0,32):
+ count = 0
+ while GPIO.input(IR) == 0 and count < 15: #0.56ms
+ count += 1
+ time.sleep(0.00006)
+
+ count = 0
+ while GPIO.input(IR) == 1 and count < 40: #0: 0.56mx
+ count += 1 #1: 1.69ms
+ time.sleep(0.00006)
+
+ if count > 8:
+ data[idx] |= 1< -1):
+ PWM = PWM - 10
+ Ab.setPWMA(PWM)
+ Ab.setPWMB(PWM)
+ print(PWM)
+ else:
+ n += 1
+ if n > 20000:
+ n = 0
+ Ab.stop()
+except KeyboardInterrupt:
+ GPIO.cleanup();
+
diff --git a/AlphaBot-CARIA/Pi-python/Infrared_Tracking_Objects.py b/AlphaBot-CARIA/Pi-python/Infrared_Tracking_Objects.py
new file mode 100644
index 0000000..4b2b37e
--- /dev/null
+++ b/AlphaBot-CARIA/Pi-python/Infrared_Tracking_Objects.py
@@ -0,0 +1,38 @@
+import RPi.GPIO as GPIO
+import time
+from AlphaBot import AlphaBot
+import smbus
+
+Ab = AlphaBot()
+
+DR = 16
+DL = 19
+
+
+GPIO.setmode(GPIO.BCM)
+GPIO.setwarnings(False)
+GPIO.setup(DR,GPIO.IN,GPIO.PUD_UP)
+GPIO.setup(DL,GPIO.IN,GPIO.PUD_UP)
+
+Ab.stop()
+try:
+ while True:
+
+ DR_status = GPIO.input(DR)
+ DL_status = GPIO.input(DL)
+ if((DL_status == 0) and (DR_status == 0)):
+ Ab.forward()
+ print("forward")
+ elif((DL_status == 1) and (DR_status == 0)):
+ Ab.right()
+ print("right")
+ elif((DL_status == 0) and (DR_status == 1)):
+ Ab.left()
+ print("left")
+ else:
+ Ab.stop()
+ print("stop")
+
+except KeyboardInterrupt:
+ GPIO.cleanup();
+
diff --git a/AlphaBot-CARIA/Pi-python/Ultrasonic_Obstacle_Avoidance.py b/AlphaBot-CARIA/Pi-python/Ultrasonic_Obstacle_Avoidance.py
new file mode 100644
index 0000000..4b26e22
--- /dev/null
+++ b/AlphaBot-CARIA/Pi-python/Ultrasonic_Obstacle_Avoidance.py
@@ -0,0 +1,73 @@
+import RPi.GPIO as GPIO
+import time
+from AlphaBot import AlphaBot
+
+SERVO = 27
+TRIG = 17
+ECHO = 5
+
+Ab = AlphaBot()
+
+GPIO.setmode(GPIO.BCM)
+GPIO.setwarnings(False)
+GPIO.setup(SERVO, GPIO.OUT, initial=GPIO.LOW)
+GPIO.setup(TRIG,GPIO.OUT,initial=GPIO.LOW)
+GPIO.setup(ECHO,GPIO.IN)
+p = GPIO.PWM(SERVO,50)
+p.start(0)
+
+def ServoAngle(angle):
+ p.ChangeDutyCycle(2.5 + 10.0 * angle / 180)
+
+def Distance():
+ GPIO.output(TRIG,GPIO.HIGH)
+ time.sleep(0.000015)
+ GPIO.output(TRIG,GPIO.LOW)
+ while not GPIO.input(ECHO):
+ pass
+ t1 = time.time()
+ while GPIO.input(ECHO):
+ pass
+ t2 = time.time()
+ return (t2-t1)*34000/2
+
+ServoAngle(90)
+print("Ultrasonic_Obstacle_Avoidance")
+try:
+ while True:
+ middleDistance = Distance()
+ print("MiddleDistance = %0.2f cm"%middleDistance)
+ if middleDistance <= 20:
+ Ab.stop()
+# time.sleep(0.5)
+ ServoAngle(5)
+ time.sleep(1)
+ rightDistance = Distance()
+ print("RightDistance = %0.2f cm"%rightDistance)
+# time.sleep(0.5)
+ ServoAngle(180)
+ time.sleep(1)
+ leftDistance = Distance()
+ print("LeftDistance = %0.2f cm"%leftDistance)
+# time.sleep(0.5)
+ ServoAngle(90)
+ time.sleep(1)
+ if rightDistance <20 and leftDistance < 20:
+ Ab.backward()
+ time.sleep(0.3)
+ Ab.stop()
+ elif rightDistance >= leftDistance:
+ Ab.right()
+ time.sleep(0.3)
+ Ab.stop()
+ else:
+ Ab.left()
+ time.sleep(0.3)
+ Ab.stop()
+ time.sleep(0.3)
+ else:
+ Ab.forward()
+ time.sleep(0.02)
+
+except KeyboardInterrupt:
+ GPIO.cleanup();
diff --git a/AlphaBot-CARIA/Pi-python/Ultrasonic_Ranging.py b/AlphaBot-CARIA/Pi-python/Ultrasonic_Ranging.py
new file mode 100644
index 0000000..29cbe67
--- /dev/null
+++ b/AlphaBot-CARIA/Pi-python/Ultrasonic_Ranging.py
@@ -0,0 +1,30 @@
+import RPi.GPIO as GPIO
+import time
+
+TRIG = 17
+ECHO = 5
+
+GPIO.setmode(GPIO.BCM)
+GPIO.setwarnings(False)
+GPIO.setup(TRIG,GPIO.OUT,initial=GPIO.LOW)
+GPIO.setup(ECHO,GPIO.IN)
+
+def dist():
+ GPIO.output(TRIG,GPIO.HIGH)
+ time.sleep(0.000015)
+ GPIO.output(TRIG,GPIO.LOW)
+ while not GPIO.input(ECHO):
+ pass
+ t1 = time.time()
+ while GPIO.input(ECHO):
+ pass
+ t2 = time.time()
+ return (t2-t1)*34000/2
+
+try:
+ while True:
+ print("HELLO")
+ print("Distance:%0.2f cm" % dist())
+ time.sleep(1)
+except KeyboardInterrupt:
+ GPIO.cleanup()
diff --git a/DBCARIA.sql b/DB/DBCARIA.sql
similarity index 100%
rename from DBCARIA.sql
rename to DB/DBCARIA.sql
diff --git a/CARIA.sql b/DB/UserWebsite.sql
similarity index 99%
rename from CARIA.sql
rename to DB/UserWebsite.sql
index 21679ea..ff2b935 100644
--- a/CARIA.sql
+++ b/DB/UserWebsite.sql
@@ -1,41 +1,41 @@
-use CARIA;
-#------------------------------------------------------------
-# Insertions de Données
-#------------------------------------------------------------
-
-INSERT INTO Client (dateenregistre,privilege,pseudo, prenom, nom, sexe, age, adresse, mdp, adressemail, permis,imageclient)
-VALUES
-('2016-09-12' ,'1', 'sa' , 'sa' , 'pc' , 'HOMME','20' , 'sa' , '382e0360e4eb7b70034fbaa69bec5786' , 'sa@gmail.com' ,'0', '/images/avatars/img_user.jpg'),
-('2016-09-12' ,'1', 'PAPI91' , 'FLORIAN' , 'ARBITA' , 'HOMME','17' , '3 RUE PITI' , '83ea007bfdd589f29b820552b3f94260' , 'PAPI@gmail.com' ,'0', '/images/avatars/img_user1.jpg'),
-('2016-10-05' ,'2', 'TATA85' , 'JANNE' , 'MORINA' , 'FEMME','5' , '78 RUE PARI' , '01750feaaf112c40293ac49b658b12ab' , 'TATA@gmail.com' ,'1', '/images/avatars/img_user1.jpg'),
-('2016-11-03' ,'2', 'MODR4' , 'DAVID' , 'DAROP' , 'HOMME','45' , '65 RUE PIORI' , '81df18ab2fce0c63561642e298347e5b' , 'MODR@gmail.com' ,'4', '/images/avatars/img_user1.jpg'),
-('2016-06-25' ,'2', 'ALLOO6' , 'GEREMY' , 'MILES' , 'HOMME','14' , '6 RUE NIOLO' , '83ea007bfdd589f29b820552b3f94260' , 'ALLO@gmail.com' ,'2', '/images/avatars/img_user1.jpg'),
-('2016-05-10' ,'2', 'MAMA23' , 'FLORIANE', 'BOLON' , 'FEMME','25' , '1 RUE ROB' , '01750feaaf112c40293ac49b658b12ab' , 'MAMA@gmail.com' ,'1', '/images/avatars/img_user1.jpg'),
-('2016-07-01' ,'2', 'BIBI' , 'EMILIE' , 'SIRANY' , 'FEMME','6' , 'MAISON DU CLOS' , 'd74c404f01c1e3c127118a8c1fc81212' , 'BIBI@gmail.com' ,'0', '/images/avatars/img_user1.jpg'),
-('2016-09-11' ,'2', 'PIOUPIOU' , 'FLORA' , 'CERINA' , 'FEMME','15' , 'ALLE DU RUIS' , '7b5550eae68b75c98a58881cb968c6ff' , 'PIOU@gmail.com' ,'0', '/images/avatars/img_user1.jpg'),
-('2016-09-05' ,'2', 'BANANA987', 'LUCY' , 'CARELI' , 'FEMME','18' , '9 MER DU CIEL' , '01750feaaf112c40293ac49b658b12ab' , 'BANA@gmail.com' ,'0', '/images/avatars/img_user1.jpg'),
-('2016-09-30' ,'2', 'RARA' , 'SOPHIE' , 'BENIC' , 'FEMME','26' , 'CREUX DE L''HIRONDELLE' , 'dc6accf0ee16c9dbf4daf2b81c1e7fd4' , 'RARA@gmail.com' ,'1', '/images/avatars/img_user1.jpg'),
-('2017-05-29' ,'2', 'DARKY91' , 'JONHATAN' , 'MOITILE' , 'HOMME','5' , '198 AVENUE DU GENERAL' , 'b54637201175346cc78ec20fa2718b2f' , 'darky@gmail.com' ,'2', '/images/avatars/img_user1.jpg'),
-('2017-04-05' ,'2', 'DAMI85' , 'THOMAS' , 'NIGOLE' , 'HOMME','5' , '35 RUE DE LA RIVIIERE' , 'b2ac9acf20fa3711eb6c8b00734adbde' , 'darky@gmail.com' ,'1', DEFAULT),
-('2017-02-25' ,'2', 'FOFO36' , 'REMY' , 'MINONY' , 'HOMME','5' , '01 AVENUE DE L''IMPASSE DU CREUX' , '71b14f0cefc1b25455c3ca7c22a80473' , 'FOFO@gmail.com' ,'3', '/images/avatars/img_user1.jpg'),
-('2017-03-14' ,'2', 'MIBO466' , 'OLIVIA' , 'MOITILE' , 'FEMME','5' , '36 BIS ALLEE DE L''ETANG DE MILLE LIEUX' , '857692b439598675d6f89db000a1dc0a' , 'MIBO@gmail.com' ,'4', '/images/avatars/img_user1.jpg'),
-('2017-01-09' ,'2', 'BIIIBBBBOOPOPIL' , 'SAMADOUDOURELIE' , 'KILOPANAPONIKAT' , 'HOMME','100' , '325 RUE DE PARIS, 3 EME ARRONDISSEMENT , BRUXELLE' , '52b5dd8f28c934b7a4a3fd3d67835cd8' , 'BIIIBBBBOOPOPIL@yahoo.com' ,'7', DEFAULT);
-
-
-INSERT INTO Voiture (privilege, prenom, nom, age, galop, sexe, adressemail,mdp)
-VALUES
-('1' , 'sa' , 'sa' ,'20', '2' , 'HOMME' , 'sa@gmail.com' , 'P@ssword'),
-('1' , 'FLORIAN' , 'ARBITA' ,'18', '3' , 'HOMME' , 'farbita@gmail.com' , 'AZERTY' ),
-('2' , 'JEAN' , 'DURILE' ,'25', '7' , 'HOMME' ,'jdurile@gmail.com' , '123' ),
-('2' , 'REMY' , 'LIBY' ,'43', '6' , 'HOMME' ,'rliby@gmail.com' , '321' ),
-('2' , 'SOPHIA' , 'CERIA' ,'29', '8' , 'FEMME' ,'sceria@gmail.com' , 'qwerty' ),
-('2' , 'FLORA' , 'DUPUIS' ,'36', '4' , 'FEMME' ,'fdupuis@gmail.com' , 'aqwzsx' ),
-('2' , 'MEGANE' , 'CERIA' ,'29', '5' , 'FEMME' ,'sceria@gmail.com' , 'wxcvbn' ),
-('2' , 'DOMINIQUE' , 'PLUTIE' ,'64', '7' , 'HOMME' ,'dplutie@gmail.com' , '2017' ),
-('2' , 'KEVIN' , 'LOPIT' ,'35', '4' , 'HOMME' ,'klopit@gmail.com' , 'azerty123' ),
-('2' , 'JONATHAN' , 'LIKY' ,'29', '8' , 'HOMME' ,'mimi@gmail.com' , 'tyu4u566' ),
-('1' , 'BENJAMIN' , 'DOMINAK' ,'36', '4' , 'HOMME' ,'pilix@gmail.com' , 'gs12sfg' ),
-('2' , 'OLIVIA' , 'XIJIRA' ,'29', '8' , 'FEMME' ,'nathalia@gmail.com' , 'bvc9d65er' ),
-('2' , 'DOMINIQUE' , 'MANAPLA' ,'64', '7' , 'FEMME' ,'titineau@gmail.com' , '78hyh789' ),
-('1' , 'JEAN-PIERE' , 'JUDUKI' ,'35', '9' , 'HOMME' ,'mimome@gmail.com' , 'vf54vfdv' ),
+use CARIA;
+#------------------------------------------------------------
+# Insertions de Données
+#------------------------------------------------------------
+
+INSERT INTO Client (dateenregistre,privilege,pseudo, prenom, nom, sexe, age, adresse, mdp, adressemail, permis,imageclient)
+VALUES
+('2016-09-12' ,'1', 'sa' , 'sa' , 'pc' , 'HOMME','20' , 'sa' , '382e0360e4eb7b70034fbaa69bec5786' , 'sa@gmail.com' ,'0', '/images/avatars/img_user.jpg'),
+('2016-09-12' ,'1', 'PAPI91' , 'FLORIAN' , 'ARBITA' , 'HOMME','17' , '3 RUE PITI' , '83ea007bfdd589f29b820552b3f94260' , 'PAPI@gmail.com' ,'0', '/images/avatars/img_user1.jpg'),
+('2016-10-05' ,'2', 'TATA85' , 'JANNE' , 'MORINA' , 'FEMME','5' , '78 RUE PARI' , '01750feaaf112c40293ac49b658b12ab' , 'TATA@gmail.com' ,'1', '/images/avatars/img_user1.jpg'),
+('2016-11-03' ,'2', 'MODR4' , 'DAVID' , 'DAROP' , 'HOMME','45' , '65 RUE PIORI' , '81df18ab2fce0c63561642e298347e5b' , 'MODR@gmail.com' ,'4', '/images/avatars/img_user1.jpg'),
+('2016-06-25' ,'2', 'ALLOO6' , 'GEREMY' , 'MILES' , 'HOMME','14' , '6 RUE NIOLO' , '83ea007bfdd589f29b820552b3f94260' , 'ALLO@gmail.com' ,'2', '/images/avatars/img_user1.jpg'),
+('2016-05-10' ,'2', 'MAMA23' , 'FLORIANE', 'BOLON' , 'FEMME','25' , '1 RUE ROB' , '01750feaaf112c40293ac49b658b12ab' , 'MAMA@gmail.com' ,'1', '/images/avatars/img_user1.jpg'),
+('2016-07-01' ,'2', 'BIBI' , 'EMILIE' , 'SIRANY' , 'FEMME','6' , 'MAISON DU CLOS' , 'd74c404f01c1e3c127118a8c1fc81212' , 'BIBI@gmail.com' ,'0', '/images/avatars/img_user1.jpg'),
+('2016-09-11' ,'2', 'PIOUPIOU' , 'FLORA' , 'CERINA' , 'FEMME','15' , 'ALLE DU RUIS' , '7b5550eae68b75c98a58881cb968c6ff' , 'PIOU@gmail.com' ,'0', '/images/avatars/img_user1.jpg'),
+('2016-09-05' ,'2', 'BANANA987', 'LUCY' , 'CARELI' , 'FEMME','18' , '9 MER DU CIEL' , '01750feaaf112c40293ac49b658b12ab' , 'BANA@gmail.com' ,'0', '/images/avatars/img_user1.jpg'),
+('2016-09-30' ,'2', 'RARA' , 'SOPHIE' , 'BENIC' , 'FEMME','26' , 'CREUX DE L''HIRONDELLE' , 'dc6accf0ee16c9dbf4daf2b81c1e7fd4' , 'RARA@gmail.com' ,'1', '/images/avatars/img_user1.jpg'),
+('2017-05-29' ,'2', 'DARKY91' , 'JONHATAN' , 'MOITILE' , 'HOMME','5' , '198 AVENUE DU GENERAL' , 'b54637201175346cc78ec20fa2718b2f' , 'darky@gmail.com' ,'2', '/images/avatars/img_user1.jpg'),
+('2017-04-05' ,'2', 'DAMI85' , 'THOMAS' , 'NIGOLE' , 'HOMME','5' , '35 RUE DE LA RIVIIERE' , 'b2ac9acf20fa3711eb6c8b00734adbde' , 'darky@gmail.com' ,'1', DEFAULT),
+('2017-02-25' ,'2', 'FOFO36' , 'REMY' , 'MINONY' , 'HOMME','5' , '01 AVENUE DE L''IMPASSE DU CREUX' , '71b14f0cefc1b25455c3ca7c22a80473' , 'FOFO@gmail.com' ,'3', '/images/avatars/img_user1.jpg'),
+('2017-03-14' ,'2', 'MIBO466' , 'OLIVIA' , 'MOITILE' , 'FEMME','5' , '36 BIS ALLEE DE L''ETANG DE MILLE LIEUX' , '857692b439598675d6f89db000a1dc0a' , 'MIBO@gmail.com' ,'4', '/images/avatars/img_user1.jpg'),
+('2017-01-09' ,'2', 'BIIIBBBBOOPOPIL' , 'SAMADOUDOURELIE' , 'KILOPANAPONIKAT' , 'HOMME','100' , '325 RUE DE PARIS, 3 EME ARRONDISSEMENT , BRUXELLE' , '52b5dd8f28c934b7a4a3fd3d67835cd8' , 'BIIIBBBBOOPOPIL@yahoo.com' ,'7', DEFAULT);
+
+
+INSERT INTO Voiture (privilege, prenom, nom, age, galop, sexe, adressemail,mdp)
+VALUES
+('1' , 'sa' , 'sa' ,'20', '2' , 'HOMME' , 'sa@gmail.com' , 'P@ssword'),
+('1' , 'FLORIAN' , 'ARBITA' ,'18', '3' , 'HOMME' , 'farbita@gmail.com' , 'AZERTY' ),
+('2' , 'JEAN' , 'DURILE' ,'25', '7' , 'HOMME' ,'jdurile@gmail.com' , '123' ),
+('2' , 'REMY' , 'LIBY' ,'43', '6' , 'HOMME' ,'rliby@gmail.com' , '321' ),
+('2' , 'SOPHIA' , 'CERIA' ,'29', '8' , 'FEMME' ,'sceria@gmail.com' , 'qwerty' ),
+('2' , 'FLORA' , 'DUPUIS' ,'36', '4' , 'FEMME' ,'fdupuis@gmail.com' , 'aqwzsx' ),
+('2' , 'MEGANE' , 'CERIA' ,'29', '5' , 'FEMME' ,'sceria@gmail.com' , 'wxcvbn' ),
+('2' , 'DOMINIQUE' , 'PLUTIE' ,'64', '7' , 'HOMME' ,'dplutie@gmail.com' , '2017' ),
+('2' , 'KEVIN' , 'LOPIT' ,'35', '4' , 'HOMME' ,'klopit@gmail.com' , 'azerty123' ),
+('2' , 'JONATHAN' , 'LIKY' ,'29', '8' , 'HOMME' ,'mimi@gmail.com' , 'tyu4u566' ),
+('1' , 'BENJAMIN' , 'DOMINAK' ,'36', '4' , 'HOMME' ,'pilix@gmail.com' , 'gs12sfg' ),
+('2' , 'OLIVIA' , 'XIJIRA' ,'29', '8' , 'FEMME' ,'nathalia@gmail.com' , 'bvc9d65er' ),
+('2' , 'DOMINIQUE' , 'MANAPLA' ,'64', '7' , 'FEMME' ,'titineau@gmail.com' , '78hyh789' ),
+('1' , 'JEAN-PIERE' , 'JUDUKI' ,'35', '9' , 'HOMME' ,'mimome@gmail.com' , 'vf54vfdv' ),
('2', 'SAMADOULOURELIE', 'KILOFANAPONIKAE' ,'100', '9' , 'FEMME' ,'BARIBOULBOPOPIL@yahoo.com' , 'F%F53&D96DF!FDS' );
\ No newline at end of file
diff --git a/IA/IA-Tuto-YT.url b/IA/IA-Tuto-YT.url
new file mode 100644
index 0000000..41d34f0
--- /dev/null
+++ b/IA/IA-Tuto-YT.url
@@ -0,0 +1,5 @@
+[{000214A0-0000-0000-C000-000000000046}]
+Prop3=19,11
+[InternetShortcut]
+IDList=
+URL=https://www.youtube.com/watch?v=-3xbAkCWJCc&list=PLALfJegMRGp2dJh-n1EVw2ESAUY-Et9KE
diff --git a/IA/Tuto.url b/IA/Tuto.url
new file mode 100644
index 0000000..752c715
--- /dev/null
+++ b/IA/Tuto.url
@@ -0,0 +1,5 @@
+[{000214A0-0000-0000-C000-000000000046}]
+Prop3=19,11
+[InternetShortcut]
+IDList=
+URL=https://github.com/L42Project/Tutoriels
diff --git a/IA/Tutoriels-master.zip b/IA/Tutoriels-master.zip
new file mode 100644
index 0000000..4dfd21e
Binary files /dev/null and b/IA/Tutoriels-master.zip differ
diff --git a/IA/haarcascades.url b/IA/haarcascades.url
new file mode 100644
index 0000000..3bf9e17
--- /dev/null
+++ b/IA/haarcascades.url
@@ -0,0 +1,5 @@
+[{000214A0-0000-0000-C000-000000000046}]
+Prop3=19,11
+[InternetShortcut]
+IDList=
+URL=https://github.com/opencv/opencv/tree/master/data/haarcascades
diff --git a/connexion.php b/UserWebSite/connexion.php
similarity index 96%
rename from connexion.php
rename to UserWebSite/connexion.php
index 0a2511a..5ee35bc 100644
--- a/connexion.php
+++ b/UserWebSite/connexion.php
@@ -1,9 +1,9 @@
-
-
-
+
+
+
diff --git a/controleur/membre/espace/index.php b/UserWebSite/controleur/membre/espace/index.php
similarity index 100%
rename from controleur/membre/espace/index.php
rename to UserWebSite/controleur/membre/espace/index.php
diff --git a/controleur/membre/functions.php b/UserWebSite/controleur/membre/functions.php
similarity index 96%
rename from controleur/membre/functions.php
rename to UserWebSite/controleur/membre/functions.php
index da310e8..b1059df 100644
--- a/controleur/membre/functions.php
+++ b/UserWebSite/controleur/membre/functions.php
@@ -1,25 +1,25 @@
-
-
-
-
Vous êtes pas autorisé a passer ici
-
'.$mess.'
-
Cliquez ici pour revenir à la page d\'accueil
-
-
- ');
-}
-function move_avatar($avatar)
-{
- $extension_upload = strtolower(substr( strrchr($avatar['name'], '.') ,1));
- $name = time();
- $nomavatar = str_replace(' ','',$name).".".$extension_upload;
- $name = "./images/avatars/".str_replace(' ','',$name).".".$extension_upload;
- move_uploaded_file($avatar['tmp_name'],$name);
- return $nomavatar;
-}
-?>
+
+
+
+
Vous êtes pas autorisé a passer ici
+
'.$mess.'
+
Cliquez ici pour revenir à la page d\'accueil
+
+
+ ');
+}
+function move_avatar($avatar)
+{
+ $extension_upload = strtolower(substr( strrchr($avatar['name'], '.') ,1));
+ $name = time();
+ $nomavatar = str_replace(' ','',$name).".".$extension_upload;
+ $name = "./images/avatars/".str_replace(' ','',$name).".".$extension_upload;
+ move_uploaded_file($avatar['tmp_name'],$name);
+ return $nomavatar;
+}
+?>
diff --git a/controleur/membre/inscription/index.php b/UserWebSite/controleur/membre/inscription/index.php
similarity index 100%
rename from controleur/membre/inscription/index.php
rename to UserWebSite/controleur/membre/inscription/index.php
diff --git a/controleur/membre/poster.php b/UserWebSite/controleur/membre/poster.php
similarity index 97%
rename from controleur/membre/poster.php
rename to UserWebSite/controleur/membre/poster.php
index 6b40551..64f2841 100644
--- a/controleur/membre/poster.php
+++ b/UserWebSite/controleur/membre/poster.php
@@ -1,238 +1,238 @@
-
-
-prepare('SELECT forum_name, auth_view, auth_post, auth_topic, auth_annonce, auth_modo
- FROM forum_forum WHERE forum_id =:forum');
- $query->bindValue(':forum',$forum,PDO::PARAM_INT);
- $query->execute();
- $data=$query->fetch();
- echo 'Vous êtes ici : Index du forum -->
- '.stripslashes(htmlspecialchars($data['forum_name'])).'
- --> Nouveau topic
';
-
-
-}
-
-//Sinon c'est un nouveau message, on a la variable t et
-//On récupère f grâce à une requête
-elseif (isset($_GET['t']))
-{
- $topic = (int) $_GET['t'];
- $query=$bdd->prepare('SELECT topic_titre, forum_topic.forum_id,
- forum_name, auth_view, auth_post, auth_topic, auth_annonce, auth_modo
- FROM forum_topic
- LEFT JOIN forum_forum ON forum_forum.forum_id = forum_topic.forum_id
- WHERE topic_id =:topic');
- $query->bindValue(':topic',$topic,PDO::PARAM_INT);
- $query->execute();
- $data=$query->fetch();
- $forum = $data['forum_id'];
-
- echo 'Vous êtes ici : Index du forum -->
- '.stripslashes(htmlspecialchars($data['forum_name'])).'
- --> '.stripslashes(htmlspecialchars($data['topic_titre'])).'
- --> Répondre
';
-}
-
-//Enfin sinon c'est au sujet de la modération(on verra plus tard en détail)
-//On ne connait que le post, il faut chercher le reste
-elseif (isset ($_GET['p']))
-{
- $post = (int) $_GET['p'];
- $query=$bdd->prepare('SELECT post_createur, forum_post.topic_id, topic_titre, forum_topic.forum_id,
- forum_name, auth_view, auth_post, auth_topic, auth_annonce, auth_modo
- FROM forum_post
- LEFT JOIN forum_topic ON forum_topic.topic_id = forum_post.topic_id
- LEFT JOIN forum_forum ON forum_forum.forum_id = forum_topic.forum_id
- WHERE forum_post.post_id =:post');
- $query->bindValue(':post',$post,PDO::PARAM_INT);
- $query->execute();
- $data=$query->fetch();
-
- $topic = $data['topic_id'];
- $forum = $data['forum_id'];
-
- echo 'Vous êtes ici : Index du forum -->
- '.stripslashes(htmlspecialchars($data['forum_name'])).'
- --> '.stripslashes(htmlspecialchars($data['topic_titre'])).'
- --> Modérer un message
';
-}
-$query->CloseCursor();
-?>
-Cette action est impossible';
-
-} //Fin du switch
-?>
-
-Poster une réponse
-
-
-
-
-Nouveau topic
-
-
-Titre
-
-
-Mise en forme
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Message
-
- Annonce
- Topic
-
-
-
-
-
-
-
-Cette action est impossible';
-} //Fin du switch
-?>
-
-