yamadaTarouの日記

日々の生活を書いてます。誰か宛てではなく、自分宛て。もはや自〇行為(オ〇ニー)と同じ

Raspberry Pi 入門-カメラホルダーの組み立て方法-

Raspberry Piのカメラとカメラホルダーを購入しました。

ただ、台座の組み立て手順が記載されていなかったので、簡単な手順書を記載します。

 

まず、購入サイトはAmazonの以下のページです。

 

www.amazon.co.jp

 

他にもカメラモジュールは販売されていますが、

Raspberry Pi Zero用のケーブル付きで最安は上記のページでした。

 

続きを読む

raspberry Pi 入門②

今回はLEDを光らせるとこまで、やってみます。

 

【部品】

・抵抗(220Ω)

・ジャンプワイヤー(オス×メス)×2

・5mm赤色LED

・ブレットボード

なお、Amazonさんでスターターキット的なやつが販売しているので、これを買うのもアリ。(私みたいな素人が調子に乗ってバラで買うより、断然いいと思います。)

www.amazon.co.jp

 

では、下準備をしていきましょう。

 

【ハード】

以下のように回路をつなぎます。

f:id:yamadaTarou:20200614005610p:plain

Lチカ-回路図

上記は「Fritzing」というツールを使って作成しました。直感的に操作ができるので、初心者の私でも楽勝でした。

以下のサイトからベータ版をダウンロードして使用しました。

https://www.malavida.com/jp/soft/fritzing/

 

なお、必ず抵抗器をつけるようにしてください!抵抗器を付けないと、LEDがショートして煙がでます。。。マジです。(下の画像の左側がショートしたLEDです。)

f:id:yamadaTarou:20200614010143j:plain

左:ショートしたLED、右:ショートしていないLED

 

【ソフト】

ソフトはC言語を使用します。

適当なディレクトリに「ledControl.c」というファイルを作成し、以下のコードをコピペします。

#include <wiringPi.h>
#define GPIO17 17
#define LED_ON 1
#define LED_OFF 0

int main(void) {
  int i;

  if(wiringPiSetupGpio() == -1) return 1;
  pinMode(GPIO17, OUTPUT);
  for(i=0; i<10; i++){
    digitalWrite(GPIO17, LED_ON);
    delay(950);
    digitalWrite(GPIO17, LED_OFF);
    delay(800);
}
digitalWrite(GPIO17, 0);

return 0;
}

 

以下のコマンドで、コンパイルをしてください。

コンパイルが成功したら、「ledControl」ファイルが作成されているはずです。

$gcc -Wall -o ledControl ledControl.c -lwiringPi

 

そして、コンパイルしたファイルを実行したら、10回ほどLEDがチカチカ光ります。

$sudo ./ledControl

 

成功動画

www.youtube.com

 

これで、スタートラインに少し立てた気がしますね!

・・・気のせいか汗

 

参考サイト

Raspberry PiのGPIO制御方法を確認する(GPIO制御編その1)│ツール・ラボ

 ラズベリーパイでLEDを制御しよう。WiringPiを使ってC言語で制御。

raspberry Pi 入門①

今月、会社でやることがなくなってしまったため、業務時間中にrasbpberry Piの勉強をすることになりました。

Javaのお勉強を改めてしようかなと思った矢先だったので、記事の内容が点でバラバラになってしまっていますが。。。

 

用意した機材

Raspberry Pi Zero WH

・USB-microUSB変換ケーブル(microUSB-typeB(オス)-USB(メス))

・モニター

HDMI変換アダプタ(HDMI(オス) -HDMI(メス))

・microSDCHカード(TOSHIBA製 MU-J016GX)

 

基本的な手順は以下のサイト通り

 【ラズパイ初心者向け】Raspberry Pi Zero W セットアップ方法(2018年9月版)

 https://www.shumi-tech.online/entry/2018/09/24/%E3%80%90%E3%83%A9%E3%82%BA%E3%83%91%E3%82%A4%E5%88%9D%E5%BF%83%E8%80%85%E5%90%91%E3%81%91%E3%80%91Raspberry_Pi_Zero_W_%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E6%96%B9%E6%B3%95%EF%BC%8820

 

1.OSインストール

1-1.SDカードのフォーマット

以下のサイトより、フォーマット用ソフトをインストールし、フォーマットをする。

www.sdcard.org

 

1-2.OSのダウンロード

以下のサイトより、OSをダウンロードします。

ftp.jaist.ac.jp

私は「raspbian-2020-02-14」リリースの「2020-02-13-raspbian-buster.zip」をダウンロードし、解凍しました。

解凍すると、「2020-02-13-raspbian-buster.img」というディスクイメージファイルがあります。

上記のサイトは日本のミラーサイトのようです。このサイトを使用すると、wi-fiの設定ができませんでした。

そのため、公式サイトからダウンロードしなおしてOSを入れたら、wi-fiの認識ができました。

www.raspberrypi.org

 

1-3.OSのインストール

ディスクイメージファイルを、1-1のツールでSDカードにインストール。

f:id:yamadaTarou:20200604104156p:plain

Etcher

 

EtcherでディスクイメージファイルをSDカードにインストールすると、以下のように展開されます。
 

