FFMPEG Komut Satırı Video İşleme Programı İle Videolara Logo Eklmek.

4.187 Kişi Okudu

FFMPEG elinizdeki videoların formatını dönüştürmek, kırpmak ve yazı eklemek gibi birçok faydalı işlem yapma yeteneğine sahip ücretsiz bir komut satırı programıdır. FFMPEG birçok video işleme programında yardımcı program olarak çalışmakta ve bu programın kütüphanelerinden istifade edilmektedir.

FFmpeg
https://ffmpeg.org/

Detaylı bilgi
https://tr.wikipedia.org/wiki/FFmpeg

FFmpeg in kullanıldığı projeler
https://trac.ffmpeg.org/wiki/Projects

FFmpeg Türkçe Kaynak
http://web.archive.org/web/20130310141744/http://tr.pardus-wiki.org/FFmpeg_Dok%C3%BCmantasyon

Öncelikle severek ilgilendiğim facebook sayfam Robot Ve Teknoloji sayfasında paylaştığım videolara logo eklemek için kullanmak üzere, çok hızlı ve etkili bir program arayışına girdim öyle şatafatlı programlarla uğraşmak istemedim alt tarafı bir logo eklemek için koca bir video işleme programı çalıştırmak dert, kurmak dert. Bu iş için özelleştirilmiş bir program bulamayınca başladım kütüphane araştırmaya kafaya koydum kendi video logo ekleme programımı yazacağım sadece bu işe yarasın yeter. Biraz araştırma sonucu ffmpeg programının bu iş için biçilmiş kaftan olduğunu gördüm. Windows toplu iş dosyası oluşturdum içerisine ffmpeg için gerekli komutları da yazınca problemim çözülmüş oldu.

 

3 ADC kanalından okunan veriyi seri port üzerinden gönderen yazılım.

878 Kişi Okudu

MikroC dili ile yazılan bir program. ADC A0 A1 A3 pinlerinden okunan verileri seri port üzerinden göndere program. Seri porttan okunan veri int tipinden gelmekte biz bu verileri string tipine dönüştürerek gönderiyoruz.
UART 2 kullanılmıştır bu pin A2 de TX pinidir.

void main()
 {
 char txt1[12],txt2[12],txt3[12];
 int adc1=0,adc2=0,adc3=0;
 
  GPIO_Digital_Output(&GPIOc_ODR, _GPIO_PINMASK_8) ;
  GPIO_Digital_Input(&GPIOa_IDR, _GPIO_PINMASK_0);

  ADC_Set_Input_Channel(_ADC_CHANNEL_ALL); // adc kanalında 1. pini kullanacağımız belirtilde A1
  ADC1_Init();// Adc Ayarları yapıldı
  UART2_Init(9600);                    // initialize UART2 module
  Delay_ms(100);

  UART_Set_Active(&UART2_Read, &UART2_Write, &UART2_Data_Ready, &UART2_Tx_Idle ); // Uart modüllerini aktive ediyor...


   do  {
           adc1=ADC1_Get_Sample(0);
           IntToStr(adc1,txt1);
           
           adc2=ADC1_Get_Sample(1);
           IntToStr(adc2,txt2);
           
           adc3=ADC1_Get_Sample(3);
           IntToStr(adc3,txt3);
           
           UART2_Write_Text("ADC-1=");
           UART2_Write_Text(txt1);
           
           UART2_Write_Text("ADC-2=");
           UART2_Write_Text(txt2);
           
           UART2_Write_Text("ADC-3=");
           UART2_Write_Text(txt3);
           
           UART2_Write(13);
           UART2_Write(10);
           Delay_ms(500);

  }  while (1) ;
  
}

Robot İşlerine Başlayacağım Nasıl Bir Yol İzlerim Sorusu yanıtı.

1.108 Kişi Okudu
 
