shigeの備忘録

日々の生活の備忘録です

GitHubでのバージョン管理 備忘録

 GitHubでのバージョン管理についてメモを残します。

 

 使用したコマンドは以下の通り。すべて覚えること。

    1.git init・・・ルートフォルダに.gitを作成し、Gitでの管理対象とする

    2.git add・・・GitHubにプッシュするファイルを選択する。

       全て上げる場合は [git add --all]

       例えば.pyのものだけプッシュしたい場合は[git add *.py]

    3.git reset・・・git addで追加したファイルを外す

  全て取り消す場合は [git reset ]

    4.git status・・・プッシュするファイルを確認する

    5.git commit -m "comment"・・・プッシュするファイルを紐づけする。-m ""はコメント。

    6.git log・・・紐づけした履歴を表示する

    7.git remote add origin https:GitHub...・・・GitHubにプッシュするリポジトリのURLを選択する

    8.git push origin ****(masterなど)・・・ 紐づけしたファイルを選択したリポジトリにアップロード(プッシュ)する

    9.git branch・・・リポジトリ内で、ブランチを作成する。現在のブランチを確認する。

10. git checkout ****・・・現在のブランチを移動する。

    

    

 

 

①Gitをインストール
Gitと同時に「Git Bash」もインストールされる。
・Git BashはcmdなどでGitの機能が使えるコマンドラインツール
・GitはGitHubと連携して、ソースコードをサーバ管理できるツール

 

GitHubのユーザー登録をする。
GitHubの「Create Repository」から「リモートリポジトリ」を作成する

 

③cmdにて管理したいソースコードのフォルダに移動する。
git init 
⇒.gitフォルダができる

 

④git addコマンドにてアップしたいファイルを選択する。
git add *.py などワイルドカードを使って選択することもできる
間違えて加えてしまった場合
git reset ./test2.md などで個別で戻す
またはgit resetで一括で戻す

addしたファイルは、git status で確認できる。

 

⑤アップしたいファイルが決まれば、git commit -mでコメントを残しつつコミットする
git commit -m "Ver1.0.0"
git log でコミット履歴がわかる

⑥git remote add originでリモートリポジトリに紐づけする
git remote add origin https://github.com/ShigeoYakuno/digital_yatai.git
git remote add origin と アップしたいリポジトリのURL+.git
この時点では、まだアップされない。紐づけされるだけ

 

GitHubにpushする
git push origin master

 

ちなみにリモート先とローカルのリポジトリが一致しなかった場合、

error: failed to push some refs to "URL"

が表示される。

 

個人開発などで、特に問題無い場合は簡単に下記で強制的にプッシュできる

git push --force origin master

 

■ブランチの操作

ブランチを作成する
⑧git branch Ver1.0.1
ブランチの確認
git branch
⇒*がついて緑色になる方が、現在のブランチ

⑨ブランチの移動
git checkout Ver1.0.1

⇒再度git branchすると、作成したブランチに*がつき、緑色になっている。

 

⑩ブランチをプッシュする

git push origin Ver1.0.1

GitHubにブランチが作成される。

 

以上です。

 

 

 

 以下は、参考にしたサイトです。

https://www.kagoya.jp/howto/it-glossary/develop/howtousegithub/

https://codelikes.com/git-add/

https://qiita.com/toshi-toma/items/d0efe37edc38f399c6a5

 

raspberry pi IoT rcloneとGoogle Cloudを使用して、Google Drive上にセンサデータをアップする方法  その② rclone紐づけ偏

①からの続きです。

 

Google Cloudアカウントなどを作ったPCにrcloneをダウンロードします。

Rclone downloads

 

任意のフォルダに解凍します。

ここではd:rcloneとします。

cmdより、同じフォルダに移動して、

rclone authorize "drive" "Client_ID" "Client_secret"と入力します。

IDとsecretは①で取得した値を使用します。

 

途中でブラウザが立ち上がり、アカウント認証が完了すれば、下記のように

Success!と表示されます。

①で記載しましたが、テストユーザーを一人も追加しない場合は、認証が拒否

されますので、注意が必要です。

cmdのほうにaccess tokenが表示されます。このtokenのためにPCにrcloneを入れました。これより先の作業ではPCは不要です。

 

 

access tokenは

Paste the following into your remote machine --->

<---End paste

の間の3行をコピーします。

 

 

いよいよraspberry piでの作業です。

 

インターネットに接続したラズパイより、LXターミナルで下記コマンドを実行します。

$ curl https://rclone.org/install.sh | sudo bash

少し時間がかかるかもしれませんが、インストールが完了すると思います。

その後

①rclone config 

 ⇒n にて新しい接続を作成します。

name は任意ですが、gdrive、googledriveなどにした方が無難でしょう。

 

②種類を選択するところ<strage>は、もちろんgoogle driveの番号を入れてください。

rcloneのバージョンによって番号が変わるようです。

 

③client_ID,crient_secretはその①で取得したIDを使用します。

④scopeは、特にセキュリティなど厳しくなければ「1」でよいでしょう

⑤service account pass は何も入力せず、enterで良いです

⑥edit advanced config はn

⑦use web browser automatically...も n

