カワリモノ息子の技術メモ的な~

カワリモノ息子の技術メモ的な〜

学校が苦手な息子君の作品いろいろをパートタイムエンジニアの母が綴る

小6息子くん3Dプリンタの指輪量産中

最近も相変わらず独自路線の息子くんです。

今週はいつものいろいろな開発のほかに、3Dプリンタによる指輪の大量生産をはじめましたよ。
大量、ていうかそんな大量でもないけど。
お世話になっているフリースクールの作品としてほしいということで依頼されまして。

f:id:toriko0413:20190707231223j:plain

前回これ色塗ってみたんですけどね、指につけてるうちにとれちゃったみたいです。
油性ペンはにじんだりもするし、どういう塗料がいいんかなー?と思っています。まぁ色付きフィラメントで出力するのが一番なんでしょうけどね。

我が家の3Dプリンタ記事はコチラ ↓
siroitori.hatenablog.com

3Dプリンタ作品は今までにこんなの作ってます ↓
siroitori.hatenablog.com



話は変わり、息子くんが昔書いたソースコードが発掘されました。

「何なんこのプログラム!ループして書けよ~」

と息子くん過去の自分にツッコミをしてました。
JavaScriptかな。ほんとありえないインデント!
1年位前に自分で書いてるコードなんですけどね、自分でスマートなループに修正できるくらい成長してます。

私も新入社員のころ、ループは書くけども関数化できてなくてだらだらつらつらと長ーいコード書いて、先輩社員に
「巻物!」
と言われた記憶がよみがえります。
あの頃、私は若かった。
現在11歳の息子も、あの頃オレは若かった、って思ってるのでしょうか!?(;^ω^)


またまた話はかわりますが(今回こんなんばっかり!)
先日息子くんと映画を観てきました。
息子くんではなく、私自身の話です。
以前からその傾向はありましたが、登場人物が覚えられないことといったら!
顔がまるで覚えられないんです。
若い人みんな同じ顔に見える・・・

とくに、途中で髪型の雰囲気が変わると(結んでいたりおろしていたり)同一人物かどうかわからなくなります。

それで私気が付いたんです。
私、漫画好きなんですけど、漫画の中では特に髪型で人物を特定することが多いです。
漫画家さんの画力…とかもあるでしょうけど、はっきり区別させるために髪の色だったり天パだったりかなり特徴的にしてありますよね。

いつのまにかリアルでも髪型で判断しようとしている気がする・・

よく顔の中身を見て判断するように練習したいと思います。

「まだまだ若いもんには負けん」
じゃなくて、
「まだまだグーグルフォトの人物顔認識には負けん」と言いたい。


とりとめのないブログになってしまいました~。
じつはこのブログ、始めてから1年がたったらしいですよ!
更新頻度は高くは無いものの、続けてこられているのは訪問してくださる皆様のお陰です。
ありがとうございます♪♪



スター・はてブとても嬉しいです!

小6息子くんNintendoLaboで遊ぶ

遅ればせながら、ニンテンドーラボを買ったのでした。

いきさつ

尊敬するからあげ先生の記事を拝見していた時に、ちょうどその画面をのぞき込んだ息子くんのひとこと。
ニンテンドーラボほしい!!」

↓ この記事
karaage.hatenadiary.jp


じつは発売当初から欲しいって言ってたんです。
でもそのときはほかにもいろいろ買ってた時期だったので、また今度、と我慢させてました。

そのうち、「ニンテンドーラボはもう動画でたくさん見たからどんなことできるかわかったのでもう買わなくていい」ってなってたんですけど、それからさらに時間がたったことと記事を見てまたほしくなった様子。

そしてそのときたまたま私の実家に居たんです。
「ほしい」の声をききつけたおばあちゃん(私の実母)。
「それいくらするとね、買いなさい買いなさい」とぺろっとお金をくれました。
ラッキーだったね、息子くん!(^ω^)

おばあちゃんがすぐにお金を出してくれた要因としてもうひとつラッキーだったことが、初回版のセット、なんとAmazonでだいぶ安くなっている!!