Bu tarz sorular Robot Topluluğunda çalışma yapmak isteyen arkadaşlardan sıkça alıyoruz. Eğer yazılımdan ve elektronik azıcık anlayan arkadaşlar olursa onlara ufaktan kendilerine bir problem sunmaları ve bu problemi çözebilecek mekaniği, elektroniği ve yazılımı kullanarak çözüm oluşturmalarını istiyoruz, kısaca proje bazlı gidersen o proje için yapacaklarını araştırırken ister istemez konu ile alakalı senin problemini çözmese bile birçok meseleyi öğrenebilirsin. Örneğin; karanlıkta yanıp sönen bir uyarı ledi projesi ile başlayalım bu projede birtakım parametrelere ihtiyacın var, makineli tüfeğine soru mermilerini takıp etrafa sıkmaya başlıyoruz,
1- Ortamın aydınlık olduğunu nasıl algılarım ?
2- Ortamın karanlık olduğunu nasıl algılarım ?
3- Kullanacağım sensör nasıl olmalı?
4 – Sensör tipi nasıl olmalı?
5- Algıladığım ortam ışığını nasıl yorumlarım?
6- Hangi mikrodenetleyici kullanmalıyım?
7-…..
..
.
gibi birçok soru sorarak bu küçük problemin üstesinden gelmeye çalışmalısın bu süreç ile kısa zamanda güzel bir aşama kaydetme sağlayacaktır. Yapacağın sonra ki projelerde sorduğun soru sayısı azalacaktır.
Bu projeyi yaptıktan sonra biraz daha karmışık bir problem koy mesela buda engelden kaçan iki tekerlekli bir araç olsun burada işin içine mekanikte girecek, motor kontrollü, sistemin bir vücuda kavuşması söz konusu. Robotik projelerde öncelikle yazılım ve temel elektronik kısımlarını halletmen lazım mekanik problemleri çözmek yazılım ve elektroniğe nazaran daha az araştırma gerektirmekte.
Robotik projeler için aynı zamanda elektronik komponent bilgiside çok önemlidir bu projelerin için en doğru malzemeyi seçmen için gerekir, piyasada malzeme satışı yapan yerli siteler mevcut buralardan alışveriş yapmasan bile ara sıra girip ne var ne yok diye bakmakta fayda var, çünkü malzeme satış sitelerinde o malzemenin nasıl kullanılacağını hatta örnek kodlarına dahi ulaşabilirsin. Şu siteler alış veriş için güvenilir ve aynı zamanda bahsettiğim olay için ziyaret edebilirsin;
Sürekli ziyaret ettiğim bir nevi robotcuların facebook u diyebileceğim bir site var, gir takıl yapılan projeleri incele sana birçok konuda yardımcı olacaktır, bu sitede senin gibi yeni başlayandan tut uçuk kaçık proje yapan arkadaşlara kadar uzanan geniş bir kullanıcı yelpazesine sahip kodları ve şemaları genelde paylaşıyorlar. Site; http://letsmakerobots.com/
Gelelim olayın beynine, mikrodenetleyici tercihi; şimdilerde ortalıkta Arduino diye bir zımbırtı dolaşıyor bu işlere girdiğinde çokça karşına çıkacak. Eğer elektronik ve gömülü sistem programlamaktan zerre anlamıyorsan Arduino ile başlayabilirsin aman emin ol seni tembelliğe alıştırır ve bir mühendisin kullanmaması gereken bir donanım. Onun dışında Pic mikro denetleyicisi veya ARM tabanlı işlemciler var ARM mikro işlemcileri öneririm, biraz araştır. ARM işlemciler günümüzde elektronik cihazların %98 i ARM tabanlı işlemciler kullanılmakta.
Az çok yol göstermek istedim umarım yardımcı olmuşumdur her zaman soru sorabilirsin. Saygılar, Sevgiler, İyi çalışmalar.

Java Dosya Klasör Yolu Öğrenme

2.576 Kişi Okudu

Aşağıda bulunan kod lar çalıştırıldığı zaman bilinmeyen bir bilgisayar üzerinde dosya dizini ulaşma veya dosya kaydetme işlemleri gerçekleştirilir.

public class pc_folder {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		System.out.println("İşletim Sisitemi		     :"+System.getProperty("os.name"));
		System.out.println("Kullanıcı Adı   		     :"+System.getProperty("user.name")); 		
		System.out.println("Kullanıcı Adı Ev Dizini          :"+System.getProperty("user.home"));
		System.out.println("Java Programını Çalıştığı Dizin  :"+System.getProperty("user.dir"));

		
		
	}

}


Seri Porttan Okunan Veriyi Mail Gönderme

3.325 Kişi Okudu

Aşağıdaki kodlar sayesinden seri port üzerinden veri okuyup okunan veri mail olarak gönderilmektedir.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import gnu.io.CommPortIdentifier; 
import gnu.io.SerialPort;
import gnu.io.SerialPortEvent; 
import gnu.io.SerialPortEventListener; 
import java.util.Enumeration;
import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import com.sun.corba.se.spi.orbutil.fsm.Input;


public class SerialTest implements SerialPortEventListener {
	SerialPort serialPort;
        /** The port we're normally going to use. */
	private static final String PORT_NAMES[] = { "COM2", // Windows
};
	/**
	* A BufferedReader which will be fed by a InputStreamReader 
	* converting the bytes into characters 
	* making the displayed results codepage independent
	*/
	private BufferedReader input;
	
	public static String a;
	/** The output stream to the port */
	private OutputStream output;
	/** Milliseconds to block while waiting for port open */
	private static final int TIME_OUT = 2000;
	/** Default bits per second for COM port. */
	private static final int DATA_RATE = 9600;

