ebook img

Arduino java arayüz programlama notlar PDF

81 Pages·2017·2 MB·Turkish
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Arduino java arayüz programlama notlar

ARDUINO JAVA ARAYÜZ PROGRAMLAMA M. Turhan ÇOBAN Burada ARDUINI mikrodenetleyici kartını java arayüz programıyla nasıl kullanacağınızın örnekleri verilecektir. Javayla ARDUINO denetleyicinizi bağlamak için seri iletişimkanalını kullanmanız gerekir, bunun için ilk işlem java programlarının seri iletişim kurmasını sağlamaktır. Bu iletişimi oluşturacak programlara (RXTX) http://fizzed.com/oss/rxtx-for-java adresinden ulaşabilirsiniz. Bu programlar c dilindedir, bu yüzden kendi bilgisayarınıza uygun olan alt setleri seçerek kullanmalısınız. Benim bilgisayarım 64 bit Windows kökenli olduğundan ben burada bundan bahsedeceğim. Windows 64 için bu siteden mfz-rxtx-2.2-20081207-win-x64.zip dosyası geldi. Bu dosyayı açtığımızda aşağıdaki programları göreceksiniz. Listedeki RXTXcomm.jar dosyasını bilgisayarınızdaki java derleyicisini yerleştirdiğiniz dosya sisteminin altındaki jre\lib\ext dosyasına kaydetmelisiniz. rxtxSerial.dll dosyasını da bilgisayarınızdaki java derleyicisini yerleştirdiğiniz dosya sisteminin altındaki jre\bin dosyasına kaydetmelisiniz. Ayrıca ben burada mikrokontrol sisteminden aldığınız veriyi SQLite veri tabanına kaydederek kullanılmasından da bahsedeceğim. Bunun için de SQLite-java bağlantı programına ihtiyacınız olacak. Bu programı da https://bitbucket.org/xerial/sqlite-jdbc/downloads/ Adresinden edinebilirsiniz. Bu adreste bulacağınız sqlite-jdbc-3.16.1.jar dosyasını da java derleyicisini yerleştirdiğiniz dosya sisteminin altındaki jre\lib\ext dosyasına kaydetmelisiniz. Bu prosesi otomatik yapmak için aşağıda verilen bat dosyasını kullanabilirsiniz. RXTX.bat SET JAVA_HOME=%1 copy sqlite-jdbc-3.16.1.jar %JAVA_HOME%\jre\lib\ext\ copy RXTXcomm.jar %JAVA_HOME%\jre\lib\ext\ copy rxtxSerial.dll %JAVA_HOME%\jre\bin\ Burada değişik projeler üzerinden bu bağlantıları göstermeye çalışacağız. Arduino programlarını yazmak için bir editör ve yükleme programına ihtiyacınız olacak. Bu amaçla kullanabileceğiniz bir editör programını https://www.arduino.cc/en/Main/Software adresinde bulabilirsiniz. Yapısal komutlar  setup()  loop() Kontrol yapıları  if  if...else  for  switch case  while  do... while  break  continue  return  goto diğer sintaxlar  ; (semicolon)  {} (curly braces)  // (single line comment)  /* */ (multi-line comment)  #define  #include Arithmetic Operators  = (assignment operator)  + (addition)  - (subtraction)  * (multiplication)  / (division)  % (modulo) Karşılaştırma deyimleri  == (equal to)  != (not equal to)  < (less than)  > (greater than)  <= (less than or equal to)  >= (greater than or equal to) Mantık operatörleri  && (and)  || (or)  ! (not) Pointer (işaretçi) operatörleri  * dereference operator  & reference operator Bit Operatörleri  & (bitwise and)  | (bitwise or)  ^ (bitwise xor)  ~ (bitwise not)  << (bitshift left)  >> (bitshift right) Birleşik matematik operatörleri  ++ (increment)  -- (decrement)  += (compound addition)  -= (compound subtraction)  *= (compound multiplication)  /= (compound division)  %= (compound modulo)  &= (compound bitwise and)  |= (compound bitwise or) DEĞİŞKENLER Sabitler  HIGH | LOW  INPUT | OUTPUT | INPUT_PULLUP  LED_BUILTIN  true | false  integer constants  floating point constants Veri tipleri  void  boolean  char  unsigned char  byte  int  unsigned int  word  long  unsigned long  short  float  double  string - char array  String - object  array Dönüştürücüler  char()  byte()  int()  word()  long()  float() değişken işaretleri  variable scope  static  volatile  const Yardımcı metod ve değişken  sizeof()  PROGMEM Fonksiyonlar Dijital girdi/çıktı I/O  pinMode()  digitalWrite()  digitalRead() Analog girdi/çıktı I/O  analogReference()  analogRead()  analogWrite() - PWM Due & Zero only  analogReadResolution()  analogWriteResolution() ileri girdi çıktı I/O  tone()  noTone()  shiftOut()  shiftIn()  pulseIn() zaman  millis()  micros()  delay()  delayMicroseconds() Matematik  min()  max()  abs()  constrain()  map()  pow()  sqrt() Trigonometri  sin()  cos()  tan() Karekterler  isAlphaNumeric()  isAlpha()  isAscii()  isWhitespace()  isControl()  isDigit()  isGraph()  isLowerCase()  isPrintable()  isPunct()  isSpace()  isUpperCase()  isHexadecimalDigit() Tesadüfi sayılar  randomSeed()  random() Bit ve baytlar  lowByte()  highByte()  bitRead()  bitWrite()  bitSet()  bitClear()  bit() dış durdurma  attachInterrupt()  detachInterrupt() durdurma  interrupts()  noInterrupts() iletişim  Serial  Stream USB (32u4 temelli devreler ve Due/Zero için)  Keyboard  Mouse C/C++ temelli arduino programlama kodlarının detayları için Bu program arduinoda abcdefg harflerini yazdırmaktadır. Programı Arduinoya aktarmak için Dogrula/Derle komutuyla derleyerek yükle komutuyla mikroprosesöre göndermemiz gerekir. Yükle komutu önce derlediği için tek olarak ta kullanılabilir. Program çıktısını serport ekranından da görebiliriz (bu editör programı da veriyi okumak için RXTX iletişimi kullanmaktadır ve aslında java dilinde yazılmıştır) Biz bunu javaya aktararak görmek istiyoruz. Seri kanal iletişimi açmak için önce bir küçük iletişim kanal açma programı oluşturalım. Bu program grafik ekranda arduino ile iletişim kuracak seri kanalı açacaktır. import java.awt.BorderLayout; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.Enumeration; import java.util.HashMap; import gnu.io.CommPort; import gnu.io.CommPortIdentifier; import gnu.io.SerialPort; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; /** * Choose a port, any port! * * Java Communications is a "standard extention" and must be downloaded and * installed separately from the JDK before you can even compile this program. * * @author Ian F. Darwin, http://www.darwinsys.com/ * @version $Id: PortChooser.java,v 1.9 2004/04/11 23:50:40 ian Exp $ * methods added by M. Turhan Coban 18.11.2011 */ public class PortChooser extends JDialog implements ItemListener { /** A mapping from names to CommPortIdentifiers. */ protected HashMap map = new HashMap(); /** The name of the choice the user made. */ protected String selectedPortName; /** The CommPortIdentifier the user chose. */ protected CommPortIdentifier selectedPortIdentifier; /** The JComboBox for serial ports */ protected JComboBox serialPortsChoice; /** The JComboBox for parallel ports */ protected JComboBox parallelPortsChoice; /** The JComboBox for anything else */ protected JComboBox other; /** The SerialPort object */ protected SerialPort ttya; /** To display the chosen */ protected JLabel choice; /** Padding in the GUI */ protected final int PAD = 5; /** * This will be called from either of the JComboBoxen when the user selects * any given item. */ public void itemStateChanged(ItemEvent e) { // Get the name selectedPortName = (String) ((JComboBox) e.getSource()) .getSelectedItem(); // Get the given CommPortIdentifier selectedPortIdentifier = (CommPortIdentifier) map.get(selectedPortName); // Display the name. choice.setText(selectedPortName); } /* The public "getter" to retrieve the chosen port by name. */ public String getSelectedName() { return selectedPortName; } /* The public "getter" to retrieve the selection by CommPortIdentifier. */ public CommPortIdentifier getSelectedIdentifier() { return selectedPortIdentifier; } /** A test program to show up this chooser. */ public static void main(String[] ap) { PortChooser c = new PortChooser(null); c.setVisible(true); // blocking wait System.out.println("Seçtiğiniz kanal " + c.getSelectedName() + " (known by " + c.getSelectedIdentifier() + ")."); System.exit(0); } public static CommPortIdentifier select_port(JFrame parent) { PortChooser c = new PortChooser(parent); c.setVisible(true); // blocking wait return c.getSelectedIdentifier(); } /** * Construct a PortChooser --make the GUI and populate the ComboBoxes. */ public PortChooser(JFrame parent) { super(parent, "Datalogger bağlantısı kanal seçici ", true); makeGUI(); populate(); finishGUI(); } /** * Build the GUI. You can ignore this for now if you have not yet worked * through the GUI chapter. Your mileage may vary. */ protected void makeGUI() { Container cp = getContentPane(); JPanel centerPanel = new JPanel(); cp.add(BorderLayout.CENTER, centerPanel); centerPanel.setLayout(new GridLayout(0, 2, PAD, PAD)); centerPanel.add(new JLabel("seri bağlantılar ", JLabel.RIGHT)); serialPortsChoice = new JComboBox(); centerPanel.add(serialPortsChoice); serialPortsChoice.setEnabled(false); centerPanel.add(new JLabel("paralel bağlantılar ", JLabel.RIGHT)); parallelPortsChoice = new JComboBox(); centerPanel.add(parallelPortsChoice); parallelPortsChoice.setEnabled(false); centerPanel.add(new JLabel("Bilinmiyen bağlantılar", JLabel.RIGHT)); other = new JComboBox(); centerPanel.add(other); other.setEnabled(false); centerPanel.add(new JLabel("Sizin seçiminiz :", JLabel.RIGHT)); centerPanel.add(choice = new JLabel()); JButton okButton; cp.add(BorderLayout.SOUTH, okButton = new JButton("SEÇTİKTEN SONRA BASINIZ")); okButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { PortChooser.this.dispose(); } }); } /** * Populate the ComboBoxes by asking the Java Communications API what ports * it has. Since the initial information comes from a Properties file, it * may not exactly reflect your hardware. */ protected void populate() { // get list of ports available on this particular computer, // by calling static method in CommPortIdentifier. Enumeration pList = CommPortIdentifier.getPortIdentifiers(); // Process the list, putting serial and parallel into ComboBoxes while (pList.hasMoreElements()) { CommPortIdentifier cpi = (CommPortIdentifier) pList.nextElement(); // System.out.println("Port " + cpi.getName()); map.put(cpi.getName(), cpi); if (cpi.getPortType() == CommPortIdentifier.PORT_SERIAL) { serialPortsChoice.setEnabled(true); serialPortsChoice.addItem(cpi.getName()); } else if (cpi.getPortType() == CommPortIdentifier.PORT_PARALLEL) { parallelPortsChoice.setEnabled(true); parallelPortsChoice.addItem(cpi.getName()); } else { other.setEnabled(true); other.addItem(cpi.getName()); } } serialPortsChoice.setSelectedIndex(-1); parallelPortsChoice.setSelectedIndex(-1); } protected void finishGUI() {

Description:
Listedeki RXTXcomm.jar dosyasını bilgisayarınızdaki java derleyicisini yerleştirdiğiniz dosya sisteminin altındaki jre\lib\ext dosyasına kaydetmelisiniz.
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.