その場でポチりました。

商品到着!

ニンテンドーラボの箱。

箱の側面には作れるものと目安作成時間が書いてありました。

おお~いろいろ作れる~!
3480円でこれはかなり良い買い物をしたのではないかー!

作ってみた

息子くんは6年生なので1人で説明を見ながら作ります。
これが低学年のころだったらめちゃくちゃにちぎったり変な折り目をつけたりしてハラハラして見守ってたんだろうなーと思って、成長を感じます。
なにより任天堂さん説明動画がとてもわかりやすくて、素晴らしい。

リモコンカー

まず最初に作ったのは、リモコンカー。

リモコン操作は液晶画面からでき、うまい具合にJoy-Conが震動して進みます。

f:id:toriko0413:20190629210852j:plain

うわーーーーーこれだけでも相当おもしろい!

さらにリモコンとなる液晶画面には、Joy-Conに備わっている赤外線カメラからの映像が映し出されます。
NintendoSwitch買ってから初めて赤外線カメラが発動!今まで使う機会なくてごめんね!(*'▽')

赤外線カメラの映像、緑色。
暗闇でも映るやつです。
私すぐ「これ変態おじさんのやつやん」て思いました。(どっきり番組です)

暗い場所でも見れるってことは!と、
廊下を真っ暗にして暗闇探検をさせてみました。

廊下に黒い線…
これの正体は息子くんの部屋の自作デスクトップPCまで伸びるLANケーブルです(;´・ω・)
このLANケーブルの伸びる方向を確認しながらリビングから部屋まで暗闇の中を移動させてみました。
見事クリア~

という遊びが終わったら、今度は、どうやって振動で前進してるんだろうと。
空き箱でも作れるのかどうか実験してみました。

f:id:toriko0413:20190629213317j:plain

じゃーん、文鳥人形ONコーヒーの空き箱号!
下の方にはリモコンカーの形に似せて切込みを入れてみました。

結果は、

その場でぶるぶる震えてわずかに回転するだけ!

わかってたけどね!

よく考えて作ってあるんだね~ってなりました。

釣り

その他いろいろ。また面白いことあったら記事にします。

そして自分で作ってみてた

説明通りに作るのを嫌うマイペースまっしぐらの息子くんは、すべて作り終えないうちから自分で何か作りはじめていました。

ピンクのJoy-conのボタン操作でカウントダウン後爆発(爆弾のサウンドが流れて震動&画面が光る)、
緑のJoy-conは投げると爆弾が爆発というもの。

youtu.be

こんな感じのGUIでつくれるらしいですよ。

また面白いことがあったら書きます~。

長い下書き状態からやっと公開(;^ω^)



スター・はてブとても嬉しいです!

小6息子くんRobloxで自作モジュール公開!とエラーの対処

いろいろな開発に興味をもちつつ、ロブロックスをほとんどやらない日はない息子くん。

ROBLOX(ロブロックス)とは

siroitori.hatenablog.com

ゲームプラットフォームであり、開発環境も無料で使えるおもしろいものです。

自作モジュールを作った

今回、ゲーム開発環境(Roblox Studio)で使えるモジュールを作って公開していました。
別の開発者がRoblox Studioでゲームを作るときに、このモジュールを読み込ませてゲームに組み込むことが可能になります。組み込み方については後述します。

内容がザ・シュールなので、実はちょっとためらいましたが…書いちゃいました。

どんなの作ったの?

これを組み込んで実行させると、
キャラクターめがけてパトカーが走ってきて警察官に囲まれます。
そのあとばーんと拳銃で撃たれます。。。
ね、シュールでしょ・・・ひかないで!リアルの息子くんは気持ちの優しい子なの!

f:id:toriko0413:20190612235410p:plain

ソースコード

公開されているモジュールを読み込ませれば誰でも見れるようになるので、メインスクリプトのみ公開します。

いつもはあまり自分のソースコードを見せたくない息子くんですが、公開しようと思ってから、ソースをきれいにしてコメントもちゃんと入れたって。
念のためコメントの英語が間違ってないか見ておいてって言われOK出しました。

