21 Mayıs 2018 Pazartesi

Vnh2sp Monster motorshield & Joystick Control

       


int xPin = A4; // A0-A5 analog pinlerinden herhangi birine bağlanabilir.
int yPin = A5; // A0-A5 analog pinlerinden herhangi birine bağlanabilir.
int butonPin = 10; // Joystick buton pini arduino bağlantısı (Joystick SW çıkışı)

int xPozisyonu = 0;
int yPozisyonu = 0;
int butonDurum = 0;
int motorLimit = 255;
int halfMotor = int(motorLimit/2.0);
int joystickLimit = 1024;
int halfJoystick = int(joystickLimit / 2.0);
int xDiff =0;
int yDiff =0;
int speed1 = 0;
int speed2 = 0;
int tolerans = 5;

#define BRAKEVCC 0
#define CW   1
#define CCW  2
#define BRAKEGND 3
#define CS_THRESHOLD 100
#define MOTOR_1 0
#define MOTOR_2 1

int usSpeed = 1023;  //default motor speed
unsigned short usMotor_Status = BRAKEVCC;

/*  VNH2SP30 pin definitions
 xxx[0] controls '1' outputs
 xxx[1] controls '2' outputs */
int inApin[2] = {7, 4};  // INA: Clockwise input
int inBpin[2] = {8, 9}; // INB: Counter-clockwise input
int pwmpin[2] = {5, 6}; // PWM input
int cspin[2] = {2, 3}; // CS: Current sense ANALOG input
int enpin[2] = {0, 1}; // EN: Status of switches output (Analog pin)

int statpin = 13;

void setup()
{
  Serial.begin(9600);
  
  pinMode(statpin, OUTPUT);

  // Initialize digital pins as outputs
  for (int i=0; i<2; i++)
  {
    pinMode(inApin[i], OUTPUT);
    pinMode(inBpin[i], OUTPUT);
    pinMode(pwmpin[i], OUTPUT);
  }
  // Initialize braked
  for (int i=0; i<2; i++)
  {
    digitalWrite(inApin[i], LOW);
    digitalWrite(inBpin[i], LOW);
  }
 
}