f:id:yamadaTarou:20200605100425p:plain

imgファイルの展開後

 

2.OS初期設定(ここからは、スマホで撮った写真になります。)

 2-1.ラズパイの接続

以下のように、SDカード、モニター、キーボード、電源ケーブルを挿します。

f:id:yamadaTarou:20200605101934p:plain

ラズパイの接続

成功すると、電源ケーブル脇のランプが緑色に光ります。

 

2-2.初期設定

起動させてしばらくすると、welcom画面が表示されるので初期設定をしていきます。

f:id:yamadaTarou:20200605102856j:plain

 

国・言語設定

f:id:yamadaTarou:20200605102741j:plain

 

パスワード設定

f:id:yamadaTarou:20200605102806j:plain

 

スクリーン設定

(デフォルトのチェックなしで進めました。)

f:id:yamadaTarou:20200605102819j:plain

 

wi-fi設定

wi-fiを見つけてくれなかったので、次に進めました。)

f:id:yamadaTarou:20200605102830j:plain

 ⇒後日、OSを公式サイトからダウンロードしたら、wi-fiが認識されました。

 

アップデート

f:id:yamadaTarou:20200605102842j:plain

 

アップデートして、初期設定が完了します。

ただ、私の場合はwi-fiに接続できず、アップデートに失敗しました。。。

失敗しても再起動すれば、とりあえずは使用できます。

  

 

Mavenその1(概要~インストールまで)

Mavenといえば、Javaでのビルドツールとして近年有名。
知識不足な私としては、単純にビルドするだけでいいんじゃないのか。
わざわざそういったツールが必要なのか、よくわからなかったので、
そこら辺からまとめてみた。

 

続きを読む

レビュー方法

下書き書いたのに、保存できていなかった(涙)

先日、後輩からレビュー方法について質問されたので、

一般的?なレビュー方法をまとめようと思います。
(自分が経験してきたレビュー方法)

 

続きを読む

実行可能なjarファイルとは

本日、Mavenのお勉強中に「実行可能なjarファイル」という単語と遭遇したので、jarファイルについてまとめようと思う。

 

まず、Jarファイルの実行方法について、順を追ってみていきたい。

①以下のようなテストクラスを作成する。

package test;

public class TestJar{ public static void main(String args[]){

System.out.println("HelloWorld");

}}

 

②クラスファイルを実行すると、HelloWorldが出力される。

$javac test/TestJar.java

→TestJar.classファイル作成

$java test.TestJar

→HelloWorldが出力される。

 

③で、同様にjarにして実行してみるとどうなるだろうか。

$jar cf TestJar.jar test/

→TestJar.jarファイル作成

$java -jar TestJar.jar

→jarファイルの実行

TestJar.jarにメイン・マニフェスト属性がありません」が出力される。

原因としては、jar自体には複数のMainClassを持たせることができるが、どのMainClassを実行するのか定義されていない、ことが原因。

そこで、MANIFEST.MFファイルにメイン・マニフェスト属性を追加することが必要。

 

④マニュフェストファイルの追加

ファイル名:test.txt(jarと同じ階層)

Main-Class: test.TestJar

※マニュフェストファイルの拡張子はなんでもいいっぽい。

 

⑤マニュフェストの更新

$jar uvfm TestJar.jar test.txt

test.txtファイルのマニュフェストをJarに更新する。

 

⑥Jarの実行

$java -jar test.TestJar.jar

→「HelloWorld」が出力される。

 

なお、フォルダ階層は以下の感じ。

D://

│ test.txt (マニュフェストファイル)
│ TestJar.jar (testフォルダをjarに変換したアーカイブ

└─test
  TestJar.class
  TestJar.java

 

このように、jarファイルを単に作るだけでは、jarファイルの実行は不可。

つまり、実行可能なjarファイルとは、マニュフェストを更新して「javaコマンドで実行できる状態にしたjarファイル」のことである。(と思う)

 

jarファイルって、今までjavaのファイルをまとめただけ、程度の認識だったんだけど、こうしてみると、ちょっと違うんですね。

 

続きを読む

jarとwarとearのまとめ

javaを勉強する上でしばしば登場するjar/war/earについて、いつもどれがどれだったのか忘れるので、一度まとめてみます。

 

①jar

Java ARchiveの略。
コンパイルされた複数のjavaファイルと、それらが使用する画像などのリソースを、1つにまとめてzip形式で圧縮したもの。

 

②war

Web application ARchiveの略。
jarを含み、HTMLファイル、設定ファイルなどを1つにまとめて、zip形式で圧縮したもの。

 

③ear

Enterprise ARchiveの略
Java EE※アプリーケーションのパッケージ形式。
jar/warファイルを含み、それらの構成を管理するapplication.xmlを含んだ、zip形式のファイル
Java EEとは、(Java Platform, Enterprise Edition)の略で、企業向けのjavaフレームワーク。なお、Enterpiseについて調べたところ大企業のシステム・会社全体のシステムといった意味らしい。

 

つまり、

jar<war<ear

というようなファイルの大きさのようだ。

ただ、earファイルってあまり扱ったことがないので、ちょっと認識がずれているかも。