Armadilloフォーラム

USBデバイスの接続

yuuto_koube

2014年4月9日 20時29分

いつもお世話になっております。

いくつかお伺いしたいのですが、回答いただけますでしょうか。

使用デバイス :armadillo-440
開発環境   :atde4

1、USBデバイスを認識するのに必要な設定(カーネル及びユーザーランド)がありますか?

2、rs232c-USB変換機を用いてarduinoから値の取得を試みておりますが
ardiunoもUSBデバイスとして認識できるのでしょうか?。
ちなみに以下の記事を利用してプログラムを作成し、Teratermへの出力を試みましたが値の出力を確認できませんでした。
参考URL: http://armadillo.atmark-techno.com/faq/serial-programming

作成したプログラム

#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <termios.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
 
#define SERIAL_PORT "/dev/sd1"  /* シリアルインターフェースに対応するデバイスファイル */
 
int main(int argc, char *argv[])
{
    char buf[2];                    /* バッファ */
    int fd;
    int i;                           /* ファイルディスクリプタ */
    struct termios oldtio, newtio;    /* シリアル通信設定 */
 
    fd = open(SERIAL_PORT, O_RDWR);   /* デバイスをオープンする */
 
      do{ 
    read(fd, buf, sizeof(buf));       /* デバイスから読み込み */
       printf("%d", buf[0]);
    printf("%d", buf[1]);
    printf("%d\n", buf[2]);
     }while( buf[0] = '\n' );
    close(fd);                        /* デバイスのクローズ */
    printf("Hello World!\n");
    return 0;
}

3、Qtを用いてarmadillo-440の液晶パネルにgifアニメーションを表示させたいのですが
  カーネル及びユーザーランドの設定が必要でしょうか?
  必要ならば変更箇所もご教授いただけると幸いです。
  ※Qtはver_4.8.2です。Qtcreatorは、ver_2.5.2

以上、何卒よろしくお願いいたします。

コメント

取り急ぎ、気になった点だけ。
1. USB機器をA440に繋いで認識させたいということでしたら、デバイスによってはカーネルの設定が必要でしょう。
ATDEでmake menuconfigしてDeviceDriverのUSBの辺りですね。
2. USBtoSerialをどっち向きで繋いでいるんでしょうか。A440側がUSBなら、変換器がUSB機器として認識されます。
つまり、変換器のドライバーを組み込まないといけないということです。上記に該当しますね。
逆に、A440側がシリアルなら、ただのシリアルポートです。その場合はUSBは関係ありません。
尚、そのプログラムはシリアルポートの設定をしていないようですので巧く動くと思えません。
ついでに言えば、配列の範囲外をアクセスしているのでその辺もアレですね。
それと、そのプログラムでは入力を試みているようですが……
3.Qtは私も試してみたいと思いつつ暇がなくて試してません。
AtmarkTechnoさんのサイトのHowTo記事がありますから、先ずはそちらをご覧になっては如何でしょう。

お世話になっております。

> 3、Qtを用いてarmadillo-440の液晶パネルにgifアニメーションを表示させたいのですが
>   カーネル及びユーザーランドの設定が必要でしょうか?
>   必要ならば変更箇所もご教授いただけると幸いです。

Armadillo-410でgifアニメーションを表示させることは可能でしょうか?
この投稿を見ましたが、解決できておりましたらご教授いただけると助かります。
Qtで作成したプログラムからgifアニメを表示させようとしたところ、ホスト上では表示されましたが
ターゲット上では非表示となってしまいました。

よろしくお願いいたします。

at_takashi.sasayama

2015年3月3日 17時03分

笹山です。

> Qtで作成したプログラムからgifアニメを表示させようとしたところ、ホスト上では表示されましたが
> ターゲット上では非表示となってしまいました。

QMovie で gifアニメーションの表示を行われていますか?
それですと、ホストでは表示されるのに、Armadilloで表示されないのは、
Armadillo に libqgif.so (gifプラグイン) が追加されていないのが原因です。

例として QMovie::supportedFormats() を実行すると、
ホスト(ATDE4)と、Armadillo では結果が異なると思います。

サンプルコード

    QMovie *movie = new QMovie("animation.gif");
    qDebug() << "Supported format:" << movie->supportedFormats();
    QLabel *processLabel = new QLabel(this);
    processLabel->setMovie(movie);
    movie->start();

ホスト(ATDE4) での結果

    Supported format: ("gif", "mng") 

Armadilloでの結果

    Supported format: ("")

Howto : Armadillo-440でQt! 第2回
http://armadillo.atmark-techno.com/howto/armadillo-440-qt-2

上記 Howto で公開している ユーザーランドをお使いでしたら、
atmark/atmark-dist-qt-20121105/vendors/AtmarkTechno/Armadillo-440.Qt にある
hello_qml/Makefile
hello_qt/Makefile
samegame/Makefile
のいずれか1つを編集し、INSTALL_QT_PLUGINS に libqgif.so を追加してください。

hello_qml/Makefile の編集例

1 TARGET=hello_qml
2 INSTALL_FONTS=TakaoPGothic.ttf
3 INSTALL_QT_PLUGINS=libqtslibmousedriver.so libqgif.so # libqgif.so を追加

編集後、ユーザーランドの再ビルドを行いますと、
/usr/local/Trolltech/Qt-4.8.3-qws-armel/plugins/imageformats/libqgif.so が
ユーザーランドイメージに含まれ、gifアニメーションを表示できるようになります。

QMovie::supportedFormats() では gif が確認できるようになります。

libqgif.so 追加後の Armadilloでの結果

    Supported format: ("gif")

お世話になります。
高田です。

ご回答ありがとうございます。

> QMovie で gifアニメーションの表示を行われていますか?

はい、上記で表示を行っています。
ご教授いただいた方法でgifアニメーションを表示することができました。
ありがとうございました。