void loop()
{
  xPozisyonu = analogRead(xPin);
  yPozisyonu = analogRead(yPin);
  butonDurum = digitalRead(butonPin);
  /*
  if(butonDurum == 1) {
    xPozisyonu = halfJoystick;
    yPozisyonu = halfJoystick;
  }
  */
  xDiff = xPozisyonu - halfJoystick;
  yDiff = yPozisyonu - halfJoystick;
  xDiff = map(xDiff, 0, halfJoystick, 0, halfMotor);
  yDiff = -map(yDiff, 0, halfJoystick, 0, halfMotor);
  speed1 = abs(yDiff);
  speed2 = abs(abs(yDiff)- abs(xDiff));
  Serial.print("---X: ");
  Serial.print(xPozisyonu);
  Serial.print("|Y: ");
  Serial.print(yPozisyonu);
  Serial.print("|B: ");
  Serial.print(butonDurum);
  Serial.print("|xDiff: ");
  Serial.print(xDiff);
  Serial.print("|yDiff: ");
  Serial.print(yDiff);
  
  Serial.print("|S1: ");
  Serial.print(speed1);
  Serial.print("|S2: ");
  Serial.print(speed2);
  Serial.print("----\r\n\r");
  

  if(abs(xDiff) < tolerans && abs(yDiff) < tolerans){
    Serial.print("sag dur ");
    Serial.print("sol dur\r\n\r");
    usMotor_Status = BRAKEVCC;
    motorGo(MOTOR_1, usMotor_Status, 0);
    motorGo(MOTOR_2, usMotor_Status, 0);
  }
  else if(xDiff == 0 && yDiff > 0) {
    Serial.print("sol one ");
    Serial.print("sag one\n\r");
    usMotor_Status = CW;
    motorGo(MOTOR_1, usMotor_Status, speed1);
    motorGo(MOTOR_2, usMotor_Status, speed1);
  }
  else if(xDiff == 0 && yDiff <= 0) {
    Serial.print("sol arka ");
    Serial.print("sag arka\n\r");
    usMotor_Status = CCW;
    motorGo(MOTOR_1, usMotor_Status, speed1);
    motorGo(MOTOR_2, usMotor_Status, speed1);
  }
  else if(xDiff > 0 && yDiff == 0) {
    Serial.print("sol one ");
    Serial.print("sag arka\n\r");
    usMotor_Status = CW;
    motorGo(MOTOR_1, usMotor_Status, speed1);
    usMotor_Status = CCW;
    motorGo(MOTOR_2, usMotor_Status, speed2);
  }
  else if(xDiff <= 0 && yDiff == 0) {
    Serial.print("sol arka ");
    Serial.print("sag one\n\r");
    usMotor_Status = CCW;
    motorGo(MOTOR_1, usMotor_Status, speed1);
    usMotor_Status = CW;
    motorGo(MOTOR_2, usMotor_Status, speed2);
  }
  else if(xDiff > 0 && yDiff > 0) {
    Serial.print("yon : Front right");
    Serial.print("sol one hizli ");
    Serial.print("sag one yavas\n\r");
    usMotor_Status = CW;
    motorGo(MOTOR_1, usMotor_Status, speed1);
    motorGo(MOTOR_2, usMotor_Status, speed2);
  }
  else if(xDiff < 0 && yDiff < 0) {
    Serial.print("yon : back left ");
    Serial.print("sol arka yavas ");
    Serial.print("sag arka hizli\n\r");
    usMotor_Status = CCW;
    motorGo(MOTOR_1, usMotor_Status, speed2);
    motorGo(MOTOR_2, usMotor_Status, speed1);
  }
  else if(xDiff > 0 && yDiff < 0) {
    Serial.print("yon : back right ");
    Serial.print("sol arka hizli ");
    Serial.print("sag arka yavas\n\r");
    usMotor_Status = CCW;
    motorGo(MOTOR_1, usMotor_Status, speed1);
    motorGo(MOTOR_2, usMotor_Status, speed2);
  }
  else if(xDiff < 0 && yDiff > 0) {
    Serial.print("yon : Front left ");
    Serial.print("sol one yavas");
    Serial.print("sag one hizli\n\r");
    usMotor_Status = CW;
    motorGo(MOTOR_1, usMotor_Status, speed2);
    motorGo(MOTOR_2, usMotor_Status, speed1);
  }
  else {
    Serial.println("Anlamsiz");
  }
  
  
  if ((analogRead(cspin[0]) < CS_THRESHOLD) && (analogRead(cspin[1]) < CS_THRESHOLD)) {
    Serial.println("Stat pin activ");
    digitalWrite(statpin, HIGH);
  }
}

void motorOff(int motor)
{
  // Initialize braked
  for (int i=0; i<2; i++)
  {
    digitalWrite(inApin[i], LOW);
    digitalWrite(inBpin[i], LOW);
  }
  analogWrite(pwmpin[motor], 0);
}


void motorGo(uint8_t motor, uint8_t direct, uint8_t pwm)
{
  if (motor <= 1)
  {
    if (direct <=4)
    {
      // Set inA[motor]
      if (direct <=1)
        digitalWrite(inApin[motor], HIGH);
      else
        digitalWrite(inApin[motor], LOW);

      // Set inB[motor]
      if ((direct==0)||(direct==2))
        digitalWrite(inBpin[motor], HIGH);
      else
        digitalWrite(inBpin[motor], LOW);

      analogWrite(pwmpin[motor], pwm);
    }
  }
}


2 Nisan 2018 Pazartesi

Yokuş çıkmak için Elektrikli Scooter yapmak

