2019a/Member

目次

課題について

課題内容

〇これまで住んだことのある都道府県名、市町村名、地区名などの中から2文字以上、かつ合計10画以上のものを選び、それをA4の紙を書くロボットを製作する。
  ・ひとりにつき一つ以上のプログラムを作成すること。
  ・ペン以外はキットに含まれる部品を使うこと。
  ・キットに付属の高価な輪ゴムは切れやすいので切れないように細心の注意を払うこと。
  ・改良や調整をしやすくするため、ロボット本体だけでなく、プログラムについても可能な部分についてはサブルーチンや関数、マクロなどを使って部品に分けること。
 

選んだ文字

僕が選んだ文字は一度は行ってみたいと思っている「品川」である。

ロボットについて

IMG_1891.JPG

ロボットの全体像は上の通りである。
ロボット全体を安定させることを重視したため、見た目が少しいびつになってしまった。

IMG_1894.JPGIMG_1895.JPG
ペンの横移動をできるだけ幅広く動かせるように腕を長くすることで文字が小さくなりすぎないようにした。
また、モーターの回転が早すぎ、遅すぎないように調整するのが難しかった。

IMG_1897.JPGIMG_1898.JPG
MediumMotorを45度動かすとぴったりペンを下げることができる。逆に-45度動かすことでペンを上げることができる。
一番苦労したと思われるペンの固定であるが、ゴム製のタイヤと両サイドからペンを押さえ込むような形で工夫することでペンの上げ下げでは揺れたり、落ちたりしないようにすることができた。

プログラムについて

モジュールのインポートとインスタンスの作成部分

#!/usr/bin/env python3
from ev3dev.ev3 import *     
from time import sleep       #sleep関数をインポート 
x = LargeMotor('outA')   #車輪を動かすモーターをx
y = LargeMotor('outB')   #ペンの横移動をするモーターをy
z = MediumMotor('outC')   #ペンの上げ下げをするモーターをz  とした。

関数の作成部分

モーターをリセットする関数である。

def motor_ketu():
   x.reset()
   y.reset()
   z.reset()

車輪を動かす関数である。aとbの変数を用いて調整しやすいようにした。

def move_mae(a,b):
   x.run_forever(speed_sp=a, stop_action='hold')
   sleep(b)
   x.stop()

ペンの横移動の関数である。スピードは100で安定した。

def yoko_migi(c):
   y.run_forever(speed_sp=100, stop_action='hold')
   sleep(c)
   y.stop()
def yoko_hidari(d):
   y.run_forever(speed_sp=-100, stop_action='hold')
   sleep(d)
   y.stop()

ペンの上げ下げの関数である。回転する角度45度にした。

def fude_age():
   z.run_to_rel_pos(position_sp=-45, speed_sp=200, stop_action='brake')
   sleep(1)
def fude_sage():
   z.run_to_rel_pos(position_sp=45, speed_sp=200, stop_action='brake')

上で定義した関数をもとに「口」を書く関数にさらにまとめた。車輪のスピードは70に設定した。

def kuti():
   fude_sage()
   move_mae(70,1)
   yoko_migi(1/2)
   move_mae(-70,1)
   yoko_hidari(1/3)

文字の作成

品について

motor_ketu()
kuti()      #1つ目の口部分
yoko_hidari(5/8)
move_mae(-80,1)  #位置を変えるため車体を後退する
kuti()            #2つ目の口部分
yoko_migi(5/8)
kuti()      #3つ目の口部分

川について

motor_ketu() 
yoko_hidari(1/2)
move_mae(-60,1)   #位置を変えるため車体を後退する
fude_sage()
move_mae(-150,1)  #1画目
fude_age()
yoko_migi(1/2)    #1画目との間隔をあける
fude_sage()
move_mae(120,1)   #2画目
fude_age()
yoko_migi(1/3)  #2画目との間隔をあける
fude_sage()
move_mae(-180,1)  #3画目
fude_age()

今回書けた字

IMG_E1899.JPG 失敗作
IMG_1901.JPG 成功
口部分のバランスをとるのが難しかった。
川のはらいの部分まで再現できなった。
https://twwiter.com/fy2ice9yslqaqsj/1135138968129826816?s=21

感想・反省

プログラミングは右も左も分からない状態からのスタートだったので、プログラミングのほとんどを相方に頼りっきりになってしまった。本当に申し訳なく思います。もう少しロボットの製作時間を短く出来ればプログラミングも丁寧にできたと思います。次回の課題ではこのようなことにならないように計画的に進めていきたいです。


添付ファイル: fileIMG_1901.JPG 256件 [詳細] fileIMG_1901 (1).JPG 72件 [詳細] fileIMG_E1899.JPG 230件 [詳細] fileIMG_1898.JPG 226件 [詳細] fileIMG_1897.JPG 200件 [詳細] fileIMG_1895.JPG 249件 [詳細] fileIMG_1894.JPG 171件 [詳細] fileIMG_1892.JPG 123件 [詳細] fileIMG_1891.JPG 234件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-06-07 (金) 14:06:14