私自身きちんとコメントをいれておきたいタイプ。
あのめんどくさがりの息子くんが!よく育ってくれたと思いました。なーんて。
ま、いらないよねっていうコメントもありますが(waitにwaitのコメントとか)

--
-- Main Script.
--

--Do not Change Script.

local PoliceSets = script:FindFirstChild("PoliceSetLocate").Value -- police set location

local PoliceArrest = {
	ArrestPlayer = function(_,Player)
		if Player.Character then
			warn("--- Police Script ---") -- print infomation
			warn("# Arresting Player #")
			warn(Player.Name)
			warn("---------------------")
			-- Stop Move Player --
			Player.Character.Humanoid.JumpPower = 0
			Player.Character.Humanoid.WalkSpeed = 0
			Player.Character.HumanoidRootPart.Anchored = true
			--             --
			wait(.1)
			local Set = PoliceSets:Clone() -- create new police set.
			Set.Parent = workspace         -- set parent workspace.
			Set.Cops.Parent = Set.Car -- temporarily change the parent to calculate the position of the car including cops
			Set.Car:SetPrimaryPartCFrame(CFrame.new(Player.Character.HumanoidRootPart.Position + Vector3.new(300,0,0))) -- calculate car and cops position ( change X pos 300 studs )
			Set.Car.Cops.Parent = Set -- Undo temporary parent changes
			local Cops = {} -- create cops list
			for _,Cop in pairs(Set.Cops:GetChildren()) do
				table.insert(Cops,{Cop}) -- cop insert cops list
				Cop.Parent = nil -- hide cop
			end
			Set.Siren.Parent = Set.Car.PrimaryPart -- change siren sound parent.
			Set.Car.PrimaryPart.Siren:Play()       -- play siren
			for _=0,299 do --move car (299 studs)
				Set.Car:SetPrimaryPartCFrame(CFrame.new(Set.Car.PrimaryPart.Position - Vector3.new(1,0,0))) -- move car
				wait(0) -- wait
			end
			for _,Cop in pairs(Cops) do
				Cop[1].Parent = Set.Cops -- show cop
				local model = Cop[1] -- cop
				model:TranslateBy(Vector3.new(-300,0,0)) -- move cop
			end
			
			wait(3) -- wait
			
			-- FIRE GUN!
			
			Set.FireSound:Clone().Parent = Player.Character.Head -- Move FireSound to player head.
			
			Player.Character.Head.FireSound:Play() -- Fire Sound Play
			
			Set.Ragdoll:Clone().Parent = Player.Character -- Play Ragdoll
			
			Player.Character.HumanoidRootPart.Anchored = false -- unlock the player
			
			wait()
			
			Player.Character.Humanoid.Health = 0 -- DEATH PLAYER!
			for i=0,10 do -- blood. that is all.
				local Red = Instance.new("Part")
				Red.Anchored = false
				Red.Size = Vector3.new(.1,.1,.1)
				Red.BrickColor = BrickColor.Red()
				Red.Parent = Player.Character
				Red.Name = "Red"
				Red.Position = Player.Character.HumanoidRootPart.Position
			end
			
			wait(5) -- wait respawn player
			
			Set.Parent = nil -- delete car and cops.
		end
	end
}

return PoliceArrest

どんな処理が書いてあるかって?
私ゲームプログラミングって専門外で、Lua言語でもあり、えっと、なんとなくしかわかりませーん。
もし質問あれば息子くんが答えます(汗)

モジュールの組み込み方

では気になる方も多いか多くないかわかりませんが、モジュールの組み込ませ方です。

Roblox Studio を準備

まず、Roblox Studio を起動してFILE - Newを選択。

右側のExplorerウインドウから、Lightingを選択後、その下のPropertiesウインドウで
Technology = Compatibility
になっていない場合は、そう設定する。

息子くんによると最近インストールしたRoblox Studio以外はデフォルトでCompatibilityになってないとのこと。
今後はCompatibilityが推奨??ということらしいです。↓ 公式サイト(英語)
devforum.roblox.com

