Selasa, 26 November 2013

Membuat Kurva (Cubic Curve Segment) dengan Java

Program:
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package DrawingGeometricPrimitives;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.geom.Arc2D;
import java.awt.geom.CubicCurve2D;
import java.awt.geom.QuadCurve2D;
import javax.swing.JApplet;
import javax.swing.JFrame;

/**
 *
 * @author abdul
 */
public class CubicCurveSegment extends JApplet{
    int x1 = 5;
    int y1 = 100;
    int x2 = 55;
    int y2 = 100;
    int x1Lengkung = 10;
    int y1Lengkung = 5;
    int x2Lengkung = 40;
    int y2Lengkung = 150;
    //frame
    static int wFrame =300;
    static int hFrame = 300;
   
    @Override
    public void paint(Graphics g ){
        Graphics2D g2 = (Graphics2D) g;
        //Controlling Rendering Quality
        RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g2.setRenderingHints(rh);
        g2.draw(new CubicCurve2D.Double(x1, y1, x1Lengkung, y1Lengkung,x2Lengkung,y2Lengkung,x2,y2));
    }
   
    public static void main(String[] args){
        JFrame f = new JFrame("CubicCurve2D");
        f.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e){
                System.exit(0);
            }
        });
        JApplet applet = new CubicCurveSegment();
        f.getContentPane().add(applet);
        f.pack();
        f.setSize(wFrame, hFrame);
        f.setVisible(true);
    }
}
 


Membuat Kurva (Quadratic Curve Segment) degan Java

Program:
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package DrawingGeometricPrimitives;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.geom.Arc2D;
import java.awt.geom.QuadCurve2D;
import javax.swing.JApplet;
import javax.swing.JFrame;

/**
 *
 * @author abdul
 */
public class QuadraticCurveSegment extends JApplet{
    int x1 = 5;
    int y1 = 5;
    int x2 = 233;
    int y2 = 233;
    int wLengkung = 110;
    int hLengkung = 210;
    static int wFrame =300;
    static int hFrame = 300;
   
    @Override
    public void paint(Graphics g ){
        Graphics2D g2 = (Graphics2D) g;
        //Controlling Rendering Quality
        RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g2.setRenderingHints(rh);
        g2.draw(new QuadCurve2D.Double(x1, y1, wLengkung, hLengkung,x2,y2));
    }
   
    public static void main(String[] args){
        JFrame f = new JFrame("QuadCurve2D");
        f.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e){
                System.exit(0);
            }
        });
        JApplet applet = new QuadraticCurveSegment();
        f.getContentPane().add(applet);
        f.pack();
        f.setSize(wFrame, hFrame);
        f.setVisible(true);
    }
}
 


Membuat Setengah Lingkaran atau garis Lengkng

Program:
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package DrawingGeometricPrimitives;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.geom.Arc2D;
import javax.swing.JApplet;
import javax.swing.JFrame;

/**
 *
 * @author abdul
 */
public class Arc extends JApplet{
    int x = 5;
    int y = 5;
    int wLengkung = 100;
    int hLengkung = 50;
    int titikStart = 35;
    int luasDerajat = 190;
    static int wFrame =300;
    static int hFrame = 300;
   
    @Override
    public void paint(Graphics g ){
        Graphics2D g2 = (Graphics2D) g;
        //Controlling Rendering Quality
        RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g2.setRenderingHints(rh);
        g2.draw(new Arc2D.Double(x, y, wLengkung, hLengkung,titikStart,luasDerajat,Arc2D.OPEN));
    }
   
    public static void main(String[] args){
        JFrame f = new JFrame("Arc2D");
        f.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e){
                System.exit(0);
            }
        });
        JApplet applet = new Arc();
        f.getContentPane().add(applet);
        f.pack();
        f.setSize(wFrame, hFrame);
        f.setVisible(true);
    }
}
 


Membuat Elipse dengan Java

Program:
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package DrawingGeometricPrimitives;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.geom.Ellipse2D;
import javax.swing.JApplet;
import javax.swing.JFrame;

/**
 *
 * @author abdul
 */
