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

- -
- -
Mise en forme - - - - -

-heureux -lol -triste -cool -rire -confus -choc -? -! -
- -
Message
- - - -

- - -

Nouveau topic

-
- -
Titre -
- -
Mise en forme - - - - -

-heureux -lol -triste -cool -rire -confus -choc -? -!
- -
Message - - - -
-

- -

-
- - -Cette action est impossible

'; -} //Fin du switch -?> - - + + +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

+ +
+ +
Mise en forme + + + + +

+heureux +lol +triste +cool +rire +confus +choc +? +! +
+ +
Message
+ + + +

+ + +

Nouveau topic

+
+ +
Titre +
+ +
Mise en forme + + + + +

+heureux +lol +triste +cool +rire +confus +choc +? +!
+ +
Message + + + +
+

+ +

+
+ + +Cette action est impossible

'; +} //Fin du switch +?> + + diff --git a/controleur/membre/profil/index.php b/UserWebSite/controleur/membre/profil/index.php similarity index 100% rename from controleur/membre/profil/index.php rename to UserWebSite/controleur/membre/profil/index.php diff --git a/css/style.css b/UserWebSite/css/style.css similarity index 100% rename from css/style.css rename to UserWebSite/css/style.css diff --git a/deconnexion.php b/UserWebSite/deconnexion.php similarity index 96% rename from deconnexion.php rename to UserWebSite/deconnexion.php index 0611a92..feb5d4f 100644 --- a/deconnexion.php +++ b/UserWebSite/deconnexion.php @@ -1,23 +1,23 @@ - - -
-
-
-

Déconnexion réussie!


-

A Bientôt


-

Vous êtes à présent déconnecté
- - Cliquez ici pour revenir à la page principale


-
-
- - - + +
+
+
+

Déconnexion réussie!


+

A Bientôt


+

Vous êtes à présent déconnecté
+ + Cliquez ici pour revenir à la page principale


+
+
+ + + \ No newline at end of file diff --git a/espace_membre.php b/UserWebSite/espace_membre.php similarity index 96% rename from espace_membre.php rename to UserWebSite/espace_membre.php index 02b43f5..9ecef8a 100644 --- a/espace_membre.php +++ b/UserWebSite/espace_membre.php @@ -1,9 +1,9 @@ - + diff --git a/inscription.php b/UserWebSite/inscription.php similarity index 96% rename from inscription.php rename to UserWebSite/inscription.php index ec980f3..3e19c2c 100644 --- a/inscription.php +++ b/UserWebSite/inscription.php @@ -1,9 +1,9 @@ -