モジュールを取得

次に、WEB画面に戻って、下記サイトを開きます。
web.roblox.com

「Police Arrest Module!」っていうのが開きます。これが息子くん作モジュールです。

緑色の「Get」を押して

「Get Now」をクリック

これでOK。
Roblox Studioに戻ります。

左側のInventoryタブの中を見ると、「Police Arrest Module!」が追加されてます。

この「Police Arrest Module!」が表示された部分をクリックすると、モジュールがインポートされます。

では動かしてみたい

モジュール内にReadMe的な説明が入っています。これを読んでください。
「How To Use PoliceArrest Module」というのがそうです。
アイコン部分をダブルクリックすると開きます。

説明全文は、以下のとおり。

How to use Police Arrest Module!

This Tutorial is easy!

1.Play Game

2.Go to the Test Menu

3.Click Client

4.Type CommandBar 'require(workspace.PoliceArrest):ArrestPlayer(game.Players:GetChildren()[1])'

5.Click Server

or

1.Create Script

2.Enter Script

-- script --

local Module = require(workspace.PoliceArrest)
game.Players.PlayerAdded:Connect(function(Player)
Player.CharacterAdded:Wait()
wait(3)
Module:ArrestPlayer(Player)
end)

-- end of script --

3.Play Game

息子くんの書いた文章。英語おかしかったら…ごめんなさい(;^ω^)

