トップ «前の日記(2015-05-22(Fri)) 最新 次の日記(2015-05-24(Sun))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2015-05-23(Sat) 日をまたいだ。さて天気は、まだ知らない

シリアルポートから

Arduino UNO3は電源とデータ転送に USBシリアルが使える。
これは任意のデータ転送にも使える。
ただし、Arduinoに事前に接続して待機、ということはできない。
Arduino IDE でプログラム転送時にエラーになった。
それをやりたいなら、別に接続を考えないと、ということかしら。

void setup()
{
  Serial.begin(115200);
}
 
void loop()
{
  Serial.println("hello");
  delay(2000);
}

を転送してから、kermitで接続すると、

C-Kermit> set line /dev/ttyACM0
C-Kermit> set speed 115200
C-Kermit> connect
Connecting to /dev/ttyACM0, speed 115200
 Escape character: Ctrl-\ (ASCII 28, FS): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
----------------------------------------------------
hello
hello
hello

接続当初、最初の"hello"が化けることもあった。
二行目からは化けなくなった。

setup()の最後に delay(10000);くらいすれば、 転送後に悠々とkermitでアクセスして、loop()を待つことができた。

ついでに回転と塗り潰し

dist upgrade

昨日の変な画像に追加する。

$ for num in `seq 30`; do echo $num
>    convert -resize 80%  -rotate 3  first.png second.png
>    composite -background black -gravity Center second.png first.png third.png
>    mv third.png first.png
>  done

で、 できた画像
当初 convert に -transparent white を加えてみたが、 傾いた部分の仕上がり がいまいちなので、 composite に -backgroud black しておいた。

なぜ光る

auto on

端子の短絡で光る回路にしようかと、 PIN13にLEDと抵抗器を接続し、PIN11とPIN12に それぞれジャンパワイヤ を挿して、どことも接続しないでおいた。
スケッチは次のように書いた。

const int LED = 13;
const int ON_PIN1 = 12;
const int ON_PIN2 = 11;
int val = 0;
 
void setup()
{
  pinMode(LED, OUTPUT);
  pinMode(ON_PIN1, OUTPUT);
  pinMode(ON_PIN2, INPUT);
  digitalWrite(ON_PIN1, HIGH);
}
 
void loop()
{
  val = digitalRead(ON_PIN2);
  if (val==1) {
  digitalWrite(LED, HIGH);
  }else{
    digitalWrite(LED,LOW);
  }
}

すると、手をワイヤに近づけると光るようになった。
PIN11からワイヤを抜くと、手を近づけても光らない。 PIN12は、あってもなくても同じ。

s/ON_PIN1//g しても変わらない。
PIN10などにも挿してもLEDが勝手に点くことはない。

arduino-mk

ubuntu-14.04 にパッケージがあった。
なんかMakefileの集まりらしい。Arduino IDE が入ってる環境なら、 必要なものは大体入ってしまう模様。
適当に試行錯誤して、/usr/share/arduino から Arduino.mk と Common.mk を借りてきた。
/usr/share/doc/arduino-mk/examples の下から、Makefile も貰ってきた。
hoge.ino のあるディレクトリにMakefileを置いて、make すると、build-uno という ディレクトリが掘られて、関係しそうなファイルが一山。
hoge.elf とかhoge.hexとかは作られていたが、C言語(への変換は、もはやしないのだろうか) でどうなるものなのかは、よく分からない。
make upload で嵌った。/dev/ttyACM0をどこに指定するのかが。
適当に検索して、 Makefileに書くらしいという情報。

BOARD_TAG    = uno
ARDUINO_PORT = /dev/ttyACM0
ARDUINO_LIBS =
 
include ../Arduino.mk

で、Make uploadでArduinoにプログラムが伝送されて 実行されることを確認。
ログは適当に伏せ字にしておいた。
アップロードするだけでも、その都度ビルドするのはなんだかという気がする。


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。