mirror of
https://github.com/La-Fougere/n9.git
synced 2025-10-29 13:55:59 +00:00
Ajout des scripts Arduino et Python
This commit is contained in:
parent
3d707956fc
commit
722d8eda66
83
final-fuck.ino
Normal file
83
final-fuck.ino
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
// Modifiez ce chemin pour donner le votre
|
||||||
|
#include "C:\Users\VotreUtilisateur\Documents\Arduino\fuck-peggy\peggy\arduinolib\Peggy2\Peggy2.h"
|
||||||
|
#include "C:\Users\VotreUtilisateur\Documents\Arduino\fuck-peggy\peggy\arduinolib\Peggy2\Peggy2.cpp"
|
||||||
|
|
||||||
|
Peggy2 frame1;
|
||||||
|
Peggy2 frame2;
|
||||||
|
Peggy2 frame3;
|
||||||
|
Peggy2 frame4;
|
||||||
|
Peggy2 frame5;
|
||||||
|
Peggy2 frame6;
|
||||||
|
Peggy2 emptyframe;
|
||||||
|
|
||||||
|
struct Pixel {
|
||||||
|
byte x;
|
||||||
|
byte y;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Les varibales de chaque frame de l'écran LED
|
||||||
|
|
||||||
|
Pixel frameData1[] = {
|
||||||
|
{5,11},{5,12},{5,13},{5,14},{5,15},{5,16},{6,10},{6,17},{6,18},{6,19},{7,10},{7,19},{7,20},{8,9},{8,10},{8,11},{8,20},{9,9},{9,21},{10,3},{10,4},{10,5},{10,6},{10,7},{10,8},{10,9},{10,10},{10,21},{11,2},{11,21},{12,3},{12,4},{12,5},{12,6},{12,7},{12,8},{12,9},{12,10},{12,21},{13,9},{13,21},{14,9},{14,20},{15,10},{15,11},{15,12},{15,13},{15,19},{15,20},{16,13},{16,18},{17,12},{17,16},{17,17},{18,11},{18,14},{18,15},{19,11},{19,13},{19,14},{20,11},{20,12}
|
||||||
|
};
|
||||||
|
|
||||||
|
Pixel frameData2[] = {
|
||||||
|
{5,11},{5,12},{5,13},{5,14},{5,15},{5,16},{6,10},{6,17},{6,18},{6,19},{7,10},{7,19},{7,20},{8,9},{8,10},{8,11},{8,20},{9,9},{9,21},{10,5},{10,6},{10,7},{10,8},{10,9},{10,10},{10,21},{11,4},{11,21},{12,5},{12,6},{12,7},{12,8},{12,9},{12,10},{12,21},{13,9},{13,21},{14,9},{14,20},{15,10},{15,11},{15,12},{15,13},{15,19},{15,20},{16,13},{16,18},{17,11},{17,12},{17,16},{17,17},{18,11},{18,14},{18,15},{19,11},{19,12},{19,13},{19,14}
|
||||||
|
};
|
||||||
|
|
||||||
|
Pixel frameData3[] = {
|
||||||
|
{5,11},{5,12},{5,13},{5,14},{5,15},{5,16},{6,10},{6,17},{6,18},{6,19},{7,10},{7,19},{7,20},{8,9},{8,10},{8,11},{8,20},{9,9},{9,21},{10,6},{10,7},{10,8},{10,9},{10,10},{10,21},{11,5},{11,21},{12,6},{12,7},{12,8},{12,9},{12,10},{12,21},{13,9},{13,21},{14,9},{14,20},{15,10},{15,11},{15,12},{15,13},{15,19},{15,20},{16,11},{16,12},{16,13},{16,18},{17,11},{17,16},{17,17},{18,11},{18,14},{18,15},{19,12},{19,13},{19,14}
|
||||||
|
};
|
||||||
|
|
||||||
|
Pixel frameData4[] = {
|
||||||
|
{5,11},{5,12},{5,13},{5,14},{5,15},{5,16},{6,10},{6,17},{6,18},{6,19},{7,10},{7,19},{7,20},{8,9},{8,10},{8,11},{8,20},{9,9},{9,21},{10,7},{10,8},{10,9},{10,10},{10,21},{11,6},{11,21},{12,7},{12,8},{12,9},{12,10},{12,21},{13,9},{13,21},{14,9},{14,20},{15,10},{15,11},{15,12},{15,13},{15,19},{15,20},{16,11},{16,13},{16,18},{17,11},{17,16},{17,17},{18,12},{18,13},{18,14},{18,15}
|
||||||
|
};
|
||||||
|
|
||||||
|
Pixel frameData5[] = {
|
||||||
|
{5,11},{5,12},{5,13},{5,14},{5,15},{5,16},{6,10},{6,17},{6,18},{6,19},{7,10},{7,19},{7,20},{8,9},{8,10},{8,11},{8,20},{9,9},{9,21},{10,8},{10,9},{10,10},{10,21},{11,7},{11,21},{12,8},{12,9},{12,10},{12,21},{13,9},{13,21},{14,9},{14,20},{15,10},{15,11},{15,12},{15,13},{15,19},{15,20},{16,11},{16,18},{17,12},{17,13},{17,16},{17,17},{18,14},{18,15}
|
||||||
|
};
|
||||||
|
|
||||||
|
Pixel frameData6[] = {
|
||||||
|
{5,11},{5,12},{5,13},{5,14},{5,15},{5,16},{6,10},{6,17},{6,18},{6,19},{7,10},{7,19},{7,20},{8,9},{8,10},{8,11},{8,20},{9,9},{9,21},{10,9},{10,10},{10,21},{11,8},{11,21},{12,9},{12,10},{12,21},{13,9},{13,21},{14,9},{14,20},{15,10},{15,11},{15,12},{15,13},{15,19},{15,20},{16,11},{16,18},{17,12},{17,13},{17,16},{17,17},{18,14},{18,15}
|
||||||
|
};
|
||||||
|
|
||||||
|
const int numFrameData1 = sizeof(frameData1) / sizeof(frameData1[0]);
|
||||||
|
const int numFrameData2 = sizeof(frameData2) / sizeof(frameData2[0]);
|
||||||
|
const int numFrameData3 = sizeof(frameData3) / sizeof(frameData3[0]);
|
||||||
|
const int numFrameData4 = sizeof(frameData4) / sizeof(frameData4[0]);
|
||||||
|
const int numFrameData5 = sizeof(frameData5) / sizeof(frameData5[0]);
|
||||||
|
const int numFrameData6 = sizeof(frameData6) / sizeof(frameData6[0]);
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
frame1.HardwareInit();
|
||||||
|
|
||||||
|
frame1.Clear();
|
||||||
|
frame2.Clear();
|
||||||
|
frame3.Clear();
|
||||||
|
frame4.Clear();
|
||||||
|
frame5.Clear();
|
||||||
|
frame6.Clear();
|
||||||
|
emptyframe.Clear();
|
||||||
|
|
||||||
|
for (int i = 0; i < numFrameData1; i++) {frame1.SetPoint(frameData1[i].x, frameData1[i].y);}
|
||||||
|
for (int i = 0; i < numFrameData2; i++) {frame2.SetPoint(frameData2[i].x, frameData2[i].y);}
|
||||||
|
for (int i = 0; i < numFrameData3; i++) {frame3.SetPoint(frameData3[i].x, frameData3[i].y);}
|
||||||
|
for (int i = 0; i < numFrameData4; i++) {frame4.SetPoint(frameData4[i].x, frameData4[i].y);}
|
||||||
|
for (int i = 0; i < numFrameData5; i++) {frame5.SetPoint(frameData5[i].x, frameData5[i].y);}
|
||||||
|
for (int i = 0; i < numFrameData6; i++) {frame6.SetPoint(frameData6[i].x, frameData6[i].y);}
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
frame6.RefreshAll(1000);
|
||||||
|
frame5.RefreshAll(100);
|
||||||
|
frame4.RefreshAll(100);
|
||||||
|
frame3.RefreshAll(100);
|
||||||
|
frame2.RefreshAll(100);
|
||||||
|
frame1.RefreshAll(3000);
|
||||||
|
frame2.RefreshAll(100);
|
||||||
|
frame3.RefreshAll(100);
|
||||||
|
frame4.RefreshAll(100);
|
||||||
|
frame5.RefreshAll(100);
|
||||||
|
frame6.RefreshAll(200);
|
||||||
|
emptyframe.RefreshAll(3000);
|
||||||
|
}
|
||||||
36
fuck.py
Normal file
36
fuck.py
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
import serial
|
||||||
|
import time
|
||||||
|
from http.server import BaseHTTPRequestHandler, HTTPServer
|
||||||
|
import threading
|
||||||
|
|
||||||
|
# Configurez le port série (ajustez le port COM si nécessaire)
|
||||||
|
ser = serial.Serial('COM9', 9600, timeout=1)
|
||||||
|
time.sleep(2)
|
||||||
|
|
||||||
|
class RequestHandler(BaseHTTPRequestHandler):
|
||||||
|
def do_GET(self):
|
||||||
|
ser.write(b"HTTP ON\n")
|
||||||
|
print("Requête 'on' envoyée")
|
||||||
|
|
||||||
|
time.sleep(5)
|
||||||
|
|
||||||
|
ser.write(b"HTTP OFF\n")
|
||||||
|
print("Requête 'off' envoyée")
|
||||||
|
|
||||||
|
self.send_response(200)
|
||||||
|
self.send_header('Content-type', 'text/html')
|
||||||
|
self.end_headers()
|
||||||
|
self.wfile.write(b"Commande envoyee a l'Arduino")
|
||||||
|
|
||||||
|
def run_server():
|
||||||
|
server_address = ('', 8000)
|
||||||
|
httpd = HTTPServer(server_address, RequestHandler)
|
||||||
|
print("Serveur en ecoute sur le port 8000...")
|
||||||
|
httpd.serve_forever()
|
||||||
|
|
||||||
|
server_thread = threading.Thread(target=run_server, daemon=True)
|
||||||
|
server_thread.start()
|
||||||
|
|
||||||
|
while True:
|
||||||
|
if ser.in_waiting:
|
||||||
|
print(ser.readline().decode().strip())
|
||||||
37
send_on_off.ino
Normal file
37
send_on_off.ino
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#include <Servo.h>
|
||||||
|
|
||||||
|
const int targetPin = 2;
|
||||||
|
const int servoPin = 3;
|
||||||
|
|
||||||
|
Servo myServo;
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
Serial.begin(9600);
|
||||||
|
pinMode(targetPin, OUTPUT);
|
||||||
|
digitalWrite(targetPin, LOW);
|
||||||
|
|
||||||
|
myServo.attach(servoPin);
|
||||||
|
myServo.write(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
if (Serial.available() > 0) {
|
||||||
|
String request = Serial.readStringUntil('\n');
|
||||||
|
|
||||||
|
if (request.indexOf("HTTP") != -1) {
|
||||||
|
Serial.println("Requête HTTP reçue");
|
||||||
|
|
||||||
|
if (request.indexOf("ON") != -1) {
|
||||||
|
digitalWrite(targetPin, HIGH); // Activer le pin 2
|
||||||
|
Serial.println("Pin 2 mis à HIGH et servomoteur à 150 degrés");
|
||||||
|
delay(1000);
|
||||||
|
myServo.write(150);
|
||||||
|
}
|
||||||
|
else if (request.indexOf("OFF") != -1) {
|
||||||
|
digitalWrite(targetPin, LOW);
|
||||||
|
myServo.write(0);
|
||||||
|
Serial.println("Pin 2 mis à LOW et servomoteur à 0 degré");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
40
sendfuck.py
Normal file
40
sendfuck.py
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
import pyautogui
|
||||||
|
import pytesseract
|
||||||
|
import time
|
||||||
|
import requests
|
||||||
|
from PIL import Image
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
# Configurez le chemin vers l'exécutable Tesseract si nécessaire
|
||||||
|
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
|
||||||
|
|
||||||
|
def detect_text():
|
||||||
|
screenshot = pyautogui.screenshot()
|
||||||
|
|
||||||
|
screenshot_np = np.array(screenshot)
|
||||||
|
|
||||||
|
gray_image = Image.fromarray(screenshot_np).convert('L')
|
||||||
|
|
||||||
|
# OCR sur la partie inférieure de l'écran (y > 700)
|
||||||
|
height = screenshot.height
|
||||||
|
text = pytesseract.image_to_string(gray_image.crop((0, 700, screenshot.width, height)))
|
||||||
|
|
||||||
|
return "a few seconds" in text.lower()
|
||||||
|
|
||||||
|
def main():
|
||||||
|
while True:
|
||||||
|
if detect_text():
|
||||||
|
# Envoyer une requête GET à localhost:8000
|
||||||
|
try:
|
||||||
|
response = requests.get("http://localhost:8000")
|
||||||
|
print("Requête envoyée, statut:", response.status_code)
|
||||||
|
except requests.RequestException as e:
|
||||||
|
print("Erreur lors de l'envoi de la requête:", e)
|
||||||
|
|
||||||
|
while detect_text():
|
||||||
|
time.sleep(0.2)
|
||||||
|
|
||||||
|
time.sleep(0.1)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Loading…
Reference in New Issue
Block a user