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);
}
}
Selasa, 26 November 2013
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);
}
}
/*
* 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);
}
}
/*
* 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);
}
}
/*
* 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);
}
}
/*
* 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
- -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
- -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:
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
- -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:
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:
Untuk bisa mengaplikasikan pemrograman mikrokontroller AVR kita harus menginstal beberapa software pendukung, yaitu:
- avr-gcc
- avr-libc
- avrdude
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
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
- eclipse --> http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/kepler/SR1/eclipse-cpp-kepler-SR1-linux-gtk.tar.gz
- jdk -->
- gcc-avr
- binutils-avr
- gdb-avr
- avr-libc
- avrdude
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:
Sumber :
Berikut caranya:
- Download terlebih dahulu Python 3.3.2 bzipped source tarbal (for Linux, Unix or Mac OS X)
- Masuk ke folder Download dengan perintah : cd Download
- Ubah hak akses file Python-3.3.2.tar.bz2 dengan perintah : chmod 755 Python-3.3.2.tar.bz2
- Extract file Python-3.3.2.tar.bz2 dengan perintah : tar xvf Python-3.3.2.tar.bz2
- Masuk ke Folder Python-3.3.2 dengan perintah : cd Python-3.3.2
- Terus ketikkan perintah ini : ./configure --prefix=/usr/local
- Setelah selesai, ketikan perintah ini : make && sudo make altinstall
- Apabila installasi telah selesai maka kita panggil python3.3.2 dengan perintah : python3.3 <enter>
Sumber :
- http://askubuntu.com/questions/316542/python-3-3-2-installation
- http://askubuntu.com/questions/244544/how-to-install-python-3-3
- http://askubuntu.com/questions/337409/problem-in-installing-python-3-3-in-ubuntu-12-04
Langganan:
Postingan (Atom)