Ajout des scripts Arduino et Python

This commit is contained in:
LaFougère 2025-03-07 16:35:00 +01:00 committed by GitHub
parent 3d707956fc
commit 722d8eda66
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 196 additions and 0 deletions

83
final-fuck.ino Normal file
View 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
View 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
View 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
View 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()