public class Ellipse extends JApplet{
    int x = 50;
    int y = 50;
    int w = 100;
    int h = 50;
    static int wFrame =300;
    static int hFrame = 300;
   
    @Override
    public void paint(Graphics g ){
        Graphics2D g2 = (Graphics2D) g;
        //Controlling Rendering Quality
        RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g2.setRenderingHints(rh);
        g2.draw(new Ellipse2D.Double(x, y, w, h));
    }
   
    public static void main(String[] args){
        JFrame f = new JFrame("Ellipse2D");
        f.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e){
                System.exit(0);
            }
        });
        JApplet applet = new Ellipse();
        f.getContentPane().add(applet);
        f.pack();
        f.setSize(wFrame, hFrame);
        f.setVisible(true);
    }
}

Membuat Persegi empat dengan Lengkungan


Program:
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package DrawingGeometricPrimitives;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.geom.Rectangle2D;
import java.awt.geom.RoundRectangle2D;
import javax.swing.JApplet;
import javax.swing.JFrame;

/**
 *
 * @author abdul
 */
public class RoundRectangle extends JApplet{
    int x = 50;
    int y = 50;
    int w = 100;
    int h = 100;
    int wLengkng = 55;
    int hLengkung = 55;
    static int wFrame =300;
    static int hFrame = 300;
   
    @Override
    public void paint(Graphics g ){
        Graphics2D g2 = (Graphics2D) g;
        //Controlling Rendering Quality
        RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g2.setRenderingHints(rh);
        g2.draw(new RoundRectangle2D.Double(x, y, w, h,wLengkng,hLengkung));
    }
   
    public static void main(String[] args){
        JFrame f = new JFrame("RoundRectangle2D");
        f.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e){
                System.exit(0);
            }
        });
        JApplet applet = new RoundRectangle();
        f.getContentPane().add(applet);
        f.pack();
        f.setSize(wFrame, hFrame);
        f.setVisible(true);
    }
}
 


Membuat Emat Pesegi Panjang dengan Java

Program:
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package DrawingGeometricPrimitives;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.geom.Rectangle2D;
import javax.swing.JApplet;
import javax.swing.JFrame;

/**
 *
 * @author abdul
 */
public class Rectangle extends JApplet{
    int x = 50;
    int y = 50;
    int w = 100;
    int h = 100;
    static int wFrame =300;
    static int hFrame = 300;
   
    @Override
    public void paint(Graphics g ){
        Graphics2D g2 = (Graphics2D) g;
        //Controlling Rendering Quality
        RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g2.setRenderingHints(rh);
        g2.draw(new Rectangle2D.Double(x, y, w, h));
    }
   
    public static void main(String[] args){
        JFrame f = new JFrame("Rectangle2D");
        f.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e){
                System.exit(0);
            }
        });
        JApplet applet = new Rectangle();
        f.getContentPane().add(applet);
        f.pack();
        f.setSize(wFrame, hFrame);
        f.setVisible(true);
    }
}
 


Membuat Garis dengan Java



Program:
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package DrawingGeometricPrimitives;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JApplet;
import javax.swing.JFrame;

/**
 *
 * @author abdul
 */
public class Line extends JApplet{
    int x1 = 100;
    int y1 = 100;
    int x2 = 200;
    int y2 = 200;
   
    @Override
    public void paint(Graphics g ){
        Graphics2D g2 = (Graphics2D) g;
        //Controlling Rendering Quality
        RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g2.setRenderingHints(rh);
        g2.drawLine(x1, y1, x2, y2);
    }
   
    public static void main(String[] args){
        JFrame f = new JFrame();
        f.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e){
                System.exit(0);
            }
        });
        JApplet applet = new Line();
        f.getContentPane().add(applet);
        f.pack();
        f.setSize(300, 300);
        f.setVisible(true);
    }
}

Selasa, 05 November 2013

Clearing and Setting Bits ATMega16


