- 追加された行はこの色です。
- 削除された行はこの色です。
*2013/9/26 ATmega3238Pブートローダ後のスケッチ書き込みメモ [#q6db51f1]
-リセットスイッチにつけるコンデンサは0.1μFだと上手くいくけれども22pFだと書き込みできない(容量が小さすぎて上手くリセットされていないのかも?)
* 2013/9/24 ATmega328Pのブートローダー書き込みメモ(PU) [#p9c3868b]
-ヒューズ設定表
#ref(3_1.png)
-どのブートローダーを使うかはbootloader.txtに載っている
-ATmega328pではhttp://ifdl.ec.t.kanazawa-u.ac.jp/~akita/lt/index.php?Hardware%2FLED_Tile%2F328
#ref(3_2.png)
-手順(巨匠さんの作業日誌も参考にさせて頂きました。)
-図がたくさんで分かりやすい、、、
-http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?Arduino%2F%E8%87%AA%E4%BD%9C
* 2013/9/23 忘備録-Sparkfun.com MP3 Player Shieldを使う時のチュートリアル指定ファイルが存在しない [#s4a9511f]
-Sparkfun.com MP3 Player ShieldをUNOで使う時にインストールするライブラリのピン(SSを10→9)に変更しないといけない。
-https://www.sparkfun.com/tutorials/295 の
#ref(2_1.png)
が存在しないのですが、Arduino/libraries/SdFat/SdFatConfig.hの一番下
#ref(2_2.png)
にありました。ここのCSを10→9に変えると動きました。
* Eclipseを使ってJavaでシリアル通信 [#ga87d6a8]
- 動作環境:Windows7 64bit
- 手順
.轡螢▲訥命を行いたいEclipseのpackage下に追加ライブラリ用のフォルダを作る(名前は何でもいいけど写真ではlib)
#ref(1.png)
追加用のライブラリをインストール
-- http://mfizz.com/oss/rxtx-for-java
このフォルダを解凍した中の、
rxtxParallel.dll
rxtxSerial.dll
RXTXcomm.jar
をコピーして、,離侫ルダ内にペースト
-もしもパソコン自体にインストールしたい場合は、Program Files内のJavaファイルのライブラリに入れる(やってないので動くかは不明)
EclipseでLibrary Pathを追加する
-Eclipseを起動
-まず、新しく作ったフォルダが入っているPackage名を右クリックして、Refreshを選択。(または、Package名を選択後、F5を押す。)
これで、新フォルダがPackageに仲間入り。
-ProjectタブのPropertiesをクリックする。Propertiesの左にJava Build Pathがあるのでクリック。
-Librariesタブをクリック。Add Jars...をクリックして、,悩遒辰織侫ルダ内のRXTXcomm.jarを選択。
#ref(2.png)
-これで設定は完了。あとはプログラムを書くのみ。
ぅ廛蹈哀薀犧鄒
-CommLight.java(メインがあるファイル)
//port check
//JDK check
import java.io.*;
public class CommLight{
static File sharedText;
public static void main(String[] args){
SerialComm serialcomm = new SerialComm();
serialcomm.open();
int i = 10;
while(i>0){
serialcomm.write((byte)0x34);
try{
Thread.sleep(500);
}catch(Exception e){
}
serialcomm.write((byte)0x20);
try{
Thread.sleep(500);
}catch(Exception e){
}
serialcomm.write((byte)0x78);
try{
Thread.sleep(500);
}catch(Exception e){
}
i--;
}
System.out.println("Hello, World");
}
}
-SerialComm.java
import gnu.io.*;
import java.io.*;
import java.util.*;
public class SerialComm implements SerialPortEventListener{
private SerialPort port;
// private static BufferedReader reader;
private InputStream in;
private OutputStream out;
SerialComm(){
super();
}
public void open(){
try {
// Serial port initialize
CommPortIdentifier portId = CommPortIdentifier.getPortIdentifier("COM6");
port = (SerialPort)portId.open("USB Serial Port", 2000);
port.setSerialPortParams(
9600, // í êMë¨ìx[bps]
SerialPort.DATABITS_8, // ÉfÅ[É^ÉrÉbÉgêî
SerialPort.STOPBITS_1, // ÉXÉgÉbÉvÉrÉbÉg
SerialPort.PARITY_NONE // ÉpÉäÉeÉB
9600, // í êMë¨ìx[bps]
SerialPort.DATABITS_8, // ÉfÅ[É^ÉrÉbÉgêî
SerialPort.STOPBITS_1, // ÉXÉgÉbÉvÉrÉbÉg
SerialPort.PARITY_NONE // ÉpÉäÉeÉB
);
port.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);
try{
port.addEventListener(this);
port.notifyOnDataAvailable(true);
in = port.getInputStream();
out = port.getOutputStream();
}catch(TooManyListenersException ex){
System.out.println("Error1: "+ex);
}
} catch (Exception e) {
System.out.println("Error2: " + e);
System.exit(1);
}
}
public void close(){
try{
in.close();
out.close();
port.close();
}catch(Exception e){
System.out.println("close: "+e);
}
}
public void read(){
try{
byte[] buffer;
int temp = in.available();
if(temp>0){
System.out.println("temp: "+temp);
buffer = new byte[temp];
temp = in.read(buffer);
int num = 0;
while(num<temp){
System.out.println("b "+num+": "+Integer.toHexString((byte)buffer[num]));
num++;
}
}
in.close();
}catch(Exception e){
System.out.println("error4: "+e);
}
}
public static String toHex(byte[] digest) {
StringBuilder sb = new StringBuilder();
for (byte b : digest) {
sb.append(String.format("%1$02X", b));
}
return sb.toString();
}
public void write(byte data){
try{
out.write((byte)data);
out.flush();
//ÉXÉgÉäÅ[ÉÄÇ∆COMÉ|Å[ÉgÇï¬Ç∂ÇÈèàóù
//ÉXÉgÉäÅ[ÉÄÇ∆COMÉ|Å[ÉgÇï¬Ç∂ÇÈèàóù
}catch(Exception e){
System.out.println("port exception: "+e);
}
}
public void run() {
try {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
OutputStream out = port.getOutputStream();
boolean flagQuit = false;
while (!flagQuit) {
String input = br.readLine();
if (input.length() > 0) {
if (input.equals(":quit"))
break;
input += "\r";
out.write(input.getBytes("US-ASCII"));
}
}
port.close();
} catch (Exception e) {
System.out.println("Error3: " + e);
}
}
public void serialEvent(SerialPortEvent event) {
if (event.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
read();
}
}
}
ゴ粟