⑧config_token ここに先程PCで取得したaccess_tokenを入力します

⑨configure this as a shared drive  もn

⑩最後、remote接続し続けてOKか?みたいなところ y で終了

 

これでやっとrcloneとgoogle driveの紐づけが出来ました。

 

ためしにgoogle driveに何かフォルダを作成した状態で

「rclone lsd gdrive」 と入力し、フォルダが見れるか確認してください。

 

あとはラズパイのデータをgdriveに送りたい場合は、

rclone copy 送りたいファイルのパス gdrive:googledriveのフォルダ とすれば

送ることが出来ます。

 

                                以上

 

 

 

 

 

 

 

 

 

raspberry pi IoT rcloneとGoogle Cloudを使用して、Google Drive上にセンサデータをアップする方法  その① Google Cloud 登録偏

※RaspberryPi以外にアカウント作成や、rcloneとgoogleアカウントを紐づけ認証するためにインターネットに繋がるPC(rcloneをダウンロードすることになります)が1台必要です。

 

 

まずはRaspberryPi以外のPCでGoogle CloudでクライアントIDを作成します。

 

 

①赤枠部を押して、新しいプロジェクトを選択し、名前を入れて作成します。  

 

次にAPIとサービスから「ライブラリ」を選択します。

 

 

 

ライブラリの中から「Google Drive API」を選択し、「有効」にします。


 

次に「認証情報」より、「+認証情報を作成」を選択します。

 

OAuth同意画面が項目にありますので選択し、外部を選択し、作成します。

※OAuthとは、複数のWebサービスを連携して動作させるために使われる仕組みです

 

途中でメールアドレスを入力する箇所もありますが、google driveと紐づけしたい

アカウントのアドレスでかまいません。

 

再度認証情報の作成より、今度はOAuthクライアントIDの作成を選択します。

 

 

アプリケーションの種類は、「デスクトップアプリ」を選択します。


以上で、クライアントIDとクライアントシークレットの登録が出来ました。
この情報をrcloneに入力する必要があります。

 

またrcloneをgoogle cloudと紐づけする際、テストユーザーが一人も登録されていなければエラーになります。テストユーザーの登録を行います。こちらもgoogle driveと紐づけしたいアカウントのアドレスでかまいません。

 

 

  続く。。。

 

Raspberry Pi 無線でインターネット、有線でリモート接続を行う方法

Raspberry Piにモニターやキーボード、マウスを繋ぐと面倒なので

リモート接続を行うことはよくあると思います。

 

リモートアプリとしては

・XRDP

VNC

をよく使うと思います。

 

またインターネットに接続して、機能を追加することもよくあると思いますが、

何故かラズパイを、「インターネットに接続している無線LANに接続」しつつ、

プライベートIPにて「有線LANでPCとリモート接続」すると、インターネットに

繋がらないことがありました。

 

1つの解決方法として、eth0のdhcpcd.conf設定を変更することで両方が使えるように

なりましたので、備忘録として記載します。

 

インターネットへの接続が出来たかは、「ping google.com」でpingが返るかで判断

しました。

 

eth0のdhcpcd.confの設定を下記の通り変更しました。

static routers とstatic damain_name_servers の値を全て0にしています。

※設定変更後は再起動が必要です。

 

以上。

 

ラズパイで 複数のUARTを使用する

・まずはUARTを汎用通信ポートとして使用する に変更

 sudo raspi-config

            interface option

                   Serial Port  いいえ⇒はい⇒了解

         

                         

・どのUARTが有効なのかを確認する

 ls /dev  -l

   初期は

serial0 -> ttyS0

  で serial0には、ttyS0が割当たっていると思う。

 

 

・sudo nano /boot/config.txtの編集

 以下の3行を追加。

   

 uart4は、追加したいuartの番号とする。

 3つ使いたい場合は、さらに行を追加すればよい。

 uart2か4が良いみたい。3と5は癖がありそう。1は最初から有効。

 

 

RX23E セルフプログラミング 備忘録 CS+IDEの設定変更偏

RX23Eマイコンのセルフプログラムを実装しています。

はまったところを、備忘録として残します。

環境はCS+です。FITモジュールは使わず(参考程度)、自前で実装しています。

 

・アプリケーションノート R01AN2184JJ0510 Rev.5.10を参考に下記を追加

 

①メモリマップの変更

 RAMの任意の番地にRPFRAMを追加

 ROMの任意の番地にPFRAMを追加

②シンボルファイルの変更

 PFRAM=RPFRAMを追加。0~2は自分の環境では最初から入っていた。

 

以上です。

次はROMからRAMへコピーする箇所を残すつもりです。

 

Tkinterでテクストボックス作成時、'NoneType' object has no attribute エラーが出た原因

 

Tkinterでテクストボックス作成時にget()やinsert()したくてもNoneType' object has no attributeエラーが出た。

 

原因は、ウィジットの作成と配置を同じ行で行っていたからだった。

.place()まで繋げてしまうと関数の戻り値がないためtxt5やbtnが「NoneType」

となってしまいエラーが出る。

 

該当箇所

 

Python Tkinter [エラー内容:'NoneType' object has no attribute 'get']

 

以上