目次   

課題1

これまで住んだことのある都道府県名、市町村名、地区名などの中から2文字以上のものを選び、それをA4の紙を書くロボットを製作せよ。

選んだ文字

愛知県にある『守山』という地名を選びました。

ロボットの解説

構造

今回作成したロボットは

.蹈椒奪箸魄榮阿気擦觴屬良分

∧源を書くペンを上下させる部分

の2つで構成されている.

ー屬良分

あああ 写真にあるタイヤ(左輪)と裏側に同様に設置してある右輪でロボット本体を移動させる

∧源を書くペンを上下させる部分

mediummotorを使ってペンのついたアームを上下させる

あああ

作成したプログラム

#!/usr/bin/env python3
from ev3dev.ev3 import *
from time import sleep

ロボットを動かすための基本的なプログラム  

mL = LargeMotor('outB')
mR = LargeMotor('outC')
mA = MediumMotor('outD')

プログラム内でのモーターの呼び名  ㎃はペンを上下させるモーター  L・Rはそれぞれ右輪,左輪

 関数の説明

def move1dis():
   mL.run_timed(time_sp=500,speed_sp=300,stop_action='hold')
   mR.run_timed(time_sp=500,speed_sp=300,stop_action='hold')

特定の距離だけ前進させる

def move():
   mL.run_timed(time_sp=500,speed_sp=400,stop_action='hold')
   mR.run_timed(time_sp=500,speed_sp=400,stop_action='hold')

現在ペン先がある位置の真上にロボットを移動させる

def back1dis():
   mL.run_timed(time_sp=500,speed_sp=-300,stop_action='hold')
   mR.run_timed(time_sp=500,speed_sp=-300,stop_action='hold')

上のmove1disと同じだけ後退させる

def turnL():
   mL.run_timed(time_sp=500,speed_sp=350,stop_action='hold')
   mR.run_timed(time_sp=500,speed_sp=-350,stop_action='hold')

ロボットをその場で90度左に向ける

def shortturnL():
   mL.run_timed(time_sp=200,speed_sp=200,stop_action='hold')

僅かに左輪を回転させる

def shortturnL2():
   mL.run_timed(time_sp=200,speed_sp=-200,stop_action='hold')

僅かに左輪を逆回転させる

def shortturnR():
   mR.run_timed(time_sp=200,speed_sp=200,stop_action='hold')

僅かに右輪を回転させる

def shortturnR2():
   mR.run_timed(time_sp=200,speed_sp=-200,stop_action='hold')

僅かに右輪を逆回転させる

def penup():
   mA.run_timed(time_sp=300,speed_sp=100,stop_action='hold')

ペンを紙から離す

def pendown():
   mA.run_timed(time_sp=300,speed_sp=-100,stop_action='hold')

ペンを紙に下ろす

 

「守」のウ冠部分

shortturnL()
sleep(1)
shortturnL2()
sleep(1)
move1dis()
sleep(1)
shortturnR()
sleep(1)
shortturnR2()
sleep(1)
move1dis()
sleep(1)
shortturnL()
sleep(1)
shortturnL2()
sleep(1)
penup()
sleep(1)

「守」の寸部分

shortturnL()
sleep(1)
shortturnL()
sleep(1)
shortturnL()
sleep(1)
shortturnL()
sleep(1)
shortturnL()
sleep(1)
mL.run_timed(time_sp=550,speed_sp=-200,stop_action='hold')
mR.run_timed(time_sp=550,speed_sp=-200,stop_action='hold')
sleep(1)
pendown()
sleep(1)
shortturnL()
sleep(1)
penup()
sleep(1)
shortturnL()
sleep(1)
shortturnL()
sleep(1)
shortturnL()
mL.run_timed(time_sp=100,speed_sp=-200,stop_action='hold')
mR.run_timed(time_sp=100,speed_sp=-200,stop_action='hold')
sleep(1)
pendown()
sleep(1)
shortturnL2()
sleep(1)
shortturnL()
sleep(1)
back1dis()
sleep(1)
mL.run_timed(time_sp=250,speed_sp=130,stop_action='hold')
mR.run_timed(time_sp=250,speed_sp=130,stop_action='hold')
sleep(1)
shortturnL()
sleep(1)
mL.run_timed(time_sp=375,speed_sp=-100,stop_action='hold')
mR.run_timed(time_sp=375,speed_sp=300,stop_action='hold')
sleep(1)
penup()
sleep(1)

「山」の書き始めの位置までペンを移動させる

mL.run_timed(time_sp=500,speed_sp=400,stop_action='hold')
mR.run_timed(time_sp=500,speed_sp=100,stop_action='hold')
sleep(1)

「山」の文字

pendown()
sleep(1)
move1dis()
sleep(1)
mL.run_timed(time_sp=350,speed_sp=300,stop_action='hold')
mR.run_timed(time_sp=350,speed_sp=300,stop_action='hold')
sleep(1)
penup()
sleep(1)
move()
sleep(1)
turnL()
sleep(1)
mL.run_timed(time_sp=500,speed_sp=-200,stop_action='hold')
mR.run_timed(time_sp=500,speed_sp=-200,stop_action='hold')
sleep(1)
pendown()
sleep(1)
mL.run_timed(time_sp=500,speed_sp=300,stop_action='hold')
mR.run_timed(time_sp=500,speed_sp=0,stop_action='hold')
sleep(1)
mL.run_timed(time_sp=500,speed_sp=-300,stop_action='hold')
mR.run_timed(time_sp=500,speed_sp=0,stop_action='hold')
sleep(1)
back1dis()
sleep(1)
back1dis()
sleep(1)
mL.run_timed(time_sp=500,speed_sp=300,stop_action='hold')
mR.run_timed(time_sp=500,speed_sp=0,stop_action='hold')
sleep(1)

そして最後に以下のコマンドでモーター全てをリセットする

mL.reset()
mR.reset()
mA.reset()

実際に書けた文字

あああ

感想・反省

不慣れなプログラミングの作業で余裕がなく,sleep()や変数などを使いこなせず  控えめに言っても粗末な出来のプログラムになってしまったため

これ以降はプログラミング技能の向上を心がけようと思った.


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-08-10 (金) 15:39:40 (380d)