- Katılım
- 18 Haziran 2019
- Mesajlar
- 1.986
- Makaleler
- 1
- Çözümler
- 9
Arkadaşlar selamlar. Başka bir arkadaştan esinlenerek yaptığım projenin kodlarını sizlerle de paylaşmak istedim. Projenin mantığı şu, arduino devresinde dijital pinlere input pullup devresi kuruyoruz. Bu pinler kısa devre olduğunda (butona basmışız gibi düşünün) seri monitöre kodda belirttiğimiz şeyi yazacak. Python kısmında ise "serial" adlı modül ile arduino seri monitörü okuyacak ve istediğimizi yaptıracağız. Bizim isteğimiz klavyede bir tuşa bastırmak.
@Akif9748 sen istemiştin bu kodları. Geç oldu kusura bakma.
Python Kodları:
[CODE lang="python" title="Python Kodları"]import serial
import time
import keyboard
import pyautogui
port=input("Bagli portu girin: ") # örneğin "COM13"
ser = serial.Serial(port,9600,timeout=0)
while True:
data = ser.readline(896).decode('ascii', 'strict')
#Vites 1
if data == '1':
pyautogui.press("1")
time.sleep(1)
#Vites 2
if data == '2':
pyautogui.press("2")
time.sleep(1)
#Vites 3
if data == '3':
pyautogui.press("3")
time.sleep(1)
#Vites 4
if data == '4':
pyautogui.press("4")
time.sleep(1)
#Vites 5
if data == '5':
pyautogui.press("5")
time.sleep(1)
#Vites 6
if data == '6':
pyautogui.press("6")
time.sleep(1)
#Vites 7 (R)
if data == '7':
pyautogui.press("7")
time.sleep(1)
[/CODE]
[CODE lang="cpp" title="Arduino Kodları"]#define gearOne 5
#define gearTwo 6
#define gearThree 7
#define gearFour 8
#define gearFive 9
#define gearSix 10
#define gearR 11
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(gearOne, INPUT_PULLUP);
pinMode(gearTwo, INPUT_PULLUP);
pinMode(gearThree, INPUT_PULLUP);
pinMode(gearFour, INPUT_PULLUP);
pinMode(gearFive, INPUT_PULLUP);
pinMode(gearSix, INPUT_PULLUP);
pinMode(gearR, INPUT_PULLUP);
}
void loop() {
// put your main code here, to run repeatedly:
//Vites 1
Serial.println(digitalRead(gearOne)); // 0 değeri verince vites atcak. 1 Değeri verince Boşta olcak.
//Vites 2
if(digitalRead(gearTwo) == 0)
{
Serial.println('2');
}
//Vites 3
if(digitalRead(gearThree) == 0)
{
Serial.println('3');
}
//Vites 4
if(digitalRead(gearFour) == 0)
{
Serial.println('4');
}
//Vites 5
if(digitalRead(gearFive) == 0)
{
Serial.println('5');
}
//Vites 6
if(digitalRead(gearSix) == 0)
{
Serial.println('6');
}
//Vites 7(R)
if(digitalRead(gearR) == 0)
{
Serial.println('7');
}
}[/CODE]
Bu projeyi ETS2'de h-shifter olarak kullanacaktım lakin olmamıştı. Kodlar o yüzden bu şekilde. Kodda gördüğünüz gibi, 5. pinde kıa devre olduğunda seri monitöre 1 yazıyor. Python'da 1 yazsını okuyup, 1 tuşuna basıyor. Umarım doğru anlatabilmişimdir. Anlamadığınız, takıldığınız bir yer olursa elimden geldiğince yardımcı olmaya çalışırım.
@Akif9748 sen istemiştin bu kodları. Geç oldu kusura bakma.
Python Kodları:
[CODE lang="python" title="Python Kodları"]import serial
import time
import keyboard
import pyautogui
port=input("Bagli portu girin: ") # örneğin "COM13"
ser = serial.Serial(port,9600,timeout=0)
while True:
data = ser.readline(896).decode('ascii', 'strict')
#Vites 1
if data == '1':
pyautogui.press("1")
time.sleep(1)
#Vites 2
if data == '2':
pyautogui.press("2")
time.sleep(1)
#Vites 3
if data == '3':
pyautogui.press("3")
time.sleep(1)
#Vites 4
if data == '4':
pyautogui.press("4")
time.sleep(1)
#Vites 5
if data == '5':
pyautogui.press("5")
time.sleep(1)
#Vites 6
if data == '6':
pyautogui.press("6")
time.sleep(1)
#Vites 7 (R)
if data == '7':
pyautogui.press("7")
time.sleep(1)
[/CODE]
[CODE lang="cpp" title="Arduino Kodları"]#define gearOne 5
#define gearTwo 6
#define gearThree 7
#define gearFour 8
#define gearFive 9
#define gearSix 10
#define gearR 11
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(gearOne, INPUT_PULLUP);
pinMode(gearTwo, INPUT_PULLUP);
pinMode(gearThree, INPUT_PULLUP);
pinMode(gearFour, INPUT_PULLUP);
pinMode(gearFive, INPUT_PULLUP);
pinMode(gearSix, INPUT_PULLUP);
pinMode(gearR, INPUT_PULLUP);
}
void loop() {
// put your main code here, to run repeatedly:
//Vites 1
Serial.println(digitalRead(gearOne)); // 0 değeri verince vites atcak. 1 Değeri verince Boşta olcak.
//Vites 2
if(digitalRead(gearTwo) == 0)
{
Serial.println('2');
}
//Vites 3
if(digitalRead(gearThree) == 0)
{
Serial.println('3');
}
//Vites 4
if(digitalRead(gearFour) == 0)
{
Serial.println('4');
}
//Vites 5
if(digitalRead(gearFive) == 0)
{
Serial.println('5');
}
//Vites 6
if(digitalRead(gearSix) == 0)
{
Serial.println('6');
}
//Vites 7(R)
if(digitalRead(gearR) == 0)
{
Serial.println('7');
}
}[/CODE]
Bu projeyi ETS2'de h-shifter olarak kullanacaktım lakin olmamıştı. Kodlar o yüzden bu şekilde. Kodda gördüğünüz gibi, 5. pinde kıa devre olduğunda seri monitöre 1 yazıyor. Python'da 1 yazsını okuyup, 1 tuşuna basıyor. Umarım doğru anlatabilmişimdir. Anlamadığınız, takıldığınız bir yer olursa elimden geldiğince yardımcı olmaya çalışırım.