Setting and clearing a single bit, without changing any other bits, is a common task in AVR microcontroller programming. You will use these techniques over and over again.
When manipulating a single bit, it is often necessary to have a byte value in which only the bit of interest is set. This byte can then be used with bitwise operations to manipulate that one bit. Let's call this a bit value mask. For example, the bit value mask for bit 2 would be 00000100 and the bit value mask for bit 6 would be 01000000.
Since the number 1 is represented in binary with only bit 0 set, you can get the bit value mask for a given bit by left shifting 1 by the bit number of interest. For example, to get the bit value mask for bit 2, left shift 1 by 2.

To set a bit in C, OR the value with the bit value mask.
uint8_t a = 0x08; /* 00001000 */
                  /* set bit 2 */
a |= (1<<2);      /* 00001100 */
Use multiple OR operators to set multiple bits.
uint8_t a = 0x08;   /* 00001000 */
                    /* set bits 1 and 2 */
a |= (1<<2)|(1<<1); /* 00001110 */
To clear a bit in C, NOT the bit value mask so that the bit of interest is the only bit cleared, and then AND that with the value.
uint8_t a = 0x0F; /* 00001111 */
                  /* clear bit 2 */
a &= ~(1<<2);     /* 00001011 */
Use multiple OR operators to clear multiple bits.
uint8_t a = 0x0F;      /* 00001111 */
                       /* clear bit 1 and 2 */
a &= ~((1<<2)|(1<<1)); /* 00001001 */
To toggle a bit in C, XOR the value with the bit value mask.
uint8_t a = 0x0F; /* 00001111 */
                  /* toggle bit 2 */
a ^= (1<<2);      /* 00001011 */
a ^= (1<<2);      /* 00001111 */
 
Source http://www.micahcarrick.com/tutorials/avr-microcontroller-tutorial/avr-c-programming.html 


Senin, 04 November 2013

Mengkompilasi program c dengan avr-gcc

Kompilasi Program C


Program C harus dikompilasi menjadi HEX Intel Format berkas. Ini adalah format yang dilewatkan ke AVRDUDE yang memberitahu programmer AVR apa untuk program ke mikrokontroler. File HEX dibuat dalam dua langkah.

Pertama, AVR-gcc akan digunakan untuk menyusun program blink.c C menjadi ELF biner (executable dan Format Linkable) file objek. Ini file baru akan diberi nama blink.elf.

avr-gcc -mmcu=atmega328p -Wall -Os -o blink.elf blink.c

  • -mmcu, memberitahu compiler yang mikrokontroler AVR kode sedang dikompilasi untuk. Jika Anda tidak menggunakan ATmega328P maka Anda akan perlu untuk mengubahnya ke AVR yang Anda gunakan.
  • -Wall ternyata pada semua peringatan compiler yang wajar yang akan membantu memastikan bahwa Anda sedang menulis kode yang baik. Setiap kali Anda melihat peringatan Anda akan ingin menyelidiki apa artinya.
  • -Os adalah bendera optimasi yang memberitahu compiler untuk mengoptimalkan kode untuk pemanfaatan ruang yang efisien.
  • -o argumen menentukan blink.elf sebagai nama file output.

Selanjutnya, AVR-objcopy salinan bagian tertentu dari data biner dari file blink.elf ke format file Intel HEX baru. File baru akan diberi nama blink.hex.

avr-objcopy -j .text -j .data -O ihex blink.elf blink.hex

  • -j menentukan Bagian memori untuk menyalin dari file ELF. Hal ini digunakan dua kali, sekali untuk menyalin bagian teks. Dan sekali untuk bagian data.. Bagian teks. Berisi petunjuk mesin yang membentuk program. Bagian data. Berisi berbagai data statis digunakan dalam program.
  • -O opsi ihex menentukan Intel HEX sebagai format output.
  • blink.elf dilewatkan sebagai file input dan blink.hex ditetapkan sebagai output file.

Contoh Program:

#define F_CPU 11059200UL

#include <avr/io.h>
#include <util/delay.h>

int main (void){
    DDRB = 0xFF; 
    
    while(1){
        PORTB =0xFF;
        _delay_ms(500);
  PORTB =0xFF;
        _delay_ms(500);
    }
}
 
Pemrograman Mikrokontroler AVR

