コンテンツへスキップ

python boot campに参加したので、内容、スケジュール、感想を書きました。また、pythonの実装方法について調べたこともまとめています。

2019/11/2にpython boot campに参加してきました。

目次

  • python boot camp とは
  • 内容
  • あとで調べたこと
  • 感想

python boot camp とは

python boot camp

PyCon JPではこれまでも年に1回東京で開催されるPyCon JPイベントでPythonを学べるチュートリアル講座を開催してきました。 今回は、以下のような人たちにPythonを知ってもらえる機会を提供できたらという思いで、Python Boot Camp(略してPyCamp)を企画しました。

python boot camp -connpass

主催は一般社団法人PyCon JP。

Python boot camp -PyCon JP

内容

スケジュール (全体13:00~17:00)

  • 13:00~15:00 文法、データ型
  • 15:10~16:50 ファイル入出力とモジュール、スクレイピング
  • 16:50~ アンケートと写真撮影

下記参照のチュートリアルのうち、いくらか飛ばしてさくさく進めて行きました。

Python Boot Camp Text 2016.04.28 ドキュメント

あとで調べたこと

質疑応答の中で「cで実装されたpythonとjavaで実装されたpythonと、あとmicropythonとか、pythonで実装されたpythonがあって」というようなことを言っていて「!!??」となったので調べました。

pythonには実装形式が異なる様々なバリエーションがあるようです。

Cpython: C言語で実装されたPython

標準の処理系で、pythonの仕様を表したソフトウェアと言えます。計算はあまり早くありません。

Jython: Javaで実装されたPython

JVM(Java Virtual Machine)上に実装されたJavaなどの言語のメソッドが簡単に使えます。 ちなみに、Javaは仮想マシンJVM上で動きます。これによってOSに依存せず動きます。

ただし、Python3には対応してないみたいです。 =>News -Jython

IronPython: C#で実装されたPython

.NET FrameworkとPythonライブラリを使用でき、他の.NET言語はPythonコードを使用できます。

IronPython2.7はpython2.7対応。python3系対応バージョンは開発中らしいです。

PyPy: Pythonで実装されたPython

Python言語(2.7.13および3.6.9)で実装された言語。Just-in-Timeコンパイラによって、大規模なPythonコードを省スペースで高速に実行できます。

micropython: マイコン上で動くように作られたpython

マイクロコントローラー上および制約された環境で実行するように最適化された言語です。python3で実装されています。非常にコンパクトです。

Cython: pythonっぽいコンパイラ言語

Pythonプログラミング言語と拡張Cythonプログラミング言語の両方に最適な、言語兼コンパイラーです。Python自体と同じくらい簡単に、Python用のC拡張機能を記述できます。

Cythonの処理系ではソースファイルをCのコードに変換し、コンパイルするとPythonの拡張モジュールになるようにして出力します。

所感

pythonはグルー(のり)言語と言われているように、様々な言語と連携して使用することを目指して開発されているという印象です。しかし、python3系に対応しきれていないものが複数あり、python2からpython3になった当時の衝撃の鱗片を感じました。

.NETやマイコンでも使えるというのは興味があるので、ぼちぼち勉強してみたいなと思います。

参考

次に読みたい

[Cython ―Cとの融合によるPythonの高速化] O'Reilly Japan Kurt W. Smith (著), 中田 秀基 (監修), 長尾 高弘  (翻訳)

[退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング] O'Reilly Japan Al Sweigart  (著), 相川 愛三 (翻訳)

Automate the Boring Stuff with Python

[ハイパフォーマンスPython] O'Reilly Japan Micha Gorelick (著), Ian Ozsvald (著), 相川 愛三 (翻訳)

感想

事前に記法はprogateでやった後、科学技術計算の本を読み終えていた。そのため、 参加する前に基本文法 モジュールのインポートやフロー制御は分かっていた。 また、DXFデータ(CAD用のデータ)の出力を自動化することができていた。(しばらくしたらブログ化する予定)

前半の内容はほぼ知っていたことだったが、集合setやタプルの使用シーンなどの細かい部分を改めて勉強することは有益だった。また、モジュールをインストールする環境を仮想環境venvにしておくことで、モジュールのバージョンが上がっても過去のモジュールが使用でき、過去のモジュールでしか上手く使用できないようなAPIを上手く使える、というような知恵も得られた。また、CpythonやJython, micropythonなどのように様々な方法で実装されたバージョンがあることが分かり、実装方法に興味がわいた。

エラーが出てもすぐに聞けるため、時間的なコスパは移動時間を含めてもかなり良かったのでは無いかと思う。また、参加やのほとんどはある程度pythonを自学していたり多言語を触ったりしたことがある人が多かったためか、作業中よりも質疑に対する回答が大変ためになった。全体的に、学びが多い勉強会だった。

この場で感謝申し上げます。ありがとうございました。

マイクロマウス大会へ向けて動いていきたいと思います!今回はハードを作成しました。

マイクロマウス大会へ向けて動いていきたいと思います!

今回はハードを作成しました。special thanks for Furuta!!!

目次

  • マイクロマウスとは
  • 機能
  • 回路 
  • PCB
  • 部品
  • 基板注文
  • 完成
  • 雑記

マイクロマウスとは