Parçalar

  1. Gövde (yapılacak)
  2. Direksiyon
  3. Teker 2 adet (rulmanlı yük tekeri) +
  4. Disk fren seti
  5. Dc motor (350watt 3500rpm motor) +
  6. Motor hız ayarı
  7. Vites kutusu
  8. Zincir büyük dişli freewheel rulman
  9. Lamba ön arka +
  10. Jel Akü ve koruma kutusu
  11. Amortisör
  12. Zil
  13. Stop
  14. motor kilit
  15. ayna
  16. hız ayarlı elbarı
  17. gösterge paneli
  18. sinyal
  19. telefon tutacak

23 Ağustos 2017 Çarşamba

Anayasa Mahkemesi

Bundan önce Türkiye'de Demokrasinin 1. basamağı olan çok partili hayatın nasıl dandik bir sebeple ortaya çıktığını anlatmıştım.Şimdi de neden anayasa mahkemesi diye birşey var onu anlatacam :D 1950 de Demokrat Parti iktidar aynı bugün ki gibi basına baskı, yargıya baskı 1959 a kadar geliniyor. Artık otokrasiye geçilmek üzere burası çok önemli Hükümet Abd'de istediklerini bulamayınca yeni aşk için Rusya'ya kapı açayım diyor.Bunun üzerine dünden razı olan Tsk Abd ninde yardımıyla(bknz bize 3 darbe borçlusunuz) darbe yapıyor. Buraya kadar tanıdık bilindik.Ama darbeden sonra darbeyi yapanlar "yaw bi daa ole birşey yapalım ki bu ulkede kimse iktidar olsa bile bütün erklere hükmedemesin" diyor sonra modernleşmenin tanımına uygun olarak Almanya'dan kopya çekerek Anayasa mahkemesini 1961 'de Türkiye'ye getiriyor. 1961-2010 kaç sene 50 sene.Bu 50 senede bir kaç hükümet sistemi hacklemek için uğraş verdiyse de başarız olmuş engelenmişti.Ama 2010 da halka <> yolayarak referandum yaptırma fikri.Bu ülkeye daha fazla demokrasi gelecek diye zanedip sonra zokayı yemekle sonuç vermiştir.Burada zoka Hsyk nın yapısındaki değişiklik ve anayasa mahkemesinin uyelerini seçen yapıdaki farklılık. Sonuç Hırsıza kilit dayanmaz.

31 Mayıs 2017 Çarşamba

Arduino Kuluçka Makinası Kodu

1 adet Dht11 nem ve ısı ölçer
1 adet 4 lü röle (ışık, nem ve fan)
2 adet sg90 servo motor
1 adet button
1 adet 5510 lcd ekran
1 adet buzzer


       

#include 
#include 
#include   
#include "DHT.h"

#define DHTPIN 2
#define DHTTYPE DHT11
#define RELAY1  0                       
#define RELAY2  3                        
#define RELAY3  7                        
#define RELAY4  12

DHT dht(DHTPIN, DHTTYPE);
static PCD8544 lcd = PCD8544(8, 9, 10, 11, 4);
Servo myservo; 
Servo myservo2;
int pos1 = 0;
int pos2 = 1;
int temp = 0;

int Button=13;
int speakerPin = 12;

float temp1 = 38.4;
float hum1 = 60.0;
float temp2 = 38.7;
float hum2 = 70.0;

float deftemp = temp1;
float defhum = hum1;

int r1,rx1 =0;
int r2,rx2 =0;
int r3,rx3 =0;
int tAlert= 0;
int hAlert = 0;
void setup()
{
	pinMode(RELAY1, OUTPUT);       
	pinMode(RELAY2, OUTPUT);
	pinMode(RELAY3, OUTPUT);
	//pinMode(RELAY4, OUTPUT);
	myservo.attach(5);
	myservo2.attach(6);
	lcd.begin(84, 48);
	dht.begin();
	Serial.begin(9600);
	lcd.setCursor(10,0);
	lcd.print("Sicaklik: "); 
	lcd.setCursor(10,4);
	lcd.print("Nem:");
  	pinMode(Button, INPUT);
  	pinMode (speakerPin, OUTPUT);
}

