0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

植物栽培ロボットで TinyGo にチャレンジしてみよう

Last updated at Posted at 2025-10-12

https://qiita.com/nanbuwks/items/37bffef16036937eecc3
「栽培ロボットをインストール 1st」

の植物栽培ロボットを、 TinyGo で動かしてみましょう。

機材説明

植物栽培ロボット。 右上が ESP32 です。今回は給水ポンプ、排水ポンプ、バルブ1、バルブ2を使います。
IMG_20251012_145050.jpg

植木鉢1 と 植木鉢2。今回はこれに水を供給します。
IMG_20251012_145104.jpg

水タンク。これから水を供給します。また、排水時には植木鉢からここに水を戻します。
IMG_20251012_145120.jpg

水位センサ・・・ですが今回は使用しません。
IMG_20251012_145315.jpg

電磁バルブと手動バルブ。今回はバルブ1,2を使います。手動バルブ3,4を閉じているので電磁バルブ3,4を動かしても水は流れません。
IMG_20251012_145959.jpg

GPIO

ESP32 の、 GPIO は以下のように割り当てられています。

機能 GPIO
ポンプ1給水 25
ポンプ2排水 26
バルブ1 27
バルブ2 14
バルブ3 13
バルブ4 21
水位センサー1 34
水位センサー2 35
水位センサー3 32
ブザー 2
温度センサ VP
タクトスイッチ 36
GROVE1 22
GROVE2 VN
リレー 12

お試しその1

試しにバルブ4 を動かしてみましょう。

blinky1 が以下のようにあります。

package main

// This is the most minimal blinky example and should run almost everywhere.

import (
	"machine"
	"time"
)

func main() {
	led := machine.LED
	led.Configure(machine.PinConfig{Mode: machine.PinOutput})
	for {
		led.Low()
		time.Sleep(time.Millisecond * 500)

		led.High()
		time.Sleep(time.Millisecond * 500)
	}
}


この、 machine.LED を machine.IO21 に変更してみると、0.5 秒毎にバルブ4がOn/OFFするのがわかります。

給水

植木鉢1に給水するためにはポンプ1をONにして、バルブ1をONにします。

適当な秒数で給水してみましょう。

排水

植木鉢1を排水するにはポンプ2をONにして、バルブ1をONにします。

以下のサイクルを実現してみましょう。

  • 植木鉢1排水
  • 植木鉢1給水
  • 植木鉢2排水
  • 植木鉢2給水

スイッチ連動

基板上の押しボタンスイッチを押すと、「タクトスイッチ」が faluse になります。
スイッチをトリガーとして排給水をしてみましょう。

GPIOピンは以下のようにするとインプット設定ができます。

	sw1 := machine.IO36
	sw1.Configure(machine.PinConfig{Mode: machine.PinInput})

以下のようにするとインプット設定したGPIOピンから状態を取得できます。

		sw := sw1.Get()
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?