迷路を自律走行ロボットが探索してゴールを目指す大会です。ゴールできたら、経過時間を競います。

公式:マイクロマウス2019 -公共財団ニューテクノロジー振興財団

機能

機能は以下のようになっています。EEPROMとは 不揮発性メモリの一種で 、マイコンに書き込んだデータを記憶してくれる物です。

  • 電源 12V-5V-3.3V
  • EEPROM
  • LED
  • スイッチ入力
  • 距離センサ 発光/ 受光
  • モータドライブ

回路

回路図はこちらです。お好きなマイコンをお使いください。

PCB

上の回路をKiCADでPCBデータにしました。

部品

多くは秋月電子へのリンクになっています。部品数は確認しましたが正確ではないかも知れませんのでご了承ください。

機能部品名個数備考
ICソケット28pin1
ICソケット8pin1
マイコンLPC1
モータードライバーa498821
XH3pinベース12
タクトスイッチ4
コンデンサ0.1uF6
EEPROM 24LC64-I/P1
LED3
RLED用3305
3端子レギュレータ12V-5V78051
3端子レギュレータ5V-3.3VLP29501
C100uF5
赤外線LED33
npnトランジスタ8050SL-C-T92-K3
R1k8
R10k14
R474
赤外線受光NJL7302L44
C0.01uF4
ステッピングモーター21
PH6pinハウジング 2
C220uF2
XH6pinハウジング2
XH6pinベース2
XH4pinハウジング2
XH4pinベース2
ピンヘッダ2pin6
VHベース2pin1
バッテリ3S12V 1000mA1+予備
鉄板底板15
スペーサー30mm2
スペーサー20mm2
スペーサー25mm4
スペーサー10mm 4
プラねじ とナットM34
熱収縮チューブ Φ5センサ用カバー1
R3.3k2
トグルスイッチ16
PHハウジング6pinモータ接続用2
PH圧着端子8
XH圧着端子32

チップ抵抗の読み方

  1. 解説動画です。https://www.youtube.com/watch?v=5CmjB4WF5XA
  2. ピンヘッドでも可
  3. 貰った物なのでわからないですが、 これとか。受光素子が反応する周波数を確認してください。
  4. これも貰った物なので、たぶんこれであろうと思うものを記載しました
  5. 貰ったものです。ミスミなどで買ったと思われます。
  6. カバーを取り外しました。

基板注文

注文したのはelecrowさんです。

注文方法に関しては過去のこちらの記事や他の方のブログなどをご覧ください。=>KiCADでプリント基板を作ってElecrowさんに注文

完成品

完成!電圧も大丈夫そうです。マウスのサイズになりました。

雑記

次からは動作確認をしています。

ジャンル:IoT 前回 =>Web × IoT メイカーズチャレンジに参加-前編

概要

今回web IoT メイカーズチャレンジのハッカソンに参加し、結果ありがたいことに最優秀賞をいただくことができました。作ったのは動く植木鉢「uekibati 2.5 動く苔」です。

web IoT メイカーズチャレンジとは

前回のをコピペ

Web×IoT メイカーズチャレンジでは、こうした「フルスタックなスキル」やアイデアを素早く形にできる「プロトタイピング力」を身につける機会としていただけるよう、実際にモノづくりを体験する 2 つのプロセスでイベントを構成 下記HPより引用

https://webiotmakers.github.io/

ラズパイとjavascritを使ったIoTをやってみような総務省主催のイベントです。日本各地でやっているらしいですが、俺は前橋でやりました。 12/15,16,1/19,20で開催されます。

HP=> https://webiotmakers.github.io/

作ったもの

動く植木鉢「uekibati 2.5 動く苔」です。下に簡単に機能を説明します。

生育環境情報の取得

気温、湿度、気圧、土壌の湿り気を取得します。CHIRIMENを使用してセンサから情報を取得しています。

動く

窓辺などで使用していると、洗濯物などによって植木鉢がある場所が暗くなると日陰から移動します。

光センサから取得する情報が一定値を下回ると移動を開始、一定値を上回ると停止します。光センサのライントレースで移動します。ラズパイでやるのは大変なのでarduinoでやってます。

取得情報の通知

IFTTTを使用してuekibatiが移動を開始した時に光度や湿度などを通知します。

顔の表示

湿り気などが規定値を超えるとLEDの顔が^v^から泣き顔に変化します。

喋る

移動を開始するときに「暗いので移動するよ」「明るいので止まるよ」など言う。このあたりのことは全く分かりません。

特典について

raspberry pi 3 model B+ をいただきました。また、東京で3月に行われるスマートIoT推進フォーラム総会に招待していただき展示させていただけるそうです。

雑談

通知が私の役割だったんですが、全然ダメでした。マジ悔しい。javascriptの構文すらいまいちわかってなかったのは完全に準備不足でした。 3月までに通知機能のみではなく、擬似的に会話できていると感じられるようにしたいです。

追記(2019/3/11):最優秀賞の特典として、スマートIoT推進フォーラムにお招き頂き、3/8にパネルで作品を紹介させて頂きました。全国の代表のアイデアや技術を学ぶことができました。さまざまな方と繋がることができる良い機会となりました。ありがとうございました。

追記(2019/3/18) 段落構成を変更しました。内容は変更ありません。