	public void initialize() {

		CommPortIdentifier portId = null;
		Enumeration portEnum = CommPortIdentifier.getPortIdentifiers();

		//First, Find an instance of serial port as set in PORT_NAMES.
		while (portEnum.hasMoreElements()) {
			CommPortIdentifier currPortId = (CommPortIdentifier) portEnum.nextElement();
			
			for (String portName : PORT_NAMES) {
				
				if (currPortId.getName().equals(portName))
				{
					portId = currPortId;
					System.out.println(currPortId.getName());
					break;
				}
			}
		}
		if (portId == null) {
			System.out.println("Could not find COM port.");
			return;
		}

		try {
			// open serial port, and use class name for the appName.
			serialPort = (SerialPort) portId.open(this.getClass().getName(),
					TIME_OUT);

			// set port parameters
			serialPort.setSerialPortParams(DATA_RATE,
					SerialPort.DATABITS_8,
					SerialPort.STOPBITS_1,
					SerialPort.PARITY_NONE);

			// open the streams
			input = new BufferedReader(new InputStreamReader(serialPort.getInputStream()));
			output = serialPort.getOutputStream();

			// add event listeners
			serialPort.addEventListener(this);
			serialPort.notifyOnDataAvailable(true);
		} catch (Exception e) {
			System.err.println(e.toString());
		}
	}

	/**
	 * This should be called when you stop using the port.
	 * This will prevent port locking on platforms like Linux.
	 */
	public synchronized void close() {
		if (serialPort != null) {
			serialPort.removeEventListener();
			serialPort.close();
		}
	}

