Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Mitt mål är att uppgradera min Anet A8 3D-skrivare genom att lägga till en strömförsörjningskontroll via Octoprint-gränssnittet. Ändå vill jag också kunna starta min 3D-skrivare manuellt, det vill säga att inte använda webbgränssnittet utan bara att trycka på en knapp.
Steg 1: Ledningen
AC-DC PSU är ansluten med en Smart-plug (TP-Link) som kan styras med en smartphone (App Kasa) eller en knapp.
Denna PSU driver Raspberry Pi 3 B+ med hjälp av en LM2596 DC -DC Buck Converter Module (12V - 5V). 4-relämodulen 5V med Optocoupler Low-Level-Trigger är direkt ansluten till RPI 3B+ (ingen 3.3V-tuning behövs).
4 Tryckknappar är anslutna som "uppdragningsmotstånd" till RPI 3B+.
För kabeldragning, titta bara på skissen.
Steg 2: Programvaran
För kontrollen med hjälp av tryckknappar har jag använt Python för att skriva programmet och inspirerat mig genom att läsa följande tråd:
www.raspberrypi.org/forums/viewtopic.php?t…https://invent.module143.com/daskal_tutorial/raspbe…
invent.module143.com/daskal_tutorial/raspbe…
www.hertaville.com/introduction-to-accessin…
www.hertaville.com/introduction-to-accessin…
För att säkerställa interaktionen med kontrollen via Octoprint finns det ett test för att kontrollera reläets aktuella status och ändra den.
Manuset är bifogat.
Kommentarer: Eftersom relä 1 styr moderkortet ville jag lägga till en säkerhet genom att stänga av med tryckknappen. Målet var att hålla knappen intryckt under 5 sekunder för att bekräfta avstängningen. Tyvärr fungerar skriptet men inte tillförlitligt på grund av rebound -effekt. Om du har en rättelse att föreslå, dela gärna den.
För att göra skriptet körbart: sudo chmod 777 /home/pi/script/Relay_board_control.pyTesta manuset:./Relay_board_control.py
För att kopiera skriptet: sudo cp Relay_board_control.py/usr/local/bin
Så här kör du skriptet automatiskt i början:
sudo nano /etc/rc.local
lägg till sökvägen till skriptet "/home/pi/scripts/Relay_board_control.py &" mellan fi och exit 0
För kontrollen med Octoprint är det väl dokumenterat på webben.
Det finns två steg:
1- Redigera filen /etc/init.d/octoprint genom att lägga till i blocket "do_start ()" strax efter RETVAL = "$ ?:
gpio export 6 ut
gpio -g skriv 6 1
gpio export 13 ut
gpio -g skriva 13 1
gpio export 19 ut
gpio -g skriva 19 1
gpio export 26 ut
gpio -g skriva 26 1
2- Redigera filen /home/pi/.octoprint/config.yaml genom att lägga till blocket "System":
system: åtgärder:
- åtgärd: Printer_ON
kommando: gpio -g skriv 6 0
bekräfta: falskt
namn: Printer_ON
- åtgärd: Printer_OFF
kommando: gpio -g skriv 6 1
bekräfta: Du är på väg att stänga av skrivaren.
namn: Printer_OFF
- åtgärd: LED-String_ON
kommando: gpio -g skriv 13 0
bekräfta: falskt
namn: LED-String_ON
- åtgärd: LED-String_OFF
kommando: gpio -g skriv 13 1
bekräfta: falskt
namn: LED-String_OFF
- åtgärd: LED-Cam_ON
kommando: gpio -g skriv 19 0
bekräfta: falskt
namn: LED-Cam_ON
- åtgärd: LED-Cam_OFF
kommando: gpio -g skriv 19 1
bekräfta: falskt
namn: LED-Cam_OFF
- åtgärd: Relä-4_ON
kommando: gpio -g skriv 26 0
bekräfta: falskt
namn: Relä-4_ON
- åtgärd: Relä-4_OFF
kommando: gpio -g skriv 26 1
bekräfta: falskt
namn: Relä-4_OFF
Steg 3: Testet
Det fungerar!
Tryckknapparnas beteende är lite knepigt men efter några försök får du det.
Steg 4: Slutför konceptet
Nu ska jag löda tryckknapparna på en perfboard och lägga till en 5-pins kontakt.
Slutligen har jag designat och skrivit ut 2 fodral:
- en för RPI 3 B+ och reläkortet
- en för att täcka ledningarna vid basen av PSU och för att fixa LM2596 DC-DC Buck Converter Module.
Du kan hitta *.stl- och *.gcode -filerna på www.thingiverse.com
-
-