Sekarang untuk saat kebenaran. File blink.hex sekarang akan diprogram ke dalam mikrokontroler menggunakan program AVRDUDE. Pastikan programmer AVR terhubung ke sirkuit dan ke komputer Anda dan bahwa rangkaian memiliki kekuasaan. Kemudian Anda dapat menjalankan perintah AVRDUDE:

avrdude -p m328p -c usbtiny -e -U flash:w:blink.hex

  • -p menentukan AVR nomor bagian mikrokontroler yang diprogram. Jika Anda tidak menggunakan ATmega328P maka Anda akan perlu menentukan AVR yang Anda gunakan.
  • -c menentukan programmer AVR yang Anda gunakan. Jika Anda tidak menggunakan USBtinyISP maka Anda akan perlu menentukan programmer AVR yang Anda gunakan.
  • -e menghapus chip sebelum menulis konten baru
  • -U Flash: w: blink.hex melakukan operasi memori: Flash adalah jenis memori, w adalah untuk "menulis" operasi, dan blink.hex adalah nama file untuk menulis. Dengan kata lain, "tulis blink.hex ke memori flash".





Pemrograman Mikrokontroller AVR di Linux Ubuntu-12.04

Bismillahirohmanirrohiim.

Untuk bisa mengaplikasikan pemrograman mikrokontroller AVR kita harus menginstal beberapa software pendukung, yaitu:
  1. avr-gcc
  2. avr-libc
  3. avrdude
avr-gcc sebagai kompilasi dari program kita.
avr-libc adalah library yang dipakai dalam pemrograman kita.
avrdude sebagai downloader dari hasil kompilasi program kita.

Untuk installasi sangat mudah, tinggal koneksi modem dan buka terminal.
keetikkan perintah ini:
sudo apt-get install gcc-avr avr-libc avrdude

Sabtu, 02 November 2013

Install avr-eclipse di linux Ubuntu12.04

Download Software

  • eclipse --> http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/kepler/SR1/eclipse-cpp-kepler-SR1-linux-gtk.tar.gz

  • jdk -->
http://download.oracle.com/otn-pub/java/jdk-nb/7u45-7.4/jdk-7u45-nb-7_4-linux-i586.sh
  • gcc-avr
  • binutils-avr
  • gdb-avr
  • avr-libc
  • avrdude
Perintahnya seperti ini:
sudo apt-get install gcc-avr binutils-avr gdb-avr avr-libc avrdude

Tambahkan plugin avr-eclipse, Help > Install New Software...


http://avr-eclipse.sourceforge.net/updatesite
 
 


Kamis, 19 September 2013

Install Python-3.3.2.tar.bz2 di Linux Ubuntu12.04 secara offline (tidak terkoneksi dengan internet)

Pada Ubuntu versi 12.04 default Python yang terinstal adalah versi 2.7.3, untuk install Python versi 3.3.2 kita bisa menginstalnya secara offline (tidak terkoneksi dengan internet).
Berikut caranya:
  1. Download terlebih dahulu Python 3.3.2 bzipped source tarbal (for Linux, Unix or Mac OS X)
  2. Masuk ke folder Download dengan perintah : cd Download
  3. Ubah hak akses file Python-3.3.2.tar.bz2 dengan perintah : chmod 755 Python-3.3.2.tar.bz2
  4. Extract file Python-3.3.2.tar.bz2 dengan perintah : tar xvf Python-3.3.2.tar.bz2
  5. Masuk ke Folder Python-3.3.2 dengan perintah : cd Python-3.3.2
  6. Terus ketikkan perintah ini : ./configure --prefix=/usr/local
  7. Setelah selesai, ketikan perintah ini : make && sudo make altinstall
  8. Apabila installasi telah selesai maka kita panggil python3.3.2 dengan perintah : python3.3 <enter>

Sumber :
  1. http://askubuntu.com/questions/316542/python-3-3-2-installation
  2. http://askubuntu.com/questions/244544/how-to-install-python-3-3
  3. http://askubuntu.com/questions/337409/problem-in-installing-python-3-3-in-ubuntu-12-04