Skip to content

This project for practicing using pneumatic cylinder with control units. I use raspberry pi 4 and write control code in c languages. I use solenoid valve and relay for controlling parts.

Notifications You must be signed in to change notification settings

muhammeddincmdx/Mech3ComputerAidedProductionProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Mech3ComputerAidedProductionProject

This project for practicing using pneumatic cylinder with control units. I use raspberry pi 4 and write control code in c languages. I use solenoid valve and relay for controlling parts.

Code

#include <ncurses.h> #include <wiringPi.h> #include <unistd.h>

#define signalPin 29 #define KEY_SPACE 32

int main(void) { initscr(); cbreak(); noecho(); keypad(stdscr, TRUE); nodelay(stdscr, TRUE);

wiringPiSetup();
pinMode(signalPin, OUTPUT);

int signalState = 0; 

while (1) {
    int ch = getch();
    if (ch == KEY_SPACE) {
        signalState = !signalState; 
        digitalWrite(signalPin, signalState);
        usleep(500000); 
    }
    usleep(10000); 
}

endwin();
return 0;

}

gcc -o program program.c -lwiringPi -lncurses
sudo ./program

Shematics

Ekran görüntüsü 2024-05-10 094828

Interface

resim

#version 2

#include <gtk/gtk.h>
#include <wiringPi.h>
#define signalPin 29

GtkWidget *window;
GtkWidget *toggleButton;
GtkWidget *label;

void toggle_button_callback(GtkWidget *widget, gpointer data) {
    static int signalState = 0;
    signalState = !signalState;
    digitalWrite(signalPin, signalState);
    gtk_label_set_text(GTK_LABEL(label), signalState ? "Piston Açık" : "Piston Kapalı");
    GdkRGBA color;
    gdk_rgba_parse(&color, signalState ? "#2ecc71" : "#c0392b"); 
    #pragma GCC diagnostic push
    #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
    gtk_widget_override_background_color(label, GTK_STATE_FLAG_NORMAL, &color);
    #pragma GCC diagnostic pop
}
int main(int argc, char *argv[]) {
    wiringPiSetup();
    gtk_init(&argc, &argv);
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(window), "Piston Kontrol Projesi");
    gtk_window_set_default_size(GTK_WINDOW(window), 300, 250);
    gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); 
    g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
    GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
    gtk_container_add(GTK_CONTAINER(window), vbox);
    GtkWidget *title1 = gtk_label_new("Computer Aided Design and Production");
    GtkWidget *title2 = gtk_label_new("Piston Kontrol Projesi");
    GtkWidget *title3 = gtk_label_new("Muhammed DİNÇ & Ahmet CAN");
    gtk_label_set_xalign(GTK_LABEL(title1), 0.5); 
    gtk_label_set_xalign(GTK_LABEL(title2), 0.5); 
    gtk_label_set_xalign(GTK_LABEL(title3), 0.5); 
    gtk_box_pack_start(GTK_BOX(vbox), title1, TRUE, TRUE, 0);
    gtk_box_pack_start(GTK_BOX(vbox), title2, TRUE, TRUE, 0);
    gtk_box_pack_start(GTK_BOX(vbox), title3, TRUE, TRUE, 0);
    gtk_box_set_spacing(GTK_BOX(vbox), 10);
    label = gtk_label_new("Piston Kapalı");
    gtk_label_set_xalign(GTK_LABEL(label), 0.5); 
    gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0);
    toggleButton = gtk_toggle_button_new_with_label("Pistonu Aç/Kapat");
    gtk_widget_set_size_request(toggleButton, 150, 30); 
    g_signal_connect(toggleButton, "toggled", G_CALLBACK(toggle_button_callback), NULL);
    gtk_box_pack_start(GTK_BOX(vbox), toggleButton, TRUE, TRUE, 0);
    GtkCssProvider *provider = gtk_css_provider_new();
    gtk_css_provider_load_from_data(provider,
        "window {"
        "   background-color: #000000;" 
        "}"
        "label {"
        "   color: #fff;" 
        "}"
        "button {"
        "   background-color: #3498db;" 
        "   border-radius: 10px;" 
        "   padding: 10px 20px;" 
        "   color: #fff;" 
        "}"
        "button:hover {"
        "   background-color: #2980b9;" 
        "}", -1, NULL);
    gtk_style_context_add_provider_for_screen(gdk_screen_get_default(),
        GTK_STYLE_PROVIDER(provider), GTK_STYLE_PROVIDER_PRIORITY_USER);
    g_object_unref(provider);
    gtk_widget_show_all(window);
    gtk_main();
    return 0;
}


gcc -o program3 program3.c pkg-config --cflags --libs gtk+-3.0 -lwiringPi sudo ./program3

Usage

WhatsApp Görsel 2024-05-28 saat 09 22 49_22ce831b

IMG_2988.MOV

About

This project for practicing using pneumatic cylinder with control units. I use raspberry pi 4 and write control code in c languages. I use solenoid valve and relay for controlling parts.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages