아두이노 기본 세팅

Programming/C,CPP,CS 2014. 3. 2. 14:13 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

아두이노 기본 세팅


1. 아두이노 IDE 다운로드


http://www.arduino.cc/en/main/software

로 접속



스크롤을 내리면





Windows Installer 클릭하여 다운로드 후 설치


2. SparkFun 드라이버 설치


http://www.ftdichip.com/Drivers/VCP.htm








3. Sparkfun SIKcode


sparkfun.com/sikcode

에서 실습용 코드를 받을 수 있다.



'Programming > C,CPP,CS' 카테고리의 다른 글

MFC 시리얼 통신 클래스  (0) 2014.03.08
아두이노 & CPP 시리얼 통신 연동  (0) 2014.03.02
CPP 연산자 오버로딩  (0) 2014.01.16
CPP 연산자 오버로딩  (0) 2014.01.16
비디오 대여점 C 소스코드 예제 #2  (0) 2014.01.10
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Android 화면 크기 읽기, dpi, inch, cm


1. DPI 얻기



DisplayMetrics dm = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(dm);

int dpiClassification = dm.densityDpi;

float xDpi = dm.xdpi;

float yDpi = dm.ydpi;


도트 퍼 인치(Dots per inch, DPI)는 인쇄 디스플레이 해상도의 측정 단위이며, 특히 1 제곱인치 (2.54 제곱센티미터) 공간 안에 만들어진 점이나 화소의 수를 말한다.


ex) DPI 가 30 이라는 말은 30 dots(pixel) 이 1 inch 라는 말이다.


1inch 를 화면에 그리고 싶으면


canvas.drawLine( x , y , x + xdpi , y );



1cm 를 화면에 그리고 싶으면


canvas.drawLine( x , y , x + xdpi / 2.54  , y );



2. 화면의 크기 (pixel)단위


// Load Screen Width Height
Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();  // deprecated
int height = display.getHeight();  // deprecated


'Programming > Android' 카테고리의 다른 글

MediaPlayer Source 선택  (0) 2015.11.16
Android APK 추출 툴  (0) 2014.03.07
Android 지도 테스트  (0) 2014.03.01
Android 2014-03-01 GoogleMap V2 띄우기  (0) 2014.03.01
Android 반짝이는 화면  (0) 2014.02.22

Android 지도 테스트

Programming/Android 2014. 3. 1. 13:10 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);


LocationManager locationManager;

GoogleMap googleMap = ((SupportMapFragment) getSupportFragmentManager()

.findFragmentById(R.id.map)).getMap();

locationManager = (LocationManager) this

.getSystemService(Context.LOCATION_SERVICE);


Criteria criteria = new Criteria();

criteria.setAccuracy(Criteria.ACCURACY_COARSE);

criteria.setAltitudeRequired(false);

criteria.setBearingRequired(false);

criteria.setSpeedRequired(false);


String provider = locationManager.getBestProvider(criteria, true);// "gps";

Location location = locationManager.getLastKnownLocation(provider);


double[] result = new double[] {

location.getLatitude(), location.getLongitude()

};

LatLng myPosition = new LatLng(result[0], result[1]);

googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(myPosition, 15));



Marker myMarker = googleMap

.addMarker(new MarkerOptions()

.position(new LatLng(result[0], result[1]))

.title("MyPosition")

.icon(BitmapDescriptorFactory

.fromResource(R.drawable.ic_launcher)));



'Programming > Android' 카테고리의 다른 글

Android APK 추출 툴  (0) 2014.03.07
Android 화면 크기 읽기, dpi, inch, cm  (0) 2014.03.02
Android 2014-03-01 GoogleMap V2 띄우기  (0) 2014.03.01
Android 반짝이는 화면  (0) 2014.02.22
Android GoogleMap API V2  (0) 2014.01.19
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Android 2014-03-01 GoogleMap V2 띄우기


1. 프로젝트 생성




Comple With 를 GoogleAPIs 버전으로


2. google-play-services_lib 를 Import


이클립스 Project Explorer 에서 우클릭하여 Import





SDK폴더\extras\google\google_play_services\libproject\google-play-services_lib





Import 한 google-play-services-lib 를 Add Library






4. Manifest 수정


<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.example.androidmaptest"

    android:versionCode="1"

    android:versionName="1.0" >


    <uses-sdk

        android:minSdkVersion="8"

        android:targetSdkVersion="18" />


    <permission

        android:name="com.example.androidmaptest.permission.MAPS_RECEIVE"

        android:protectionLevel="signature" />


    <uses-permission android:name="com.example.androidmaptest.permission.MAPS_RECEIVE" />

    <uses-permission android:name="android.permission.INTERNET" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />


    <uses-feature

        android:glEsVersion="0x00020000"

        android:required="true" />


    <application

        android:allowBackup="true"

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <uses-library android:name="com.google.android.maps" />


        <activity

            android:name="com.example.androidmaptest.MainActivity"

            android:label="@string/app_name"

            android:theme="@android:style/Theme.NoTitleBar" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />


                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

        

        <meta-data

            android:name="com.google.android.gms.version"

            android:value="@integer/google_play_services_version" />

        <meta-data

            android:name="com.google.android.maps.v2.API_KEY"

            android:value="API키값" />

   

    </application>


</manifest>



빨간색으로 표시된 패키지명API키값 입력



5. Layout XML 생성

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>



6. 사용할 API키 값 발급 받기


실행 -> cmd 





cmd 창을 띄운후


cd .android 

입력 후


keytool -list -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android 

입력


SHA1 값 저장

( keytool 이 제대로 실행되지 않을시

JAVA jdk 폴더 밑 bin 폴더에 있는 keytool.exe 파일을 .android 폴더로 복사. jli.dll 없다고 할 시 해당 파일도 복사)


https://console.developers.google.com/ 로 접속


로그인 후 프로젝트 생성






생성한 프로젝트를 클릭





APIs & auth 메뉴




Google Maps Android API v2 를 On 으로 변경



Credentials 메뉴 






Android Key 생성





발급 된 키를 사용



그리고


public class MainActivity extends FragmentActivity {


MainActivity 는 Activity 가 아닌 FragmentActivity 를 상속 받는다.




'Programming > Android' 카테고리의 다른 글

Android 화면 크기 읽기, dpi, inch, cm  (0) 2014.03.02
Android 지도 테스트  (0) 2014.03.01
Android 반짝이는 화면  (0) 2014.02.22
Android GoogleMap API V2  (0) 2014.01.19
viewpagertest  (0) 2014.01.14

Android 반짝이는 화면

Programming/Android 2014. 2. 22. 12:10 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

package com.example.androidtest0222;

 

import android.R.bool;

import android.app.Activity;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.os.Bundle;

import android.os.Handler;

import android.util.AttributeSet;

import android.view.Menu;

import android.view.View;

import android.widget.RelativeLayout;

 

public class MainActivity extends Activity {

 

      RelativeLayout backLayout;

 

      @Override

      protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.activity_main);

      }

 

      @Override

      public boolean onCreateOptionsMenu(Menu menu) {

           // Inflate the menu; this adds items to the action bar if it is present.

            getMenuInflater().inflate(R.menu.main, menu);

            return true;

      }

 

}

 

class MyView extends View {

      public MyView(Context context) {

            super(context);

      }

      public MyView(Context context, AttributeSet attri) {

            super(context, attri);

            mHandler.sendEmptyMessageDelayed(0, 500);

      }

      boolean flag = false;

      @Override

      protected void onDraw(Canvas canvas) {

            // TODO Auto-generated method stub

            if(flag)

            {

                  canvas.drawColor(Color.YELLOW);

                  flag = !flag;

            }

            else

            {

                  canvas.drawColor(Color.GREEN);

                  flag = !flag;

            }

            super.onDraw(canvas);

      }

      Handler mHandler = new Handler()

      {

            public void handleMessage(android.os.Message msg) {

                  invalidate();

                  mHandler.sendEmptyMessageDelayed(0, 500);

            };

      };

}

 

'Programming > Android' 카테고리의 다른 글

Android 지도 테스트  (0) 2014.03.01
Android 2014-03-01 GoogleMap V2 띄우기  (0) 2014.03.01
Android GoogleMap API V2  (0) 2014.01.19
viewpagertest  (0) 2014.01.14
Android FrameLayout 예제  (0) 2014.01.12

JAVA 채팅 프로그램 export zip

Programming/JAVA,JSP 2014. 1. 24. 15:32 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

JAVA 채팅 프로그램 export zip





JavaChatting20140124.zip




JavaChatting20140124 #2.zip





JavaChatting20140124 #3.zip





JavaChatting20140124 #4 대화명 변경가능.zip


'Programming > JAVA,JSP' 카테고리의 다른 글

String to int, int to String  (0) 2014.06.07
이클립스 라인넘버 표시  (1) 2014.03.07
JAVA DML  (0) 2014.01.22
JAVA 채팅 프로그램  (0) 2014.01.21
JAVA 채팅 예제 #2  (0) 2014.01.20

JAVA DML

Programming/JAVA,JSP 2014. 1. 22. 16:34 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

INSERT INTO books (title, publisher, year, price)

  VALUES(‘Operating System Concepts’, ‘Wiley’, ‘2003’, 30700);

INSERT INTO books (title, publisher, year, price)

  VALUES(‘Head First PHP and MYSQL’, ‘OReilly’, ‘2009’, 58000);

INSERT INTO books (title, publisher, year, price)

  VALUES(‘C Programming Language’, ‘Prentice-Hall’, ‘1989’, 35000);

INSERT INTO books (title, publisher, year, price)

  VALUES(‘Head First SQL’, ‘OReilly’, ‘2007’, 43700);

'Programming > JAVA,JSP' 카테고리의 다른 글

이클립스 라인넘버 표시  (1) 2014.03.07
JAVA 채팅 프로그램 export zip  (1) 2014.01.24
JAVA 채팅 프로그램  (0) 2014.01.21
JAVA 채팅 예제 #2  (0) 2014.01.20
JAVA 채팅 Server 예제 #1  (0) 2014.01.20

JAVA 채팅 프로그램

Programming/JAVA,JSP 2014. 1. 21. 17:38 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

서버




import java.io.IOException;

import java.net.ServerSocket;

import java.net.Socket;


import javax.swing.DefaultListModel;

import javax.swing.JFrame;

import javax.swing.JList;


class MyFrame extends JFrame {

DefaultListModel listModel ;

MyFrame(DefaultListModel listModel){

this.listModel = listModel;

setSize(600, 400);

setDefaultCloseOperation(this.EXIT_ON_CLOSE);


JList list = new JList(listModel);


add(list);


setVisible(true);

}

}


public class Server {

public static DefaultListModel listModel = new DefaultListModel();

public static void main(String[] args) {

try {


ServerSocket ss = new ServerSocket(5555);

Socket s;


MyFrame mf = new MyFrame(listModel);

while (true) {


s = ss.accept();


listModel.addElement( s.getInetAddress() );

System.out.println("입장 : " + s.getInetAddress());

PerClientThread pc = new PerClientThread();

pc.s = s;

pc.start();


}


} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}


}

}





import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.ArrayList;

public class PerClientThread extends Thread {
public static ArrayList<PrintWriter> printWriterList = new ArrayList<PrintWriter>();
public Socket s;

@Override
public void run() {
PrintWriter out = null;
BufferedReader in = null;
try {
out = new PrintWriter(s.getOutputStream(), true);
printWriterList.add(out);
in = new BufferedReader(new InputStreamReader(s.getInputStream()));
String inputLine;
while((inputLine = in.readLine()) != null)
{
System.out.println( s.getInetAddress() + " : " +  inputLine);
for( int i = 0 ; i < printWriterList.size() ; i++ )
{
printWriterList.get(i).println(inputLine);
}
}
Server.listModel.removeElement(s.getInetAddress());
in.close();
out.close();
s.close();
} catch (IOException e) {
// TODO Auto-generated catch block
System.err.println("발생자 : " + s.getInetAddress());
e.printStackTrace();
Server.listModel.removeElement(s.getInetAddress());
}
Server.listModel.removeElement(s.getInetAddress());
}

}







클라이언트


import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Client {
static JTextField textField;
static JTextArea textArea;
static PrintWriter out;
static BufferedReader in;

public static void main(String[] args) {
try {
Socket s = new Socket("115.20.247.170", 5555);

out = new PrintWriter(s.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(s.getInputStream()));
JFrame f = new JFrame("채팅");
f.setSize(600, 400);
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
textArea = new JTextArea();
JScrollPane sp = new JScrollPane(textArea);
textField = new JTextField(10);
textField.addActionListener(
new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
out.println("TSC : " + textField.getText());
textField.setText("");
}
}

);
f.add(textField, BorderLayout.SOUTH);
f.add(sp, BorderLayout.CENTER);
f.setVisible(true);
ReceiveMSG rMSG = new ReceiveMSG();
rMSG.textArea = textArea;
rMSG.in = in;
rMSG.start();

} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}






import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener;
import java.io.BufferedReader;
import java.io.IOException;

import javax.swing.JTextArea;