	/**
	 * Handle an event on the serial port. Read the data and print it.
	 */
	public synchronized void serialEvent(SerialPortEvent oEvent) {
		
		if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
			try {
				String inputLine=input.readLine();
				System.out.println(inputLine);
				
				char[] gelen = (char[]) inputLine.toCharArray();				
				for (int i=0 ; i<gelen.length;i++ ){="" output.write(gelen[i]);="" }="" gonder("civan.ahmetyasin@gmail.com",inputline,"sensör="" algılandı");="" system.out.println("mail="" gönderildi");="" a="inputLine;" catch="" (exception="" e)="" {="" system.err.println(e.tostring());="" ignore="" all="" the="" other="" eventtypes,="" but="" you="" should="" consider="" ones.="" private="" static="" void="" gonder(string="" tomail,="" string="" note,="" ad){="" final="" username=" Mail Gönderecek Mail Adres " ;="" password=" Sizin Mail Adresinizin Şifresi " properties="" props="new" properties();="" props.put("mail.smtp.auth",="" "true");="" props.put("mail.smtp.starttls.enable",="" props.put("mail.smtp.host",="" "smtp.gmail.com");="" props.put("mail.smtp.port",="" "587");="" session="" new="" javax.mail.authenticator()="" protected="" passwordauthentication="" getpasswordauthentication()="" return="" passwordauthentication(username,="" password);="" });="" try="" message="" mimemessage(session);="" message.setfrom(new="" internetaddress("="" info@microsoft.com"));="" message.setrecipients(message.recipienttype.to,internetaddress.parse(tomail));="" message.setsubject(ad);="" message.settext(note);="" transport.send(message);="" (messagingexception="" throw="" runtimeexception(e);="" public="" main(string[]="" args)="" throws="" exception="" serialtest="" main="new" serialtest();="" main.initialize();="" thread="" t="new" thread()="" run()="" following="" line="" will="" keep="" this="" app="" alive="" for="" 1000="" seconds,="" waiting="" events="" to="" occur="" and="" responding="" them="" (printing="" incoming="" messages="" console).="" {thread.sleep(1000000);}="" (interruptedexception="" ie)="" {}="" };="" t.start();="" system.out.println("started");="" <="" pre=""></gelen.length;i++>

AutoCAD

956 Kişi Okudu

Çizgileri birleştirme,

Öncelikle “Pedit” Komutu girlir birleştirmek istediğimiz çizgiler seçilir, çoklu seçim yapmak istiyorsak “M” yazılır ve ENTER a basılır, “join” komutu seçilir.

1:1 oranda çıktı alma,

File menüsunden “Page Setup Menager” seçilir. Açılan pencerede “Modify” e tıklanır. açılan pencerede “plot area” bölümünden “window” seçilir. Daha sonra çıkartmak istediğimiz parçalar seçilir. “plot style tabe ” bölümünden “monochrome” seçilir

 

Java Resim Üzerine Yazı Yazma

1.400 Kişi Okudu
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;

public class res {
public static void main(String[] args) throws IOException {

int a = 20, b=40,c=0; // değişkenlerin tanımlanması
Image resim = new ImageIcon("C:\\Users\\civan\\Desktop\\dene.jpg").getImage(); // Konumu belirlenen resimin çekilmesi
BufferedImage bufferedImage = ImageIO.read(new File("C:\\Users\\civan\\Desktop\\dene.jpg")); // resim buffera yazıldı
BufferedImage scaledBI = new BufferedImage(bufferedImage.getWidth(), bufferedImage.getHeight(), BufferedImage.TYPE_INT_RGB); // bufferda resim tipi belirlendi
Graphics2D g = scaledBI.createGraphics(); // resmin üzerinde 2 boyutlu işlem yapılacak
g.setComposite(AlphaComposite.Src); // resim tarandı
g.drawImage(resim, 5, 5, bufferedImage.getWidth(), bufferedImage.getHeight(), null);
Font font= new Font("SansSerif ", Font.BOLD, 25); //yazılacak yazı tipi, büyüklüğü belirlendi
g.setFont(font); //belirlenen font g ye aktarıldı

do {
do {

Random rnd = new Random(); // rastgele bir sayı seçildi
int sayı = rnd.nextInt(33) + 1 ; // seçilen sayı 33 ile 1 arasında olsun
Color renk = new Color(sayı*1009000); // değerler dar bir aralıkta olduğu için istediğimiz sayı ile çarpıldı
g.setColor(renk); // renk parametresine aktarıldı
sayı=0; //sayı değeri 0landı
a=a+20; // a değeri 20 arttırıldı bu değer sütün bilgisidir ve yazıların alt alta yazılmasını sağlar
g.drawString("Deneme Yazısı",b,a);
System.out.println(a); // a değeri ekrana yazar
} while(a!=1000); // a değiri 1000 e ulaştığı zaman döndüden çıkar bu da alt alta 1000/20 den 50 defa yazı yazıldığını gösterir.

a=20; // a 20 ye eşitlendi sürekli artmasını önlemek için
b=b+300; // diğer sütüna kayar ve üstteki döngüye tekrar girer
c=c+1; // sağ doğru sütün arttırmak için kullanılır
}while(c!=4); // sağ doğur 4 sütün oluştuğunda çık.

System.out.println("Resim yazıldı"); // resime yazı yazıldı mesajı
g.dispose();
ImageIO.write(scaledBI, "jpg", new File("C:\\Users\\civan\\Desktop\\dene2.jpg")); // yeni resimi kaydet

}
}  

Analog Dijital Çerici ADC

806 Kişi Okudu
unsigned gelen;
void main ()
{
  GPIO_Digital_Output(&GPIOc_ODR, _GPIO_PINMASK_8| _GPIO_PINMASK_9);
  GPIOC_ODR.b8 = 0 ;
  ADC_Set_Input_Channel(_ADC_CHANNEL_1); // adc kanalında 1. pini kullanacağımız belirtilde A1
  ADC1_Init();// Adc Ayarları yapıldı

  do {
    gelen = ADC1_Get_Sample(1);  //ADC 1. pininden gelen veri gelen isimli değişkene aktarılıyor.

   if (gelen<2095 )   //1,6 voltdan küçük olduğu zaman yan
  {               
   GPIOC_ODR.b9 = 1 ;
   GPIOC_ODR.b8 = 0 ;
  }

  else {  // değilse sön
   GPIOC_ODR.b8 = 1 ;
   GPIOC_ODR.b9 = 0 ;
  }
 } while(1);

}

STM32F0 USART MikroC örnek kodları

1.280 Kişi Okudu
 #define   button  GPIOf_ODR.B5

unsigned okunan, yaz;

void main()

{

 GPIO_Digital_output(&GPIOc_ODR, _GPIO_PINMASK_1| _GPIO_PINMASK_2) ;
 GPIO_Digital_Input(&GPIOF_IDR, _GPIO_PINMASK_5);
 GPIO_Digital_Input(&GPIOA_IDR, _GPIO_PINMASK_0);

  UART2_Init(9600);                    // initialize UART2 module
  Delay_ms(100);

 UART_Set_Active(UART2_Read, UART2_Write, UART2_Data_Ready,UART2_Tx_Idle ); // Uart modüllerini aktive ediyor... 
 UART2_Write_Text("Bismillah");   //ilk olarak gönderilen yazı
 delay_ms(100);
 UART2_Write(13); //başlangıç biti
 UART2_Write(10); // bitiş biti

   While (1)
  {
    if(GPIOA_IDR.B0 == 1) {
      UART2_Write_text("Ahmet");
      UART2_Write(13);
      UART2_Write(10);
    delay_ms(100);
   }

   delay_ms(55);
   if(GPIOF_IDR.B5 == 1) {
     UART2_Write_text("yasin");
     UART2_Write(13);
     UART2_Write(10);
     delay_ms(100);
   }
 }
}
Okumaya devam et STM32F0 USART MikroC örnek kodları