2018年12月10日月曜日

M5Stackかgolangの話をしたかったです

はじめに


このエントリーは、CyberAgent 19新卒エンジニア Advent Calendar 2018の10日目の記事です。


2019年度新卒入社の進林です。
メディアの新規開発局というところでサーバーサイドエンジニアとして働いています。
新卒エンジニア絶賛募集中みたいなので興味のある人は連絡ください。

「M5Stackかgolangの話」としてAdvent Calendarの枠を取っていたのですが、
面白いものでも作ろうと思って2週間前に注文していたM5Stick(M5Stackの新商品)が届いたのは今朝……。

ギリギリで間に合いませんでした。。

ともあれM5Stackを知らない方も多いかと思いますので簡単に紹介したいと思います。


M5Stackとは



M5Stackとは、カラーディスプレイ・スイッチ・SDカードスロット・スピーカー等が一体となった小型の開発モジュールです。
コアにはESP32という電子工作界隈では人気な、Wi-FiとBluetooth4.2が使用可能な安価で低消費電力のチップが使われています。

筐体下部は差し替え可能になっており、Arduinoのシールドのようにモジュールを使って拡張することができます。

腕時計として使えるようにバンド付きのモジュールもあるので自作スマートウォッチが作れますが、想像以上にデカいので "スマート"とは程遠い何かが出来るのは間違い無いと思います。



一昔前だとカラー液晶等のモジュールを使って電子工作をするのは引くほどめんどくさかったのですが、最近はこのようなモジュールが増えてきているのでプログラミングの知識さえあれば気軽に電子工作を楽しめるようになっています。

パソコンの中だけで動くプログラムと、モーターなどを用いて実際のモノを動かすようなプログラムは似ているようで全く違った体験ができるので非常におすすめです。


6年ほど前に”リア充コート”という「彼女に抱きしめられる感覚を得られるデバイス」なるくだらないモノを男三人で作ったら軽くバズって面白かったので暇な人は見てみてください。




くだらないモノづくり好きな人は一緒に遊びましょう。


尺が足りなそうなのでプログラミングの話をします


特にネタは無かったんですが、Twitterで見つけました。


やりましょう。

package main

import (
 "fmt"
 "strings"
)

func main() {
 var b strings.Builder
 b.Grow(2048)
 for i := 1; i <= 100; i++ {
  if i%15 == 0 {
   fmt.Fprintln(&b, "ゲートウェイ")
  } else if i%3 == 0 {
   fmt.Fprintln(&b, "高")
  } else if i%5 == 0 {
   fmt.Fprintln(&b, "輪")
  } else {
   fmt.Fprintln(&b, i)
  }
 }
 fmt.Println(b.String())
}



できました。
駅名に「ゲートウェイ」つける必要あったんですかね??

ちなみにperl6のワンライナーで書くとこうなります
perl6 -e 'say "ゲートウェイ"x$_%%15||"高"x$_%%3~"輪"x$_%%5||$_ for 1..100'

perl6ってすごい!

明日11日目は筋肉系エンジニアひろむの記事です。
お楽しみに〜

0 件のコメント:

コメントを投稿