void loop()
{
	Serial.println("Start loop");
  	Serial.print("D Temp: ");Serial.println(deftemp);
  	Serial.print("D Hum: ");Serial.println(defhum);
	float h = dht.readHumidity();
	float t = dht.readTemperature();
	float f = dht.readTemperature(true);
	if (isnan(h) || isnan(t) || isnan(f)) {
                alert(255, 1500, "Sensor", "Error");
		return;
	}
	screen(h, t);
	
	// button set  
	if(digitalRead(Button)==LOW)
	{
		if(deftemp == temp1) {
			deftemp = temp2;
			defhum = hum2;
		} else if(deftemp == temp2) {
			deftemp = temp1;
			defhum = hum1;
		}
		Serial.print("New Temp: ");Serial.println(deftemp);
		Serial.print("New Hum: ");Serial.println(defhum);
 
	}
	
	// relay control
	if(h < defhum && t < deftemp) {
		r1= 0;//fan
		r2= 1;//lamba
		r3= 1;//nem
		tAlert++;
		hAlert++;
   Serial.println("Sicaklik Yetersiz Lamba Acik, Nem Yetersiz Nem Acik, Fan kapali");
	} 
	else if(h < defhum && t > deftemp) {
		r1= 1;
		r2= 0;
    r3= 1;
		tAlert++;
   Serial.println("Sicaklik Fazla Lamba Kapali, Nem Yetersiz Nem Acik, fan acik");
	}
	else if(h > defhum && t < deftemp) {
		r1= 0;
		r2= 1;
    r3= 0;
		hAlert++;
   Serial.println("Sicaklik Az Lamba Acik, Nem Fazla Nem Kapali , Fan Kapali");
	}
	else{
		r1= 1;
		r2= 0;
		r3= 0;
		hAlert = 0;
		tAlert = 0;
   Serial.println("Sicaklik Yeterli Lamba Kapali, Nem Yeterli Nem Kapali,fan acik");
	}
	if(r1 != rx1 && r1 == 1 ) {
		digitalWrite(RELAY1,HIGH);
		Serial.println("Humidty Relay 1 open");
	}else if(r1 != rx1 && r1 == 0 ) {
		digitalWrite(RELAY1,LOW);
		Serial.println("Humidty Relay 1 close");
	}
	rx1 =r1;
	if(r2 != rx2 && r2 == 1 ) {
		digitalWrite(RELAY2,HIGH);
		Serial.println("Temperature Relay 2 open");
	}else if(r2 != rx2 && r2 == 0 ) {
		digitalWrite(RELAY2,LOW);
		Serial.println("Temperature Relay 2 close");
	}
	rx2 =r2;
	if(r3 != rx3 && r3 == 1 ) {
		digitalWrite(RELAY3,HIGH);
		Serial.println("Fan Relay 3 open");
	}else if(r3 != rx3 && r3 == 0 ) {
		digitalWrite(RELAY3,LOW);
		Serial.println("Fan Relay 3 close");
	}
	rx3 =r3;
	
	if(tAlert == 500) {
		alert(255, 5000, "Temperature", "Error");
		tAlert= 0;
	}
	if(hAlert == 500) {
		alert(255, 10000, "Humidty", "Error");
		hAlert= 0;
	}
	
	//servo 
	if(pos2 ==0 || pos2==180) {
		temp= pos1;
		pos1 = pos2;
		pos2 = temp;
	}
	else if(pos2 > pos1) {
		pos1 = pos2;
		pos2++;
	}
	else {
		pos1 = pos2;
		pos2--;
	}
	myservo.write(pos1);
	myservo2.write(pos1);
	Serial.print("Servo position :");
	Serial.println(pos1);
}