説明文前半の1~5の手順をふむか(コマンドバーに入れるタイプの実行方法
もしくは説明文後半の1~3の手順のスクリプトを埋め込む方法か、で実行ができます。


と、書きましたが…!
じつは公開後、私のRoblox Studioで組み込もうとしたらやたらとエラーが続出・・・うまく動きませんでした。
かなり試行錯誤した結果どうやって解決したのか、、後述します。もしもうまく動かない方いらっしゃったら参考にされてください。

コマンドバーに入れるタイプの実行方法(説明文前半1~5)

コマンドバーにコマンドをコピッてから、Playボタンをクリック
コマンドは以下

require(workspace.PoliceArrest):ArrestPlayer(game.Players:GetChildren()[1])

TESTタブに切り替えて、「Current:Client」と書かれたボタンをクリック。
そのあとにすかさずコマンドバーの内容をEnterで実行。

実行後すぐに今度は「Current:Server」ボタンをクリック


実行できました。

スクリプトを埋め込む方法(説明文後半1~3)

ExplorerのWorkSpaceの右側の+ボタンをクリックしてから表示されるメニューでScriptを選択すると、WorkSpaceにスクリプトが追加されます。

このScriptに、説明文中にあったサンプルロジックをかぶせます。
サンプルロジックは以下

	local Module = require(workspace.PoliceArrest)
	game.Players.PlayerAdded:Connect(function(Player)
		Player.CharacterAdded:Wait()
		wait(3)
		Module:ArrestPlayer(Player)
	end)

その後、「Play」で実行すればOK。

エラーが出たときの対処

今回、息子くんのPCで開発したモジュールを私のPC、私のアカウントでのRoblox Studioに組み込もうとしたらこんなエラーがたくさん出てきました。

XXXXX is not a valid member of CorePackages

コアパッケージの配下のものが全部エラーなんです。
コアパッケージが読み込めてないみたい。。。どうすることもできない・・・。

実は以前、状況は違ってましたが、息子くんがどうしてもRoblox Studioのツールボックスの表示がおかしくなってて開発ができないって言って何か月も開発できず悩んでたこともあったんです。
結局はそのあと、新しく買ったノートPCにセットアップしたらうまくいったと。
サポートに問い合わせたら、「その問題は解決しているからインストールしなおせ」と言われるんですけど、一度入れたRoblox Studio、アンインストールして再インストールしてもどうもきれいにはならないんですよね。テンポラリファイルとかレジストリとかが残ってるんだろうと色々調べて何度もインストールしたんですけど結局わからずじまいで。

新しくインストールしたらいいってことは、もしかすると…と思って、同じPCながら別のアカウントでインストールしてみたんです。別のアカウントは新規で作成しました。ちなみにWindowsです。
そしたら、今回の件。うまくいきました。

根本的な解決にはなってないのですが、、、
もしどうしても困っているならこんな手もありましたよとご紹介でした。

あなたのゲームで使ってね

こういう配布モジュールってウイルスが入ったものが多いらしいです。
息子くん今まで何個もウイルスが入っているモジュールを見てきたそうな。
これは悪いコード入ってないので安心してください。

関連記事

siroitori.hatenablog.com


ううう倒れちゃった。
かわいそうな私・・・


スター・はてブとても嬉しいです!

小6息子くんフルカラーLEDの緑色が光らない件

ラズパイに接続したボードの緑色(フルカラーLED)が光らない!てなってた件

↓ この件
siroitori.hatenablog.com

一緒に調べてみました。

先日は、状況をあまり見てなくて息子くんが「緑色が光らない~」って言ってたから、こりゃー接続(はんだづけ状態)が悪いんだろうなくらい思ってたんです。
でも!違ってました。

ソースを確認

よくよく状況を確認すると、ループがうまくいってないみたいだと。
「緑色だけ、ループ1回目だけ光るんだけど、2回目以降が光らない」と。
緑色だけループしないの?
んなばかな~

pythonソースコードを確認しました。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup(17,GPIO.OUT)    # red
GPIO.setup(27,GPIO.OUT) # green
GPIO.setup(22,GPIO.OUT)    # blue
try:
    while True:
            GPIO.output(27,True)     # ☆
            print("Show")
            time.sleep(0.5)
            GPIO.output(27,False)   # ☆
            print("Hide")
            time.sleep(0.5)

except KeyboardInterrupt:
    GPIO.output(17,False)
    GPIO.output(27,False)
    GPIO.output(22,False)
    GPIO.cleanup()

☆の部分。
赤色17番と青色22番をいれたときはちゃんと点滅するのに緑色27番のときだけ、最初1回光って消えてしたあと光らない!(泣)

何度実行しても、必ず1回目は光るから接続が問題ではなさそう。
また、printの"Show"と"Hide"も出力されるからループはうまくいってる。

はて?

本誌(ラズパイマガジン)を見よう

このボードを扱っているラズパイマガジン2019年6月号を読む。

あれっ本誌では
pigpio
というのを使っているよ。

息子くんは「ネット情報はほとんどGPIOで僕もずっとそれを使っている。馴染みがない!」と抵抗するものの、
一応こう書いてあるからためそうよ~と提案。

pigpioを使ってみた

とりあえずフルカラーLEDの前に赤色LEDを光らせてみることに。

import pigpio

LED_PIN = 14

pi = pigpio.pi()

pi.set_mode( LED_PIN , pigpio.OUTPUT )

pi.write( LED_PIN , pigpio.HIGH )

コード1行目、import pigpio で下記のエラー。
ModuleNotFoundError: No module named 'pigpio'

モジュールがないけんや~と、息子くんが

$ pip install pigpio

とやってインストールしました。

そして再度実行、そしたら今度は

pi@raspberrypi:~/Desktop $ python ledred.py
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Can't connect to pigpio at localhost(8888)

Did you start the pigpio daemon? E.g. sudo pigpiod

Did you specify the correct Pi host/port in the environment
variables PIGPIO_ADDR/PIGPIO_PORT?
E.g. export PIGPIO_ADDR=soft, export PIGPIO_PORT=8888

Did you specify the correct Pi host/port in the
pigpio.pi() function? E.g. pigpio.pi('soft', 8888)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Traceback (most recent call last):
File "ledred.py", line 8, in
pi.set_mode( LED_PIN , pigpio.OUTPUT )
File "/usr/lib/python2.7/dist-packages/pigpio.py", line 1291, in set_mode
return _u2i(_pigpio_command(self.sl, _PI_CMD_MODES, gpio, mode))
File "/usr/lib/python2.7/dist-packages/pigpio.py", line 977, in _pigpio_command
sl.s.send(struct.pack('IIII', cmd, p1, p2, 0))
AttributeError: 'NoneType' object has no attribute 'send'

とかでるし・・・

なんかよくわからないまま、書いてあるように

$ sudo pigpiod

ってやってみて、それから、

$ python プログラム名

てやってみるといけました。

赤色LED光りました。成功。

pigpioってこのように使うのか。

ではpigpioで問題のフルカラーLEDの緑色をやってみる

import pigpio
import time

GREEN_PIN = 27

pi = pigpio.pi()

pi.set_mode( GREEN_PIN , pigpio.OUTPUT )

while True:
    pi.write( GREEN_PIN , pigpio.LOW )
    time.sleep(1)
    pi.write( GREEN_PIN , pigpio.HIGH )
    time.sleep(1)

ちゃんとループして点滅した!!!
(画像をアニメーションにしてみたけどこんな感じ^^)

対処方法として、pigpioを使えばできるということは判明。

だけど、GPIOをつかうとフルカラーLED(なぜか緑のときだけ)が点滅できない。
ん~~
息子くんはなんでかあくまでもGPIOにこだわりたいと。

GPIOでの実現方法についてもしもなにかわかる方いらっしゃいましたら、、、教えてください。

pigpioについて調べてみた

pigpioについてぐぐって調べてみました。
尊敬するからあげ大先生の記事がありました☆(2017年2月の記事でした)

karaage.hatenadiary.jp

sudo pigpiod のことも書いてあった!
いつもながらためになります!



スター・はてブとても嬉しいです!



小6息子くんラズパイ「主要パーツすぐに試せるボード」に興奮

息子くんにずっとせがまれてました、ラズパイマガジン付録の基盤につけられる「主要パーツすぐに試せるボード」。
ついに買いました。

「主要パーツすぐに試せるボード」って?

ラズパイマガジン2019年6月号に、とじ込みで基盤が付録で入ってるんです。
それにはんだづけできる部品セットです。
(この雑誌には基盤のみついててこれだけでは組み立てられません)

↓ パーツのみ。これを買いました。


組み立て済み(はんだ接続済み)も売ってます。

悩んだけど結局買った

金銭面で渋ってたんですが、「これがあればいろんなことができる!夢が広がる!」と鼻息荒い息子くんの熱量に負けて買いました。
といっても私もはんだづけしたかったし興味あったですしね~。

ポチってから届くまでの間、まだかまだかと何度も配送ステータスを確認させられました(;´・ω・)
挙句、「すぐに試せる、ってすぐに試せんやないかー!!」って。
ほんとそれ。

届いた

じゃじゃーん

あけてみた

基盤は、雑誌にとじ込みのこれ

はんだごてもスタンバイOK!
でははじめましょうぞ。
テンション上がってやけどしないように。

説明を読みながらはんだづけ開始

私と息子くん順番に交代ではんだづけしました。

途中、私の担当で有機ELディスプレイつけるときに失敗してしまい、隣接するランドをまたいでしまいました…
やり直すのにはんだ吸収線を使うもうまくできず、息子くんにやってもらいました(涙)
ありがとう

順調にできてきます。

やった完成!

表面

裏面


ラズパイに接続!

左が今回作ったボード、右がラズパイ。

ラズパイの上にボードを重ねます。

ジャキーーン☆

あ、接続のためのねじをつけないといけなかった、ということでつけます。

動作確認

ここからは私が夕飯作ってる間に息子くんが進めててあまりよく見てないのですが、

プログラム書いて…

赤色LED光ったーわーい

次に、フルカラーLEDの確認!

そして、問題発生。

なぜか緑色が光らない???

プログラムが悪いのかはんだ付けの状態が悪いのかはたまた初期不良なのか???

↑ 通電確認する息子くん

とにかくこれはまた明日調べるということで、今日はこれまで。

これでどんな新しいものができあがるのかしら?
楽しみです。

前回の床のツルツル問題

前回オイルで床がツルツルトラップ状態になったお話の続き。
お友達から「重曹がいいよ」って聞いて、なんだそれならうちにあるじゃないのと早速試してみたらほんとすっきり滑らなくなった!!
あーよかった。
アドバイスに感謝です(*^▽^*)


スター・はてブブログ村リンクとても嬉しいです!
ブログランキング・にほんブログ村へにほんブログ村

小6息子くんと一緒に電子工作ハーバリウムを作った

「女子だらけの電子工作」さんの「LチカCute☆ハーバリウム」作成体験イベントに親子で行ってきました!

いきさつ

「女子だらけの電子工作」の山田さんは尊敬するママエンジニアさんで、息子くんのPCNプロコン最終選考会の審査員のおひとりでした。
↓ このときの!
siroitori.hatenablog.com

そのときはまだ雲の上の存在の方だったのですが、その後
勇気を出して参加した別のイベント(Woman Techmakers Kyushu)でご一緒する機会があり、
勇気を出して話しかけたらとても優しい方で!そこで繋がることができた上、
勇気を出して「電子工作したいです~」って言いました。
(勇気だしてばっかり!)

それが開催のきっかけになったかどうかはわかりませんが、今回のイベントが企画されたので前のめりで参加させていただきました!

「女性向け」しかも「親子参加OK(子連れOK)」な「電子工作」
そうそう、それそれ、こんなイベントに参加したかった!的な~!

会場に到着

会場に着くと会いたかった方とお会いできました♪
生まれてはじめて息子くんがはんだごてを持った日にお世話になった、可愛くて優しいおねえさんの渡部さん♪

siroitori.hatenablog.com

グッデイファブ以来の再会でした。嬉しかった!
渡部さんはスタッフ参加でした。おせわになりまーす。

そのほかにも以前お会いして再会する方、はじめてお会いする方。エンジニアの方、そうでない方。人見知りなりにワクワクします。

まずはんだごての使い方のレクチャーと練習!

はんだごての使い方を軽く習って、はんだづけ練習です。

f:id:toriko0413:20190529230751j:plain

銀色が丸っと乗って、なかなかいいかんじ!

仁丹みたい!

私も息子くんも互角と言ったところでしょうか。
(息子くんは自分のほうが上手と言い張るけどね)

LチカCute☆ハーバリウムのLチカ部分の作成

材料一式!

山田さんが設計された基盤、とってもキュートで素敵です!

LEDは単色とフルカラーLED?と準備されていて、
私は赤色単色LED、息子くんは運よくフルカラーのLEDをゲットできました。

フルカラーLED?
足が2本なのにフルカラー???といぶかしげな息子くんでした。
普通はフルカラーは足が4本らしいですね。
いただいたタイプのLEDは足が2本で、通電すると色々な色に変わりながら光るものでした。

そしてパーツをはんだ付けしていきます。

f:id:toriko0413:20190530212047j:plain

f:id:toriko0413:20190529233037j:plain

Lチカ部分、できあがり!
電池をいれると光ります。

f:id:toriko0413:20190529233349j:plain

今回初心者向けなのではんだづけやりやすいようにと穴を大きめに親切設計されてました。
はんだづけの丸い部分がさらに大きくて、仁丹感増大!

ハーバリウム部分の作成

これは、なかなかの女子力がもとめられるぞ!ぐぬぬぬ、まけるもんかー

女子力。そうそれは私に足りないものです。

各自のセンスで、瓶に砂やドライフラワーや貝殻、そしてオイルを入れていきます。
自分を信じて!

うんうん、こんなかな。

息子くんは、家から持参した文鳥のミニチュアを入れました。

ジャングルに生息する文鳥!!
文鳥のオイル漬け!!

瓶のふたに基盤装着

瓶のふたに穴をあけてもらい、さきほど作っておいたLチカ基盤のLED部分をはめこみます。
すきまができないように、そこになんかをたらして、なんかの機械にいれて、ひっつけます。

↓ なんかの機械。UVとかいってたような(話はちゃんと聞きましょう)

くっつきました


ふたを閉めたら、完成~★

上手な方が撮ってくださった写真がコチラ ↓

いやー、素敵に撮ってもらうと何倍もよくみえますね!写真って大事!

暗くしたらよく光ってとてもきれいです。
息子くんのは色々な色に光るからなおGood~☆

息子くんが今回ハマったはんだすいとりき

今まで息子くん、はんだを修正するときには「はんだ吸い取り線」なるものを使っていたらしいのですが、
今回、教えてもらったのが「はんだ吸い取り器」!

空気の圧でシュッと吸う仕組みになってました。
熱心にやってみてました。

f:id:toriko0413:20190530212441j:plain

吸う感じがなんとも心地よい♪


とっっっても楽しいイベントでした(*^▽^*)

後日談

次の日、私の留守中に息子くん床に落としてしまってふたがはずれて中身が少しこぼれてしまったらしく。

床がツルツルのオイリーに・・・・・・

一生懸命拭いても、オイルってとれないですね~。
床に使える洗剤を買いに行ったけど、近所の薬局はワックスみたいなのしか売ってなくてこれ以上ツルツルになったら困る!と何も買わないまま帰宅。

まぁーいつかはとれるかなと思って過ごしているけど、日々家族の足の裏でオイルが拡散されてゆき、現在いろいろなところがツルツルのトラップハウス状態に!


スター・はてブブログ村リンクとても嬉しいです!
ブログランキング・にほんブログ村へにほんブログ村

小6息子くんMicro:bitをコントローラーにしたUnityゲームを作った

今月買った雑誌2冊

ラズパイマガジン 2019年6月号
Interface 2019年6月号



  


コンピュータ系の雑誌。高いけど面白い。

そしていつも私が読む用に買ってくるんだけど息子くんとの寝る前の読書タイムに活用され、親子でどうこう言い合うのも楽しく、
刺激をうけてまた新しいもの作ってくれるからさらに面白い。

ラズパイマガジンの付録の基盤、これにはんだづけする部品セットほしいな~と思ってますが、5千円する・・・うぅ
とりあえず来月のお給料が入ってから考えます。

さて本題です。
今回は息子くん、このInterfaceの記事を見てMicro:bitをコントローラーにするの作ってみよう!と思ったようです。

Micro:bitのコントローラー化

マイクロビットが持っている機能である、加速度センサーと角度センサー(コンパス)を使って、コントローラーにしたとのこと。
加速度は傾きですね。角度は車のハンドルのような回転の角度です。

Micro:bitをPCにUSB接続して、Make Codeのブロックエディタで値を取得するだけのコードを作成。

その取得した値をTera Termで見てみます。

画面上に現在のX, Y, R値がコンソール出力されます。
X, Yが傾きで、Rが角度ですね。

Tera Termの設定情報とか書いたほうが親切なんでしょうけど…
いつも息子くんが全部やってるので見てません(+o+)

Unityに連携

それからUnityに連携します。

なんやかんややって、UnityのコンソールにX, Y値が出力されているのがわかります。

ペンギンの動きをMicro:bitで操作

Unityで動かす対象のモデルを設定します。
息子くんは数ある公開されたオブジェクトのうちペンギンをセレクト♪

動きとMicro:bitからのセンサー値を紐づけます。ペンギンめっちゃこけてる!

youtu.be

そして集中して(画面の隅ではYouTubeも見ながら)Unityのゲームプログラムを作っていきます。

f:id:toriko0413:20190522165831j:plain

白文鳥ちゃんがコードを覗いてますが、これはうちの愛鳥そっくりのぬいぐるみです♪

UnityってC#ですがVisual Studioでコード書けてデバッグできるんですね!

完成したペンギンゲーム

完成したものがこちら。
すべてのアイテムをとっていくゲームなんだって。楽しい。

youtu.be

あー、夜撮影したから動画が暗い・・・
そして鳥の鳴き声入り。失礼しました。


スター・はてブブログ村リンクとても嬉しいです!
ブログランキング・にほんブログ村へにほんブログ村