剪刀石头布

简介:岩石剪刀

我教一门数字电子课程,我们的最后两个项目是两次构建同样的事情:一次用电路和曾经与arduinos。该想法是使用微控制器比较硬潜航与硬潜航的利弊。

由于我们是远程学习,我的学生无法获得他们通常的用品,但我们是1到1个Chromebook学校。tinkercad.让学生模拟Arduino和面包板。没有耗材需要。

补给品:

没有任何!:)

第1步:加入Tinkercad

您可以在Tinkercad创建教室,但我只有每个学生加入。

第2步:启动电路

第一课只是让学生熟悉构建Tinkercad的电路。我的学生已经熟悉面包板,但他们需要在T​​inkercad中花费一点时间找到组件。

我给学生的任务是上面的 - 但这里也是如此:


我们的最后两个项目被认为是一个Toll Bridge,用国家机器和逻辑以及arduino和编码一劳永逸地完成了两种方式。相反,我们将通过Arduino和编码来重新审视RPS和工作。要开始,让我们首先确保我们可以将交换机连接到面包板。本周,我希望您使用两组交换机创建一个新电路,我们将需要RPS。

以下是步骤:启动新电路。

接下来,让我们用面包板获得一个Arduino

将面包板/ Arduino组合拖到左侧的工作空间中。然后,回到右上角,更改为组件 - 全部。

让我们为RPS设置开关 - 向下滚动右侧,然后找到交换机。通过单击开关下的面包板“孔”,然后将开关连接到电源和接地。您可以从右侧的框中更改电线的颜色。

让我们还添加指示灯灯,以便我们知道二进制数。您需要一个330个电阻或Tinkercad会给您抛出错误。当从组件栏中拖动电阻时,您将获得一个窗口,您可以在其中命名电阻并更改它的值。您可以使用左上角的按钮旋转电阻。对于您想要丢弃的任何组件,也有垃圾桶。您也可以单击并点击删除。

启动模拟并贯穿二进制计数,以确保您的交换机已正确连接。

重复代表玩家2。

可交付成果:请拍摄您的Arduino和面包板的屏幕视频,显示您可以使用两组交换机连接到3并将视频转入谷歌教室。请务必与我分享您的视频。

第3步:现在用于一些编程

对于数字电子产品的大多数学生来说,编程并不是新的,即使这是我们第一次使用DE中的编程。然而,一些基本的编程实践是一种很好的进修所以我们的第二课有我们编程。

赋值再次链接在上面,但这就是我给他们的说明:
本周,我们将包括一些简单的代码。如果您在编码中熟悉,您可能会在本周找到更容易的一面 - 好的。如果没有,不用担心,我们会给你那里。从上周运行您的电路,并注意arduino有一个LED闪烁。这是由于已经写的代码。单击右上角的“代码”

这是一种称为块的编码方法。真的,所有编程语言都是关于逻辑的。什么使编码具有挑战性是每种语言的语法。块消除了缺少托架或遗忘分号的担忧 - 在中学水平的编程中很好。这个代码在面包板上的LED上有开启,等待一秒钟,关闭,然后等一下再打开。这重复了给出闪光灯。如果选择块和文本,您将看到arduinos使用的语法。在此模式下,所有编辑仍然使用块进行。如果您仅更改为文本,则可以通过文本编辑。切换到文本模式,然后复制并粘贴行之间的代码。

/ *当滑动连接到引脚的开关2. * / const int switchpin = 2时,打开和关闭连接到数字销13的发光二极管(LED)。//定义引脚2作为输入Const Int LEDPIN = 13;// LED引脚的数量 - 它是一个内置的值//变量将改变:int switchstate = 0;//读取交换机状态void setup(){//将LED引脚设置为输出:Pinmode(LEDPIN,输出);//将交换机引脚设置为输入:Pinmode(SwitchPin,输入);void循环(){//读取交换机值的状态:SwitchState = DigitalRead(SwitchPin);//检查交换机是否打开。如果是,SwitchState很高:如果(SwitchState ==高){//转为LED:DigiteWrite(LEDPIN,高);} else {//打开LED:DigitalWrite(LEDPIN,低);}}

在Arduino上将来自开关的电线添加到引脚2。现在运行模拟。翻转第一个开关几次。请注意//始终橙色的一切。这些是评论。他们不需要在那里,但他们很好包括所以读者知道代码正在做什么。现在尝试这个代码:/ *当滑动连接到引脚8和12的两个开关滑动时,打开和关闭连接到数字引脚13的发光二极管(LED)。* / const int switchapin = 8;//定义引脚8作为第一个开关Const int Switchbpin = 12的输入;//定义引脚12作为第二开关Const Int LEDPIN = 13的输入;//从引脚13 //变量向LED发送高电平的信号将改变:int switchastate = 0; // variables for reading the switch status int switchBState = 0; void setup() { // setting the LED pin as an output: pinMode(ledPin, OUTPUT); // setting the switch pin as an input: pinMode(switchAPin, INPUT); pinMode(switchBPin, INPUT); } void loop() { // read the state of the switch values: switchAState = digitalRead(switchAPin); switchBState = digitalRead(switchBPin); // check if the both switches are on. If so, the ledPin is HIGH: if (switchAState == HIGH and switchBState == HIGH) { // turn LED on: digitalWrite(ledPin, HIGH); }else { // turn LED off: digitalWrite(ledPin, LOW); } } This code requires both of the left switches to be on for the LED to light up. We just created an AND requirement. Your assignment: Write code so that the right hand switches also control an LED. Deliverables: Copy your code into a Google Doc and submit to Google Classroom. Please also take a screen video of your arduino and breadboard showing me that you are able to control the LED with both sets of switches.Turn in the video to Google Classroom. Be sure to share your video with me.

第4步:轮到他们

项目现在是在Tinkercad的Arduino上创建一个摇滚纸剪刀游戏。一旦完成,我会回来分享一些结果。

再次 - 这就是我给他们的东西:

让我们开始编程游戏。
我们有两套交换机,我们有输出灯。现在我们在代码中混合和匹配以点亮获胜者。

例如:01是左手播放器10的岩石是右手播放器的纸张

写一个if-else语句,即寻找开关b和c要高,然后切换a和d以低电平,从纸张击败岩石时打开右输出led。

您的约束:播放器1具有左手开关,播放器2右手开关,我们将定义RPS作为00 - 没有Play 01 - Rock 10 - 纸张11 - 剪刀

如果两个玩家都没有玩过,输出灯都不会亮起。当有胜利者时,获胜者的输出光应该点亮。如果发生领带,则两个输出灯都应该亮起。

顺便说一下 - 你编码在那里。是的,可以更简单地编写此方法。我们正在保持类似于写入电路。这些是你的约束。

演示文稿:标题幻灯片描述/约束代码图片Arduino和仿真工作的面包板视频

Arduino比赛2020年

参加了这一点
Arduino比赛2020年

是第一个分享

    建议书

    • 微控制器比赛

      微控制器比赛
    • 自动化比赛

      自动化比赛
    • 让它发光比赛

      让它发光比赛

    讨论