void alert(int v, int d, char mystr[], char mystr2[]) {
	writeScreen(mystr, mystr2);
    for(int i=0;i
 

24 Haziran 2016 Cuma

Ütopik Rc Solar Boat

21/11/2015 tarihli mailden

https://www.youtube.com/watch?v=dWoh5l2vDLk

bu boatı biraz refactor edelim buna bi de gpsli bi telefon takalım
beyin gorevi gorsun. programlayalım otomatik kaptanın rotasını. gunesi
gorunce sarj etsin. telefonuda sarj etsin bu paneller.
sadun bora gibi gunesli bir bahar gununde dunya turuna bile cıkar bu
:)) enerjisi gunesten, gunduz tam yol ileri, gece de pil bitene kadar
calışır :))
sabah oluncada yavastan yavastan kıpırdar sonra ver elini okyanus :))
tanker işi biraz sıkıntı sadece onuda dunyada gemi trafiğini veren bi
app vardı rotalara bakar kesişmemesini saglarız :)) panama kanalını
nasıl gecez? gecmeyiz bizde neapalım gunesimiz bol vuruz cape horn a
:)) allahın gunesimi yok :))
yaw bide buzdagları var de mi tühh bee titanik gibi olduk :)) bak buna
care nasıl bilemiyorum :)) biraz arge yapmalı buzdaglarını gosteren bi
app var mı acep :))
fırtınaya yakalanırsak mı :))  "batarmı yaa bu fırtınada hacıyatmaz
gibi masalahı var. yasasın arşimet!!! ayrıca" bide muska yazmalı
kuvvetli bi hocadan sonra yolculuk oncesinde motorun içine sıgdırız
:))

arada bi cafeye gider kahveyi yudumlarken cep telefonu acar "ulan
bizim toraman neapıo nerede suan" diyip özlem giderilebilir hani
programlarsak her hafta gurbetteki bi limandan email bile atar bu :))
sonra gelen emailde dataların analizini yaparsın oturdugun yerden :))
telefon cekse heryerden yeni rota bile koyarsın da teknoloji biraz
pahalı .biz minumum maliyet maximum verimlik esasından
ayrılmayalım.topu topu 30 $ a dunya turu yaptırıoz botumuza.lan her
limanda bi sevgili bile yapar bu simdi. tipe baksana pek bi cevval
namussuz :)) yerinde durmuyor :) sonra selfi cekip facebookta bile
paylasır aha yazıom suraya :))

ilk insansız dunya turu yapan botun hayalini izlediniz  :)) bu da bi
ilk heral :))

bundan sonraki hedef yunan sahil botlarına yakalanmadan giden
programlanabilir multeci botu :)) bu sorunada eğilmek lazım :))

Sonuç


Dolandırılırsanız Ne Yaparsınız?

Benim gibi birine internet üzerinden 3500 tl kaptırırsanız.Dikkat etmeniz gereken adamın niye 3500 tl istiyor olmasıdır.

Çünkü 3480 tl üstü her türlü dolandırıcılığa tüketici mahkemesini bakar bu da avukat dava vs demektir.Yani uğraştırır sizi.Eğer daha aşağı bir tutar olursa tüketici heyeti ile e devlet üzerinden haledebilirsiniz.

Elinizde fatura yada tahütname yoksa iyice şansınız az demektir.Bu yüzden muhakak bir belgeniz olmalı.Sonra bu belgeyle ilk olarak ticaret il müdürlüğü denetim servisine bir dilekçe verilebilir.Şirket hakkında denetim başlatılabilir.

Elinizdeki şirketle ilgili belgeler yetersizse ticaret odasının web sitesinden şirket sicil bilgilerine ulaşabilirsiniz.
Böylece dolandıran kişinin tc kimlik nosunu icra yoluyla talep edebilirsiniz.Bu çok önemli bir ayrıntı şahsın tc kimlik nosu her türlü hacizin kapısını açar.Burada yoksa mobile telefon şirketlerinden yada varsa banka hesap nolardan istemeniz gerekir.

Bu arada şirkete tebliğ ticaret odasındaki kayıtlı adresten yapılmış olur.Sahıs yada şirket bir cevap vermezse haciz başlatabilirsiniz.Ben araç için talepte bulundum.Sonucu bitince buradan devam edeceğim...

Freelancer Android Programmer

If someone pays for coding an android apk, I ll write what he wants

contact: csselo@yandex.com

İsteyen olursa fiyatta anlaşırsak hertürlü android programını yazarım.

iletişim : csselo@yandex.com