public class ReceiveMSG extends Thread {
public JTextArea textArea;

public BufferedReader in;

@Override
public void run() {

while (true) {
try {
String msg;
msg = in.readLine();
textArea.setText(textArea.getText()+ "\n" + msg);
textArea.setCaretPosition(textArea.getDocument().getLength());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

}


'Programming > JAVA,JSP' 카테고리의 다른 글

JAVA 채팅 프로그램 export zip  (1) 2014.01.24
JAVA DML  (0) 2014.01.22
JAVA 채팅 예제 #2  (0) 2014.01.20
JAVA 채팅 Server 예제 #1  (0) 2014.01.20
JAVA 채팅 Client 예제 #1  (0) 2014.01.20

JAVA 채팅 예제 #2

Programming/JAVA,JSP 2014. 1. 20. 17:48 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

import java.io.IOException;

import java.io.ObjectInputStream;

import java.net.ServerSocket;

import java.net.Socket;


public class Server {

public static void main(String[] args) {

try {

ServerSocket ss = new ServerSocket(5555);

Socket s;

while (true) {


s = ss.accept();


System.out.println("입장 : " + s.getInetAddress());

PerClientThread pc = new PerClientThread();

pc.s = s;

pc.start();


}


} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}


}

}







import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.ArrayList;

public class PerClientThread extends Thread {
public static ArrayList<PrintWriter> printWriterList = new ArrayList<PrintWriter>();
public Socket s;

@Override
public void run() {
PrintWriter out = null;
BufferedReader in = null;
try {
out = new PrintWriter(s.getOutputStream(), true);

printWriterList.add(out);
in = new BufferedReader(new InputStreamReader(s.getInputStream()));
String inputLine;
while((inputLine = in.readLine()) != null)
{
System.out.println( s.getInetAddress() + " : " +  inputLine);
for( int i = 0 ; i < printWriterList.size() ; i++ )
{
printWriterList.get(i).println(inputLine);
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
System.err.println("발생자 : " + s.getInetAddress());
e.printStackTrace();
}
}

}









import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Client {
static JTextField textField;
static JTextArea textArea;
static PrintWriter out;
static BufferedReader in;

public static void main(String[] args) {
try {
Socket s = new Socket("115.20.247.170", 5555);

out = new PrintWriter(s.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(s.getInputStream()));
JFrame f = new JFrame("채팅");
f.setSize(600, 400);
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
textArea = new JTextArea();
textField = new JTextField(10);
textField.addActionListener(
new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
out.println(textField.getText());
textField.setText("");
}
}

);
f.add(textField, BorderLayout.SOUTH);
f.add(textArea, BorderLayout.CENTER);
f.setVisible(true);
ReceiveMSG rMSG = new ReceiveMSG();
rMSG.textArea = textArea;
rMSG.in = in;
rMSG.start();

} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}







import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;

import javax.swing.JTextArea;

public class ReceiveMSG extends Thread {
public JTextArea textArea;

public BufferedReader in;

@Override
public void run() {

while (true) {
try {
String msg;
msg = in.readLine();
textArea.setText(textArea.getText()+ "\n" + msg);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

}


'Programming > JAVA,JSP' 카테고리의 다른 글

JAVA DML  (0) 2014.01.22
JAVA 채팅 프로그램  (0) 2014.01.21
JAVA 채팅 Server 예제 #1  (0) 2014.01.20
JAVA 채팅 Client 예제 #1  (0) 2014.01.20
JAVA FIle 실습 #1  (0) 2014.01.17

JAVA 채팅 Server 예제 #1

Programming/JAVA,JSP 2014. 1. 20. 17:28 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

import java.io.IOException;

import java.io.ObjectInputStream;

import java.net.ServerSocket;

import java.net.Socket;


public class Server {

public static void main(String[] args) {

try {

ServerSocket ss = new ServerSocket(5555);

Socket s;

while (true) {


s = ss.accept();


System.out.println("입장 : " + s.getInetAddress());

PerClientThread pc = new PerClientThread();

pc.s = s;

pc.start();


}


} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}


}

}



import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

public class PerClientThread extends Thread {
public Socket s;

@Override
public void run() {
PrintWriter out = null;
BufferedReader in = null;
try {
out = new PrintWriter(s.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(s.getInputStream()));
String inputLine;
while((inputLine = in.readLine()) != null)
{
System.out.println( s.getInetAddress() + " : " +  inputLine);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}


'Programming > JAVA,JSP' 카테고리의 다른 글

JAVA 채팅 프로그램  (0) 2014.01.21
JAVA 채팅 예제 #2  (0) 2014.01.20
JAVA 채팅 Client 예제 #1  (0) 2014.01.20
JAVA FIle 실습 #1  (0) 2014.01.17
JAVA File 실습  (0) 2014.01.17