狠狠撸

狠狠撸Share a Scribd company logo
情報教育におけるプログラミング教育の現状と課題
~学校現場の視点から~
兵庫県私学教育情報化研修会 令和元年度 第一回研修会
令和元年7月23日 神戸学院大学附属中学校?高等学校
Microsoft MVP Data Platform
兵庫県立神戸甲北高等学校 主幹教諭
松本吉生
hotikisu@gmail.com
Yoshio Matsumoto
略歴
? 1985 夢野台高等学校(理科:化学)
? 1989 明石高等学校
コンピュータ教室整備 ネットワーク管理
文部科学省「光ファイバー網」研究事業
? 2003 西宮香風高等学校(情報)
SQL Serverによる学籍管理システム
? 2004 - 2020 マイクロソフトMVP - 16年連続受賞
日本では唯一の高校教員
? 2015 神戸工業高等学校(工業:情報技術)
C# プログラミング教育
? 2016 - 2019 マイクロソフト MIEE 世界規模の教員アワード
? 2018 神戸甲北高等学校
プログラミング教育とは
? 小学校段階における論理的思考力や創造性、問題解決能力等の育
成と プログラミング教育に関する有識者会議
? 「小学校段階におけるプログラミング教育の在り方について(議論のとりまと
め)」平成28年6月6日
(有識者会議における議論の視野)
? 小学校段階におけるプログラミング教育については、学校と民間が
連携した意欲的な取組が広がりつつある一方で、コーディング(プロ
グラミング言語を用いた記述方法)を覚えることがプログラミング教
育の目的であるとの誤解が広がりつつあるのではないかとの指摘も
ある。“小さいうちにコーディングを覚えさせないと子供が将来苦労
するのではないか”といった保護者の心理からの過熱ぶりや、反対
に“コーディングは時代によって変わるから、プログラミング教育に時
間をかけることは全くの無駄ではないか”といった反応も、こうした誤
解に基づくものではないかと考えられる。
? プログラミング教育とは、子供たちに、コンピュータに意図した処理を
行うよう指示することができるということを体験させながら、将来どの
ような職業に就くとしても、時代を超えて普遍的に求められる力とし
ての「プログラミング的思考」などを育むことであり、コーディングを覚
えることが目的ではない。
ミレニアム?プロジェクト「教育の情報化」
? 1996年(平成8年)7月、中央教育審議会答申「21世紀を展望した我
が国の教育の在り方について」
? 1997年(平成9年)10月、「情報化の進展に対応した初等中等教育に
おける情報教育の推進などに関する調査研究協力者会議」第1次報
告
? 1998年(平成10年)7月29日、教育課程審議会答申「情報」新設
? 1999年(平成11年)3月29日、高等学校学習指導要領告示
? 1999年(平成11年)12月、ミレニアム?プロジェクト「教育の情報化」
「教育の情報化」プロジェクトに掲げられた目
標
? 2001年度(平成13年度)までに、全ての公立小中高等学校等がインター
ネットに接続でき、全ての公立学校教員がコンピュータの活用能力を身に
つけられるようにする。さらに、2002年度(平成14年度)には、我が国の教
育の情報化の進展状況を、国際的な水準の視点から総合的に点検すると
ともに、その成果の国民への周知を図るため、国内外の子供たちの幅広
い参加による、インターネットを活用したフェスティバルを開催する
? 2005年度(平成17年度)を目標に、全ての小中高等学校等からインター
ネットにアクセスでき、全ての学級のあらゆる授業において教員及び生徒
がコンピュータを活用できる環境を整備する。
教科「情報」におけるボタンの掛け違い
? 教科「情報」はコンピュータやインターネットを教えるものではない、と
言われた。
? 現職教員研修による「情報」免許状の発行、教員のスキル不安
? 情報科学ではなく教育学からのアプローチが主導権をとる
遠隔学習 国際交流 ビデオ会議 ディベート 協同学習
プレゼンテーション ホームページ作成 電子メールによる交流
プロジェクト学習 ディベート 画像編集 マルチメディア
表計算ソフト 著作権 情報モラル
普通教科「情報」の変遷
? 情報A
? 情報活用の実践力
? 情報B
? 情報の科学的理解
? 情報C
? 情報社会に参画する態度
? 情報の科学
? 社会と情報
? 情報Ⅰ
? 現在、プログラミングを問題解決に活用することを学ぶ「情報の科
学」は選択必履修科目であり、その履修率は高校生の約2割にとど
まる。
小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)
「プログラミング的思考」とは
? ますます身近となる情報技術を効果的に活用しながら、複雑な文脈の中
から読み解いた情報を基に論理的?創造的に考え、解決すべき課題や解
決の方向性を自ら見いだし、多様な他者と協働して新たな価値を創造し
ていくための力が求められる。
? コンピュータの働きを理解しながら、それが自らの問題解決にどのように
活用できるかをイメージし、意図する処理がどのようにすればコンピュータ
に伝えられるか、さらに、コンピュータを介してどのように現実世界に働き
かけることができるのかを考えることが重要になる。
? 自分が意図する一連の活動を実現するために、どのような動きの組合せ
が必要であり、一つ一つの動きに対応した記号を、どのように組み合わせ
たらいいのか、記号の組合せをどのように改善していけば、より意図した
活動に近づくのか、といったことを論理的に考えていく力が必要になる。
学校教育におけるプログラミング教育の在り
方とは
? 子供たちには、コンピュータに意図した処理を行うよう指示すること
ができるということを体験させながら 、時代を超えて必要となる資
質?能力を、発達の段階に即して身に付けていくことが求められる。
? プログラミング教育とは、子供たちに、コンピュータに意図した処理を
行うよう指示することができるということを体験させながら、発達の段
階に即して、次のような資質?能力を育成するものであると考えられ
る。
意図した処理を行うよう指示すること
プログラミング = コーディングする
【知識?技能】
(小)身近な生活でコンピュータが活用されていることや、問題の解決には
必要な手順があることに気付くこと。
(中)社会におけるコンピュータの役割や影響を理解するとともに、簡単な
プログラムを作成できるようにすること。
(高)コンピュータの働きを科学的に理解するとともに、実際の問題解決に
コンピュータを活用できるようにすること。
【思考力?判断力?表現力等】
? 発達の段階に即して、「プログラミング的思考」(自分が意図する一連の
活動を実現するために、どのような動きの組合せが必要であり、一つ一つ
の動きに対応した記号を、どのように組み合わせたらいいのか、記号の組
合せをどのように改善していけば、より意図した活動に近づくのか、といっ
たことを論理的に考えていく力)を育成すること。
【学びに向かう力?人間性等】
? 発達の段階に即して、コンピュータの働きを、よりよい人生や社会づくり
に生かそうとする態度を涵養すること。
発達の段階に即した資質?能力の育成
? 中学校及び高等学校では、それぞれの学校段階における子供たちの抽
象的思考の発達に応じて、構造化された内容を体系的に教科学習として
学んでいくこととなる。中学校では技術?家庭科において、高等学校では
情報科において学ぶこととなるが、現在、中央教育審議会においては、中
学校及び高等学校におけるプログラミング教育の充実についても議論さ
れている。
? 具体的には、中学校技術?家庭科技術分野の「情報に関する技術」にお
いて、計測?制御に関するプログラミングだけではなく、コンテンツに関す
るプログラミングを指導内容に盛り込むことによって、プログラミングに関
する内容を倍増させること、高等学校情報科に共通必履修科目を新設し、
全ての高校生がプログラミングを問題解決に活用することを学べるように
することが検討されている。
? 現在、プログラミングを問題解決に活用することを学ぶ「情報の科学」は
選択必履修科目であり、その履修率は高校生の約2割にとどまる。
小学校教育におけるプログラミング教育の
在り方
? 小学校におけるプログラミング教育が目指すのは、前述のように、
子供たちが、コンピュータに意図した処理を行うよう指示することが
できるということを体験しながら、身近な生活でコンピュータが活用さ
れていることや、問題の解決には必要な手順があることに気付くこと、
各教科等で育まれる思考力を基盤としながら基礎的な「プログラミン
グ的思考」を身に付けること、コンピュータの働きを自分の生活に生
かそうとする態度を身に付けることである。
? 順次、分岐、反復といったプログラムの構造を支える要素について
も、それを知識として身に付けることは中学校教育の指導内容に盛
り込まれている。小学校教育では体験の中で触れるということで十
分であり、それ自体を教え込んだり、知識として身に付けることを指
導のねらいとしたりする段階ではないと考えられる。
小学校におけるプログラミング教育の実践
? Scratch
? Minecraft Education
? Micro:bit
プログラミング教育の体系化(1)
? 小学校
? 順次、分岐、反復といった要素について、体験的に触れる。
? 中学校
? 計測?制御に関するプログラミング
? コンテンツに関するプログラミング
? 簡単なプログラムを作成できる
? 高等学校
中学校学习指导要领解説
コンテンツに関するプログラミング
? 「急速な発達を遂げている情報の技術に関しては,小学校における
プログラミング教育の成果を生かし,発展させるという視点から,従
前からの計測?制御に加えて,双方向性のあるコンテンツに関する
プログラミングや,ネットワークやデータを活用して処理するプログラ
ミングも題材として扱うことが考えられる。その際,情報セキュリティ
等についても充実する。」
? 「コンテンツのプログラミングによる問題を解決する学習活動として
は,例えば,学校紹介のWeb ページにQ&A方式のクイズといった
双方向性のあるコンテンツを追加したり,互いにコメントなどを送受
信できる簡易なチャットを教室内で再現し,更に利便性や安全性を
高めるための機能を追加したりするなど???」
計測?制御に関するプログラミング
? 「プログラムによる計測?制御」に関する内容についても,「計測?制御シス
テムを構想」することを求めている。
? センサ,コンピュータ,アクチュエータ等の計測?制御システムの要素や,
計測?制御システムの各要素において異なる電気信号(アナログ信号とデ
ジタル信号)を変換し,各要素間で情報の伝達が行えるようにするために
インタフェースが必要であること,計測?制御システムの中では一連の情
報がプログラムによって処理されていることなどの計測?制御システムの
仕組みについて理解させる。
? 例えば,気温や湿度の計測結果に基づき,灌水などの管理作業を自動
的に行う栽培ロボットのモデルや,買物の際に,高齢者の方を目的の売り
場に誘導しながら荷物を運搬したり,障害物や路面状況などをセンサで
確認し,危険な状況となった場合には注意を促したりする生活サポートロ
ボットのモデルを開発するなど
構造化プログラミング
? 処理の流れを図などに表し試行等を通じて解決策を具体化する力
などの育成や,順次,分岐,反復といったプログラムの構造を支える
要素等の理解を目指すために,従前はソフトウェアを用いて学習す
ることの多かった「ディジタル作品の設計と制作」に関する内容につ
いて,プログラミングを通して学ぶこととした。
? 設定した課題を解決するために,適切なプログラミング言語を用い
て,安全?適切に,順次,分岐,反復という情報処理の手順や構造を
入力し,プログラムの編集?保存,動作の確認,デバッグ等ができる
ようにする。
プログラミング教育の体系化(2)
? 小学校
? 順次、分岐、反復といった要素について、体験的に触れる。
? 中学校
? 計測?制御に関するプログラミング - 計測?制御システムの構想
? コンテンツに関するプログラミング - 双方向性、ネットワーク、データ活用
? 動的Webページのプログラミング LAMP、IIS、ASP.NET
? 構造化プログラミング
? 高等学校
高等学校学習指導要領解説
? 共通教科情報科における「情報に関する科学的な見方?考え方」について
は,これまでの学習指導要領の中で,「情報に関する科学的な見方や考
え方」として教科の目標に位置付けられたり,評価の観点の名称として用
いられたりしてきた。
? 今回の改訂では,「見方?考え方」を働かせた学習活動を通して,目標に
示す資質?能力の育成を目指すこととした。これは平成28年12月の中央
教育審議会答申において,「見方?考え方」は各教科等の学習の中で働き,
鍛えられていくものであり,各教科等の特質に応じた物事を捉える視点や
考え方として整理されたことを踏まえたものである。共通教科情報科では,
「情報に関する科学的な見方?考え方」については,「事象を,情報とその
結び付きとして捉え,情報技術の適切かつ効果的な活用(プログラミング,
モデル化とシミュレーションを行ったり情報デザインを適用したりすること
等)により,新たな情報に再構成すること」であると整理されている。
第3節
情報教育の中での共通教科情報科の位置付け
1 情報教育の目標
? ,「情報化の進展に対応した初等中等教育における情報教育の推進等に関
する調査研究協力者会議」は,平成9年10月の第1次報告「体系的な情報教
育の実施に向けて」(以下,「第1次報告」という。)において,情報教育の目
標の観点を「情報活用の実践力」,「情報の科学的な理解」,「情報社会に参
画する態度」の三つに整理している。平成21年改訂の高等学校学習指導要
領では,情報教育の目標の観点として引き続きこの3観点を位置付けている。
今回の改訂においては,これを資質?能力の三つの柱に沿って再整理した。
? 育成すべき情報活用能力自体が変化するわけではなく,同じものを別の角
度で見たものと解釈することができる。
第4節 共通教科情報科の目標
? 情報に関する科学的な見方?考え方を働かせ,情報技術を活用して
問題の発見?解決を行う学習活動を通して,問題の発見?解決に向
けて情報と情報技術を適切かつ効果的に活用し,情報社会に主体
的に参画するための資質?能力を次のとおり育成することを目指す。
第5節 共通教科情報科の科目編成
? 今回の改訂では,「情報の科学的な理解」に裏打ちされた情報活用
能力を育むとともに,情報と情報技術を問題の発見?解決に活用す
るための科学的な考え方等を育むことが求められている
? 具体的には,コンピュータについての本質的な理解に資する学習活
動としてのプログラミングや,より科学的な理解に基づく情報セキュ
リティに関する学習活動を充実した。また,統計的な手法の活用も
含め,情報技術を用いた問題発見?解決の手法や過程に関する学
習を充実した。
情報Ⅰ、Ⅱ
? 「情報Ⅰ」では,プログラミング,モデル化とシミュレーション,ネット
ワーク(関連して情報セキュリティを扱う)とデータベースの基礎と
いった基本的な情報技術と情報を扱う方法とを扱うとともに,コンテ
ンツの制作?発信の基礎となる情報デザインを扱い,更に,この科目
の導入として,情報モラルを身に付けさせ情報社会と人間との関わ
りについても考えさせる。
? 「情報Ⅱ」では,情報システム,ビッグデータやより多様なコンテンツ
を扱うとともに,情報技術の発展の経緯と情報社会の進展との関わ
り,更に人工知能やネットワークに接続された機器等の技術と今日
あるいは将来の社会との関わりについて考えさせる。
プログラミング教育の体系化(3)
? 小学校
? 順次、分岐、反復といった要素について、体験的に触れる。
? 中学校
? 計測?制御に関するプログラミング - 計測?制御システムの構想
? コンテンツに関するプログラミング - 双方向性、ネットワーク、データ活用
? 動的Webページのプログラミング
? 構造化プログラミング
? 高等学校
? 情報Ⅰ
? プログラミング、モデル化とシミュレーション、ネットワーク、データベース
? 情報デザイン、セキュリティ、情報モラル
? 情報Ⅱ
? 情報システム、ビッグデータ、情報技術の発展、情報社会の進展、人工知能、IoT
プログラミング実習のイメージ
? 小学校
? プログラミング体験
? Scratch、Micro:bit、Minecraft
? 中学校
? 計測?制御
? Arduino、Micro:bit、センサ、アクチュエータ
? コンテンツに関するプログラミング
? LAMP、IIS、ASP.NET、Visual Studio C#
? 高等学校
? オブジェクト指向
? Visual Studio C#、IIS、ASP.NET、SQL Server
? クラウド
? Microsoft Azure
平成29年度兵庫県教育研究会情報部会「プ
ログラミング教育」研究テーマ概要
新しい学習指導要領でプログラミング教育の重要性が示され、小学校
を中心として様々な実践が行われるようになった。現在、小学校を中
心に「スクラッチ」など主としてブロック型のプログラミング言語および
開発環境を用いた授業研究が活発に行われている。数年後には小学
校におけるプログラミング教育が拡充し、プログラミングの基本的知
識が身に着いた児童が、中学校においてさらに発展的な学習をし、高
等学校に進学してくる。また他方で、工業学科のように技術者を養成
するのではなく、普通教育において具体的にどのような内容をプログ
ラミング教育で行うべきかは十分に検討されるべき課題である。これ
らの観点から、今後、高等学校においてどのようなプログラミング教育
が目指されるべきなのかを明らかにしたい。
アンケート調査
? 対象科目は普通科教育における「社会と情報」「情報の科学」とした。
? 調査方法は質問用紙を各校あてに郵送し回答はWebによる集計を
基本とし、FAXも受付可能とした。
? 無料Webアンケートサイト DIPSurvey-Free
? 「トークン」を利用したクローズドアンケート
? 回答方法の種類が豊富
? データをエクスポート
? 広告が入る
調査対象
? 普通科高校の教科「情報」授業担当者
? 平成29年度情報担当者名簿で158校を決めてアンケートを郵送
? ①教科「情報」で採用された方 95名
? ②教科「情報」の免許を所有している方 562名
? ③平成29年度に「情報」の授業を担当している方 389名
? ④前年度情報部会の会員であった方
? 389名のうち非常勤講師は51名 389-51=338名
? 回答数 Web 83 FAX 5 合計 88
? 回収率 26.0%
プログラミング教育の目的
? 小学校段階における論理的思考力や創造性、問題解決能力等の育
成と プログラミング教育に関する有識者会議
? 「小学校段階におけるプログラミング教育の在り方について」28年6月6日
? 「子供たちが複雑な情報を読み解いて、解決すべき課題や解決の方向性を
自ら見いだし、多様な他者と協働しながら自信を持って未来を創り出していく
ために必要な力を伸ばしていくことが求められる。」
? 論理的思考力
? 問題解決能力
? 自発的な学習能力
? 創造力と自己実現能力
プログラミング教育の目的
? 重要だと思われる順に1から4の番号をつけてください。
1 2 3 4
論理的思考力 51 20 10 7
問題解決能力 17 37 19 15
自発的な学習能力 10 14 26 38
創造力と自己実現能力 10 17 33 28
プログラミング教育の目的
1番に選ばれたもの
論理的思考力 51
問題解決能力 17
自発的な学習能力 10
創造力と自己実現能力 10
現在「社会と情報」または「情報の科学」で
プログラミング実習を取り入れていますか
取り入れている 34
取り入れていない 54
普通教科「情報」の授業でプログラミング実
習は必要だと思いますか
思う 60
思わない 28
どの言語を使うことができますか
Basic 42
Java 25
JavaScript(ECMA Script) 26
VBA 53
HTML 69
C 35
C++ 14
C# 6
Scratch 30
Python 9
どの言語も使うことができない 5
その他 18
どの言語を使うことができますか
HTML 69
VBA 53
Basic 42C 35
Scratch 30
JavaScript 26
Java 25
その他 18
C++ 14
Python 9
C# 6
どの言語も使えない 5
どの言語を指導することができますか
Basic 33
Java 14
JavaScript(ECMA Script) 19
VBA 42
HTML 61
C 27
C++ 7
C# 3
Scratch 24
Python 6
いずれも指導できない 12
その他 14
どの言語を指導することができますか
HTML 61
VBA 42
Basic 33C 27
Scratch 24
JavaScript 19
Java 14
その他 14
C++ 7
Python 6
C# 3
どの言語も指導できない 5
使える言語と指導できる言語
0
10
20
30
40
50
60
70
80
HTML VBA Basic C Scratch JavaScript Java C++ Python C#
使える言語 指導できる言語
88
普通教科「情報」の授業で、マイコンボードやロ
ボットなどをプログラミング教育に活用すること
についてどう思われますか。
肯定的 50否定的 22
中間的 16
プログラミング教育による「情報」の再出発
? プログラミング教育が「情報」の中心になる。
? 現代プログラミングにおいてはアルゴリズムとコーディングは一体で
ある。アジャイル、オブジェクト指向
? VBA、Scratchなどは厳密な意味でプログラミングではなく、アプリ
ケーション内のオートメーションである。
? 基礎的内容
プログラミング
?データベース ?ネットワーク
?クラウド ?センサとアクチュエータ
高等学校のプログラミング教育
? ネットワーク
? パケット通信
? データベース
? SQL
? 動的Web
? LAMP
? IIS、ASP.NET
? オブジェクト指向
? Visual Studio
? C#
? クラウド
? Microsoft Azure
20190723 programming education at Elementary school, Junior high school and Senior high school in Japan.
プログラミング教育の必要性
? モノづくりの変化
? 様々な製品がプログラムによって動く
? 製品開発にプログラマーが必須
? エンベデッド技術者の不足
? 生活の変化
? 日常生活にインターネットや情報機器が利用される時代
? 「使えればいい」のではなく「仕組みを理解して使う」
? 職業の変化
? コンピュータやロボット、インターネットを使う職場環境
? ソフトウエアとハードウエアの関係を知る必要がある
? 国家戦略
? 通信機器を自国で生産、管理できる必要がある
? テクノロジー冷戦、サプライチェーンリスク
兵庫県私学教育情報化研修会 令和元年度 第一回研修会
令和元年7月23日 神戸学院大学附属中学校?高等学校
micro:bitとArduinoを使ったプログラミングの基礎
~センサーおよびアクチュエータの制御実習~
Microsoft MVP Data Platform
兵庫県立神戸甲北高等学校 主幹教諭
松本吉生
hotikisu@gmail.com
Yoshio Matsumoto
マイコンボード
? シングルボードコンピュータ
? 5V ディジタル I/O 入出力が可能
? 低機能、低消費電力、安価
? 実験用、教育用、開発プロトタイプ
? 対話的インタフェースがない
? Raspberry Piはマイコンボードとパソコンの中間的な存在(キーボード
とマウス、モニタをつないで対話的に利用できる)
主なマイコンボード
?Raspberry Pi ?Arduino ?Micro:bit
マイコンボードによる計測?制御
Digital In →
Analog In →
(A/D Converter)
内臓している
→ Digital Out
→ Analog Out
(D/A Converter)
PWM
疑似的アナログ出力
Arduino
? アルデュイーノ アルドゥイーノ
? 2005年にイタリアで開発
? 全世界で70万台(2013年)
? 安価(クローンはさらに安い)
? アナログ入力を持つ
? さまざまな亜種がある
? 各種のシールド(ドータボード)がある
? Arduino IDE で開発
Arduino IDE によるプログラミング
? Arduino IDE を起動
? インストール型
? インストール不要の実行型
? クローンはドライバのインストールが必要
? ボードタイプを確認 Arduino UNO3
? シリアルポートを確認
? Arduino を 接続してシリアルポートを設定
? 「ファイル」-「開く」でスケッチを開く
Blink
? 「Lチカ」とも呼ばれる LED の点滅プログラム
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
振動モーター
? 電圧を加えると振動する
人感センサ
? 焦電型赤外線センサ
人感センサの利用
? 人感センサの出力を pin 2
に接続する
void setup() {
pinMode(2, INPUT);
pinMode(13, OUTPUT);
}
void loop() {
int sensorVal = digitalRead(2);
if (sensorVal == LOW) {
digitalWrite(13, LOW);
} else {
digitalWrite(13, HIGH);
}
}
Fade
? ディジタルでアナログ的な処理をする
int bright = 0;
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(bright);
digitalWrite(13, LOW);
delay(25 - bright);
bright = bright + 1;
if (bright > 25) {
bright = 0;
}
}
AnalogRead
? アナログ信号をA/D変換する 10bit 0~1023
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(analogRead(A0));
digitalWrite(13, LOW);
delay(analogRead(A0));
}
5V
GND
pin A0
距離センサ GP2Y0A21YK0F
? 距離に応じた電圧を出力する
5V
GND
pin A0
5V
GND
pin A0
サーボモーター SG90
? PWMで回転角を制御する
5V
GND
pin A0
茶 GND
赤 5.0V
黄 pin 3
サーボモーター FS90
サーボモーター SG90 の制御(1)
#include <Servo.h>
Servo myservo;
int pos = 0;
void setup() {
pinMode(13, OUTPUT);
myservo.attach(3);
}
void loop() {
for(pos = 0; pos < 180; pos += 1) {
myservo.write(pos);
delay(15);
}
for(pos = 180; pos>=1; pos-=1) {
myservo.write(pos);
delay(15);
}
}
サーボモーター SG90 の制御(2)
? アナログ入力を回転角にする
#include <Servo.h>
Servo myservo;
int pos = 0;
void setup() {
pinMode(13, OUTPUT);
myservo.attach(3);
}
void loop() {
pos = analogRead(A0);
if(pos > 180) {
pos = 180;
}
myservo.write(pos);
delay(15);
}
Micro:bit
? マイクロビット
? BBC 英国放送協会が開発
? 英国の11歳と12歳の小学生全員に配布
? マイクロソフトが開発ツールをサポート
? 加速度センサ、磁気センサ、LEDなどを実装
? 開発は Web 上のブロック型ツールがある
? Makecode https://makecode.microbit.org/
? 日本ではスイッチサイエンス社が販売
? Chibi:bit は Micro:bit コンパチブル
Micro:bit の Web 開発環境
? Makecode
? https://makecode.microbit.org
? スイッチサイエンス社 chibi:bit 開発環境
? http://chibibit.io/ide/
Micro:bit 本体でできる実習
構造化定理とイベント駆動
? 構造化定理 エドガー?ダイクストラ
? 順次構造
? 反復構造
? 条件分岐
? イベント駆動(イベントドリブン)
? 利用者や外部の別のプログラムなどが引き起こす出来事
に対応する形で処理を記述あるいは実行する方式。
プログラミングとコンパイル
? 言語の変更
? 名前をつけてダウンロード
? 生成した.hex ファイルを
マイクロビットにコピーする
ブロックを出す、片付ける
L チカ
ボタンを使う
加速度センサの利用
変数を使う
または
外部センサやアクチュエータを使った実习
ボリューム(ポテンショメータ)を使う
? ミノムシクリップで接続
3V
GND
pin 0
アナログ値を読み取る
サーボモーターを使う
? ミノムシクリップとジャンパケーブルで接続
茶 GND
赤 3V
黄 pin 1
サーボモータを制御する
ボリュームでサーボモータを制御する

More Related Content

20190723 programming education at Elementary school, Junior high school and Senior high school in Japan.