ESP32を始めてみる
キタ━━━━(゚∀゚)━━━━!!
待ちに待ったESP32の取り扱いが秋月電子で始まりました。
さっそく入手したので初めてみます。
変換基板はまだなく*1そのままではブレットボードに挿せないのでピンヘッダとピンソケットを交互に半田付けしました。
半田付けができたらQitaの記事を参考に配線をします。
ESP32(ESP-WROOM-32)でLチカ - Qiita
・3v3 → 3v3
・GND → GND
・IO0 → 10KΩで3v3
・EN → 10KΩで3v3
・TX → RX
・RX → TX
配線できたらPCにつなぎArduino IDEのシリアルモニタ、teraterm等で開きます。
以下のような起動メッセージが出ました。正しく配線できたようです。
ets Jun 8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
ets Jun 8 2016 00:22:57
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3ffc0000,len:0
load:0x3ffc0000,len:2304
load:0x40078000,len:3788
ho 0 tail 12 room 4
load:0x40098000,len:532
entry 0x4009813c
[1;36m
[0m[1;36m**************************************
[0m[1;36m* hello espressif ESP32! *
[0m[1;36m* 2nd boot is running! *
[0m[1;36m* version (V0.1) *
[0m[1;36m**************************************
[0m[0;36mcompile time 18:16:58
[0m[0;36m SPI Speed : 40MHz
[0m[0;36m SPI Mode : DIO
[0m[0;36m SPI Flash Size : 4MB
[0m[1;36mPartition Table:
[0m[1;36m## Label Usage Type ST Offset Length
[0m[1;36m 0 factory factory app 00 00 00010000 00100000
[0m[1;36m 1 rfdata RF data 01 01 00110000 00040000
[0m[1;36m 2 wifidata WiFi data 01 02 00150000 00040000
[0m[1;36mEnd of partition table
[0m[1;36mLoading app partition at offset 00010000
[0m[0;36msection 0: paddr=0x00000020 vaddr=0x00000000 size=0x0ffe8 ( 65512)
[0m[0;36msection 1: paddr=0x00010010 vaddr=0x3f400010 size=0x05b64 ( 23396) map
[0m[0;36msection 2: paddr=0x00015b7c vaddr=0x3ffba720 size=0x01378 ( 4984) load
[0m[0;36msection 3: paddr=0x00016efc vaddr=0x40080000 size=0x00400 ( 1024) load
[0m[0;36msection 4: paddr=0x00017304 vaddr=0x40080400 size=0x126ac ( 75436) load
[0m[0;36msection 5: paddr=0x000299b8 vaddr=0x00000000 size=0x06658 ( 26200)
[0m[0;36msection 6: paddr=0x00030018 vaddr=0x400d0018 size=0x325b4 (206260) map
[0m[0;36mstart: 0x400807ac
[0mInitializing heap allocator:
Region 19: 3FFBBA98 len 00024568 tag 0
Region 25: 3FFE8000 len 00018000 tag 1
Pro cpu up.
Pro cpu start user code
nvs_flash_init
frc2_timer_task_hdl:3ffbc564, prio:22, stack:2048
tcpip_task_hdlxxx : 3ffbeca8, prio:20,stack:2048
phy_version: 80, Aug 26 2016, 13:04:06, 0
pp_task_hdl : 3ffc34f0, prio:23, stack:8192
:>enter uart init
uart init wait fifo succeed
exit uart init
IDF version : master(db93bceb)
WIFI LIB version : master(934d079b)
ssc version : master(r283 4d376412)
!!!ready!!!
mode : softAP(26:0a:c4:05:5d:ac)
dhcp server start:(ip: 192.168.4.1, mask: 255.255.255.0, gw: 192.168.4.1)
+WIFI:AP_START
さてATコマンドを....
AT
:>what?
Σ(゚Д゚)What?
あれっ、え、ATコマンドはどこいったんや(ESP8266脳)。。
調べてみますと、sscコマンドというのですね。
https://espressif.com/sites/default/files/documentation/esp32_at_instruction_set_and_examples_en.pdf
とりあえず打ってみました。
>op -S -o 1
# stationモードにセット
>sta -S
# wifiをスキャンする
>sta -C -s ssid -p password
# wifiに接続
>ip -Q
# IPアドレスを表示
こんな感じで自宅のwifiにつなげられました。
初期動作の確認はこの辺にしといて次はArudino IDEからやってみたいと思います。
続く。
*1:そのうち秋月が出すでしょう。aitendoが2月下旬に発売予定
micropythonを始めよう(ESP8266編)
この記事は Python Advent Calender 10日目の記事です。
micropythonは以前のAdvent Calender*1やPycon JP*2でも紹介されていましたが、改めて紹介したいと思います。
・micropythonとは
もともとPythonをマイコンで動かそうとKickstarterで始まった移植プロジェクトです。その結果としてソースはgithubに、ターゲットとしてPyboardという商品が発売されています。
PyboardにはSTM32という32bitのARMマイコンが使われています。Pyboardは日本では発売されていませんが、秋月電子で販売されている同じ系統のSTM32のマイコンボードで動かすことが可能です。
micropython用に2つ購入済みですが、現時点でまだやっていません。
STM32マイコンでmicropythonを動かす方法はInterfaceの10月号で記載されています。
micropythnに自作モジュールを組み込む方法も載っていて大変有用です。
micropythonは基本的にPython3と互換ですが、モジュールやライブラリは同じではありません。ドキュメントを参照して動かしていくことになります。
Overview — MicroPython 1.8.6 documentation
・ESP8266
そんなmicropythonですが今年の初め頃からKickstarterでさらにESP8266への移植が始まりました。プロジェクトは成功しソースはgithubで公開されています。
ESP8266はwifiチップを搭載した32bitマイコンです。日本で使用できるのは技適を取得したESP-WROOM-002という型番になります。
micropython on ESP8266は自分でコンパイル環境を構築しビルドして動かす状況が続いていましたが、今年の夏頃から公式ページからダウンロード可能になりましたの。
これをESP8266に書き込むことで簡単にmicropythonを実行することが可能になりました。
しかしながらmicropython on ESP8266は技適の問題があります。スイッチサイエンスさんが言及されているようにmicropythonのファームウェアを書き込むことは認証に影響を及ぼす可能性があります。*3
これから試される場合は自己責任でお願い致します。
・Let's Try
まずはESP8266(ESP-WROOM-002)と必要なものを入手します。
USBシリアル変換モジュール、3v3の3端子レギュレータ、10KΩの抵抗、ブレッドボード、ジャンパ線等を用意します。
ブレットボードにESP-WROOM-002を挿せるようにするためにはんだ付けを行います。フラックスを塗った後テープでESP-WROOM-002を仮止めして専用のピッチ変換基盤にはんだ付けをします。
はんだ付けができたら配線をします以下のように接続すればOKです。
- 3v3 → 3v3
- EN → 10K抵抗で3v3
- IO15 → 10K抵抗でGND
- IO2 → 10K抵抗で3v3
- IO0 → 10K抵抗で3v3
- RST → 10K抵抗で3v3
- TXD → RXD
- RXD → TXD
- GND → GND
配線が出来たらArudino IDEのシリアルモニタで開いてみましょう。
ATという文字を送信しOKが帰ってくれば配線は合っています。
配線が正しければESP8266用のmicropythonのファームウェアを書き込みましょう。
micropythonのダウンロードページに行き最新のファームウェアをダウンロードします。
ダウンロードしたら書き込みツールで書き込みます。windowsならFlash Download Tools 、macやLinuxならesptoolで書き込みます。
自分はwindowsで書き込みました。
書き込みが完了したらシリアルモニタを開くと対話形式でmicropythonを実行できます。
定番のLチカです。
http://docs.micropython.org/en/latest/esp8266/esp8266/quickref.html#pins-and-gpio
machineモジュールを使用します。
>>>import machine
>>>pin = machine.Pin(14, machine.Pin.OUT)
>>>pin.high()
>>>pin.low()
ESP8266はwifiにつながるのでsocketモジュールを使用してHTTP通信が可能です。
http://docs.micropython.org/en/latest/esp8266/esp8266/tutorial/network_tcp.html
このようにslackにメッセージを飛ばすことも可能です。
・micropythonしません?
今までマイコン動かすのはC言語やArudinoならC++ライクなスケッチが主でした。
普段Pythonをお使いの皆様でしたら違和感なくmicropythonに入っていけるのではないでしょうか。
PythonのみでIoTシステムを作れる日もそう遠くないかもしれません。
来年はmicropython Advent Calenderをぜひやりたいですね。
Perl入学式に参加した結果www
・参加
会社に入ってからはよくディスられてるSIerさんで常駐で働いてます。
そんな時 Perl入学式を見つけたのでさっそく申し込んでみました。
勉強会には様々スタイルがあります。
セミナー形式、自習形式、もくもく形式etc…
Perl入学式は講師、サポーターの方々と程よい距離で進められていきます。
ターミナルの使い方などそこから行くか的な手厚さで始まります。
不明点はその場でコール&レスポンス形式で教えて頂けますし、
また講師のスライドと同期、横にコメントが書き込める slasla という便利な
サービスを使い講義が進められていきます。
資料はgithubにあがっているので予習と復習も行えることができました。
常駐先で。
・懇親会
講義が終わればみんなでピザを食べる0次会の後、近隣の店で懇親会が開かれます。
他の参加者、講師、サポーターの方々と色々なお話をすることができて
毎回大変楽しく、お酒も進みます。
・参加後
これといって作りたいものやアイディアが考えつかなかったので、
復習がてら問題を解いてました。常駐先で。
今は5章の問題を解いてみています。
4章の最後らへん、グラフで表示するのはちょっとパスしました。*3
そこまでは概ね解けた、正解と同じように出力することができました。
Perl6のAdvent Calenderでも言語処理100本ノックの記事がありますね。
本当はgithubにうpしてこの記事の中で公開したかったのですが、忘年会に向けてつまみ*4を仕込んだりはんだ付けしてたりして力及びませんでした(;´∀`)
後日空いてる日で公開したいと思います。
・これから
5回目(webアプリ)の回は都合により参加できなかったので、来年参加したいと思います。
また文化放送A&Gなどアニラジを録画するモジュールを作って、ラズパイかオレンジパイで動かしておきたいですね。録画したらmp3をGoogleドライブにでも入れれば通勤時間にアニラジを聞けます。
次回の Perl入学式 in東京 第2回 〜構文基礎編〜 - connpass は17日(土曜)開催のようです。
自分はアイドルマスターシンデレラガールズ 城ヶ崎美嘉役でおなじみ佳村はるかさんのイベントがあるので参加できませんが、これからプログラミングを学びたい方、Perlを勉強したい方は奮って参加されてはいかがでしょうか。
以上、佳村はるかのひみつきち 諜報員でした。
Yes ! るるきゃん !
声優 Advent Calender 2016 5日目の記事です。
佳村はるかさんについて書かせていただきます。
- 佳村はるかさんを知る
初めて佳村はるかさんという声優を知ったのはデレマスアニメの特番でしょうか。
城ヶ崎美嘉役の声優としてプロデューサー役の武内Pとトークをしていました。
美嘉のポーズを決めて恥ずかしそうにする佳村はるかさんが大変印象に残りました。
佳村はるかさんを知ってすぐ後でしょうか。1つのまとめ記事を見ました。
まとめのエピソードを読んで本当にいいなというか、本当に応援したいなと思いました。
- 佳村はるかのひみつきち
ちょうど1年前ぐらい前から、文化放送A&Gで佳村はるかのひみつきちという番組が始まりました。
番組のメインは軽作業チャレンジ、もといYes!るるCanという毎回様々なものにチャレンジするコーナーです。
そんな軽作業チャレンジで注目を集めたのがこの回ではないでしょうか。
あっ、この人ぽんこつやと察したのは私だけではないはず。
この後会員限定コーナーでは、段ボールに入ったまま横に倒れる佳村さんが見れます。
るるかわですのでぜひみなさんあみあみ会員に入りましょう。
振り返ってみても第1回からこれでしたね。
※銀狼怪奇ファイルや家なき子を知り時折懐メロが流れますがリーダーの年齢には突っ込まないのが諜報員(リスナー)のお約束です。
- イベント参加
初めて佳村さんのイベントに参加したのはGWに行われたロクエヌのイベントでした。
目の前で佳村さんを見ることができて大変よかったです。
とても綺麗で段ボールをボコボコ壊してた人と同一人物とは思いませんでした。
※この前のロクエヌは気づいたらチケット申し込み終わってた。はうわー。
-
これからも
ひみつきちと今年からスタートした三宅麻理恵さんとのニコ生、「ゲームは一日〇時間」も楽しく拝見しています。
また12月17日のひみつきちのイベント、夜の部のチケット取れましたーヾ(*´∀`*)ノキャッキャ
参加される皆様におかれましてはどうぞよろしくお願いします。
これからもYes!るるきゃん!
やる夫はYAPCに参加したようです。
トピック「YAPC」について
こんにちは。やる夫です。
やる夫も2日間YAPC::Asia Hachioji 2016に参加させて頂きました。
様々なトークを聞かせていただき大いに勉強になりました。
・面白かったトーク
@hayajo さん「作って学ぶLinuxコンテナの裏側」
dockerをなんとなく使ってみてchrootやcgroupsなどが裏側で動いていると
いうことは知識としてあったのですが実際デモを見てよく理解できました。
「おーほんとにプロセスのリソースが制限されてる(小並感)」
・@papix さん 「再演!全部見せます!Perlで作るInfrastracture as Code」
なぜInfrastracture as Codeをする導入から実際の仕組みまで大変勉強
になりました。
またChatopsというのも知りました。slackからデプロイとかいろいろ操作
できるんですね。ちょっとやってみます。
https://slas.la/papix/yapc8oji
・LT
「やる夫はPerlを始めるようです」というLTをやりました。
スライドは特にUPしません。というのも、
・あの場限り1発勝負のネタLTだったということ
・知見を得られるものではなく、見るために時間を奪うのは申し訳ない
ということです。
3行でまとめると
1. Perl入学式に行く
2. Perlを学び始める
3. 言語処理100本ノックを解いてみる
という内容に過ぎなかったのですが、笑って頂けたのであれば何よりです。
やる夫というか2ch的ノリがお好きでない方、
あとスライドで@papixさんの年齢を間違えてしまってすみませんでした。
言語処理100本ノック for Perlは後日githubにうpする所存ですので、
またブログ記事にしたいと思います。
最後にスタッフの皆さま大変お疲れ様でした。
初めてYAPCに参加させて頂いたのですが、素晴らしいイベントでした。
また次回も心より楽しみにしています。
コマンドによる独自制裁発動!!RedStar OSにfork爆弾炸裂す!!
先日北朝鮮からミサイルが発射されました。
平和を脅かす行為に小市民ながら遺憾に思わざるを得ません。
このような行為には小市民としてもやはり断固とした態度をとることが挑発行為の抑止につながるであろうと愚考致します。
というわけで今回は北朝鮮製の国産OS RedStar OSをVirtualBoxにインストールし、fork爆弾を炸裂させることで、ミサイル発射に対する抗議の意を示したいと思いまry
・環境
Windows10 + Virtual Box
・RedStarOSの入手
たしか↓から
http://www.openingupnorthkorea.com/downloads-2
物の用意が済んだら仮想マシンを作りインストールを始めます。
以下に必殺スクショエビデンスを貼り付けますが、全く文字がwww
とりあえず雰囲気で進めていくと、インストールがスタートしました。
インストールが始まりました。
インストールが終了し再起動後、ログイン画面が表れました。
ログインしましたが、端末の出し方がわからずじまい。。。
偉大なるGoogle同志のお力により端末が開けました!!
ゴミ箱マークの横からフォルダのマーク→トンカチとスパナのマークを押すと端末のマークが表れました。
teratermでつなぐためにsshを起動させようとしましたが、rootになれません。
しかしRedStarOSには致命的なセキュリティホールがあるようです。
最後の参考のURLの「Getting root on Red Star 3.0」をそのまま行うと。。。
[異種OS格闘戦]RedStar Linux 3.0をインストールしてroot取ってみた | (っ´∀`)っ ゃー | nullpopopo
http://geekslop.com/2015/installing-north-koreas-official-red-star-3-0-server-operating-system
なんということでしょう(劇的ブートアフター)
sudo /bin/bash で匠にrootになることができました。
RedStarOSをこれからお使いの皆様にはぜひこのようにrootを取りましょう。
さて最後にfork爆弾を炸裂させてこの記事を閉めたいと思います。
喰らえfork爆弾!!炸裂するプロセス!!
端末が効かなくなったところでVMを停止させました。
・感想
fork爆弾よりrootがとれちゃうセキュリティホールやばくないという。
偉大なる将軍様の痛恨のミスではないだろうか。
ラズパイでRedStarOSを動かしたい。。。RedStar piにしたい。。。