-
しばさんお騒がせして申し訳ありません。
PCを何回か再起動してUSBポートを3.0ではなく、2.0の方のポートにGalileoを繋ぐと無事解決しました。
途中にバスパワーのハブを噛ませても問題なく動きました。2014/03/01
-
kilifさんリアルタイムクロックを使おうと思ったのですが、検索してもArduino側からアクセスする方法が見つかりません。下記リンクなどではLinuxコマンドを使っていますが、これしかないんでしょうか。
https://communities.intel.com/message/209423#209423
イヤホンジャックのRS232CもArduinoのSerialやSerial1で使う方法が見つからないので、機能が多いように見えてもArduinoでは使いにくい感じがします。2014/03/02
-
はにゃさんkilif さん
Arduino IDEでコンパイルしているアプリというものが、只の linux用のx86 32bit ELFコードであり、linux ライブラリを使えるということを認識しておけば、いろいろできることがわかります。
というわけで回答は大きくわけて2つあります。
方法A 時刻関数群による時刻取得
方法B RTCアクセス (/dev/rtc への ioctl)による時刻取得
方法Aは ntpdなりで動作したときにOSの持っている時刻としてちゃんと認識しますが、
方法Bは CMOS read による実装で、dateコマンドなどで時刻設定しても反映されません。
お勧めはAです。
[方法A]
#include <sys/time.h>
void setup() {
char *cmd = "/bin/date 0302034214";
char buf[64];
FILE *ptr;
if ((ptr = popen(cmd, "r")) != NULL)
{
while (fgets(buf, 64, ptr) != NULL)
{
Serial.print(buf);
}
}
(void) pclose(ptr);
}
void loop() {
char buf[64];
time_t now;
struct tm t1;
now = time(NULL);
gmtime_r(&now, &t1);
sprintf(buf, "%04d-%02d-%02d %02d:%02d:%02d\r\n",
t1.tm_year+1900, t1.tm_mon+1, t1.tm_mday,
t1.tm_hour, t1.tm_min, t1.tm_sec
);
Serial.print(buf);
delay(1000);
}
[方法B]
#define RTC_DEVICE_FILE "/dev/rtc"
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <linux/rtc.h>
void setup()
{
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop()
{
// put your main code here, to run repeatedly:
char buf[64];
int fd;
struct rtc_time t1 ;
if( (fd = open( RTC_DEVICE_FILE, O_RDONLY ))< 0 ) {
Serial.print("OPEN ERROR");
delay(1000);
return;
}
if( ioctl( fd, RTC_RD_TIME, &t1 ) < 0 ){
Serial.print("IOCTL ERROR");
delay(1000);
return;
}
sprintf(buf, "%04d-%02d-%02d %02d:%02d:%02d\r\n",
t1.tm_year+1900, t1.tm_mon+1, t1.tm_mday,
t1.tm_hour, t1.tm_min, t1.tm_sec
);
Serial.print(buf);
close(fd);
delay(1000);
}2014/03/02
-
kilifさん>はにゃさん
ありがとうございます。やはりGalileoではLinuxのライブラリを使うのが簡単なんですね。
AとBの比較でRTCをシステムの時刻と混同していた節があることもわかりました。
Aの方法ではSetupの最初で時刻を手動で与えているようですが、仰る通りntpdateなどで時刻合わせをしてから使うというのがネットワークが使える環境ではスムーズという理解です。
ひとまずAのシステム時刻取得で書いていきたいと思います。ありがとうございましたm(__)m2014/03/02
-
つきさん今回は、雑談レベルの素朴な疑問です。
ソフトばかりいじっていたので、ハードも手を付けないといけないと思い、
SainSmart グラフィック液晶 LCD4884 シールドを開けたのですが、
液晶部分がぽろっと取れました。
壊したか?加工不良か?と非常に焦りました。
でも、嵌めこんでUnoに付けるとちゃんと動くんです。
なぜだかご存知の方いらっしゃいますか?
液晶の上側にある小さい四角いのが接続しているのでしょうか?
Galileoではやはりそのままではコンパイルも通りませんでした。
試したサンプルソース
https://s3-ap-northeast-1.amazonaws.com/sain-amzn/20/20-0...2014/03/03
-
ちばとどさん> つき さん
なぜだかわたしにもわかりませんが、ちゃんと連絡が維持できているから表示できるのでしょうね。
きれいな表示器ですね。バックライトが液晶部と離れていて、基板ととれてしまっても大丈夫(?)なフレキシブルケーブルレスの仕様がすてきです。ジョグSWもカッコいい。
SPIですね。わたしもSPIを多用することになるのですが(未着手)、むずかしいですか?
ハマりそうになったら、相談に乗ってくださいね。2014/03/03
-
ヒロ妨さん私のボードも、MicroSDカードからの起動ができません。
SSは、MicroSDカードのファイルです。
つきさんと同じく、色々SDカードで試してみましたが、起動しません。
PCと接続して、スケッチの書き込みは出来ますが、電源切るとスケッチが保存されていないので、SDカード廻りだけのトラブルでしょうか?
ファームのアップデートも実施してあります。2014/03/03
-
つきさんちばとど さん
GalileoでLCD4884のサンプルコードを動かすのはあきらめました。
ヘッダファイルのincludeのネストが深すぎて追えませんでした。
ジョイスティックはA0で読めるので、作成中です。
グラフィックLCD部分も自作することにしました。(T^T)
表示速度がとても心配です。2014/03/03
Galileo 雑談