diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index c49148ed..c69a6d3d 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -19,10 +19,10 @@ * [Duct tape wallet](/projects/wallet) * [Watch](/projects/watch) * [Inchworm](/projects/inchworm) + * [Milk monster](/projects/milky-monster) * [Timing gates](/projects/timing-gates) * [Compass](/projects/compass) * [Telegraph](/projects/telegraph) - * [Radio](/projects/radio) * [Code](/examples) * [Blinky](/examples/blinky) * [Name tag](/examples/name-tag) diff --git a/docs/device/servo.md b/docs/device/servo.md index 6bd7acb0..ef38a886 100644 --- a/docs/device/servo.md +++ b/docs/device/servo.md @@ -13,41 +13,41 @@ The servo requires 3 connections: GND, 3V and a logic pin. In this tutorial, we will equip the servo with crocodile clips to make it easier to use. However, you could also use a shield or female to crocodile clips to acheive the same effect. +## The easy way: Alligator/Crocobile Clip to Male Jumpers #hintconnection + +The easiest way to connect a servo to the @boardname@ is to use cables that have an **Alligator/Crocobile clip** on one end +and a **Male jumper (pig tail)** on the other end. You can purchase bundles of such cables from various electronic resellers. + +## Custom connection + If you are running a class or activity, you should consider preparing all servos before hand. -### ~ hint - -Kitronik wrote an excellent in-depth guide about using servos with the @boardname@. -Check it out at https://www.kitronik.co.uk/blog/using-bbc-microbit-control-servo/ . - -### ~ - -## Step 1: cutout the connector +### Step 1: cutout the connector Using the cutting pliers, cut out the dark plastic connector. ![](/static/mb/projects/inchworm/servo1.jpg) -## Step 2: strip out cables +### Step 2: strip out cables Using the plier or a wire stripper, strip the plastic from the cables. ![](/static/mb/projects/inchworm/servotrim.jpg) -## Step 3: threading the servo cablers +### Step 3: threading the servo cablers Thread the servo cables. ![](/static/mb/projects/inchworm/servo3.jpg) -## Step 4: crocobile clip claps +### Step 4: crocobile clip Cut a crocodile cable in two and strip out the casing. If possible try to use the same cable colors as the servo! ![](/static/mb/projects/inchworm/servo4.jpg) -## Step 5: thread cables together +### Step 5: thread cables together Place the cables next to each other @@ -65,19 +65,19 @@ If the connection is weak, the microservo will not receive enough current and it ### ~ -## Step 4: protect the connection +### Step 4: protect the connection -Protect the connection with electrical or duct tape. +Protect the connection with shrinkwrap tubes, electrical or duct tape. ![](/static/mb/projects/inchworm/servo7.jpg) -## Step 5: repeat for all cables +### Step 5: repeat for all cables Repeat the same process until all cables are connected. ![](/static/mb/projects/inchworm/servo8.jpg) -## Step 6: testing! +### Step 6: testing! It's time to test that your connection are all proper and that the servo will function **when the @boardname@ is powered by battery**. diff --git a/docs/projects.md b/docs/projects.md index 8f15b5a3..c04cf361 100644 --- a/docs/projects.md +++ b/docs/projects.md @@ -69,6 +69,10 @@ Fun games to build with your @boardname@. "name": "Inchworm", "url":"/projects/inchworm", "imageUrl":"/static/mb/projects/inchworm.jpg" +}, { + "name": "Milky Monster", + "url":"/projects/milky-monster", + "imageUrl":"/static/mb/projects/milky-monster.jpg" }] ``` @@ -87,13 +91,10 @@ Fun games to build with your @boardname@. "name": "Telegraph", "url":"/projects/telegraph", "imageUrl":"/static/mb/projects/a8-network.png" -},{ - "name": "Radio", - "url":"/projects/radio", - "imageUrl":"/static/mb/projects/a9-radio.png" }] ``` ### See Also -[Flashing Heart](/projects/flashing-heart), [Smiley Buttons](/projects/smiley-buttons), [Love Meter](/projects/love-meter), [Rock Paper Scissors](/projects/rock-paper-scissors), [Compass](/projects/compass), [Hack your headphones](/projects/hack-your-headphones), [Banana keyboard](/projects/banana-keyboard), [Telegraph](/projects/telegraph), [Radio](/projects/radio), [Guitar](/projects/guitar), [Wallet](/projects/wallet), [Watch](/projects/watch) +[Flashing Heart](/projects/flashing-heart), [Smiley Buttons](/projects/smiley-buttons), [Love Meter](/projects/love-meter), [Rock Paper Scissors](/projects/rock-paper-scissors), [Compass](/projects/compass), [Hack your headphones](/projects/hack-your-headphones), [Banana keyboard](/projects/banana-keyboard), [Telegraph](/projects/telegraph), [Guitar](/projects/guitar), [Wallet](/projects/wallet), [Watch](/projects/watch), +[Milk Monster](/projects/milky-monster) diff --git a/docs/projects/milky-monster.md b/docs/projects/milky-monster.md new file mode 100644 index 00000000..c58a054a --- /dev/null +++ b/docs/projects/milky-monster.md @@ -0,0 +1,56 @@ + +# Milk monster + +### @description A milky-monster like robot built with the @boardname@ + +### ~avatar avatar + +Make a funny milky-monster robot! + +### ~ + +https://youtu.be/egl3fNAYylk + +## Duration + +3 Activities, approx 30-45 min each based on familiarity with the coding concepts + +## Materials + +Recycled +* 1 Milk Carton (with a screwable top cap) +* 1 Small cord - recylce string from a used tea bag +* 1 Paper clip + +Electronics +* 1 @boardname@, battery holder and 2 AAA batteries +* 3 Crocodile clips +* 1 micro servo 9g SG90 +* 1 servo clip designed for Milky Monster [download on thingiverse](http://www.thingiverse.com/thing:2185971) (optional). Teachers may prefer to download the classroom pack (16 servo clips). + +Tools +* Small knive and Scissors that can cut cardboard +* Tape (masking, duct tape, and/or packing tape) +* Glue gun + +![Materials](/static/mb/projects/milky-monster/materials.jpg) + +## Preparation + +* [Equip the microservo with crocodile clips](/device/servo) +* [Download and 3D-print servo clip designed for MIlky Monster from thingiverse](http://www.thingiverse.com/thing:2185971) (this is optional). Teachers may prefer to download the classroom pack (16 servo clips). + +## Activities + +* [Make](/projects/milky-monster/make) +* [Code](/projects/milky-monster/code) +* [Connect](/projects/milky-monster/connect) + +### ~button /projects/milky-monster/make + +Let's get started! + +### ~ + +## about the author +This project was contributed by Peter Heldens [@peterheldens](https://twitter.com/peterheldens). You can checkout his [@boardname@ makershow channel on youtube](http://aka.ms/microbit-makershow) for more projects. \ No newline at end of file diff --git a/docs/projects/milky-monster/code.md b/docs/projects/milky-monster/code.md new file mode 100644 index 00000000..dcc688e7 --- /dev/null +++ b/docs/projects/milky-monster/code.md @@ -0,0 +1,83 @@ +# Code +### @description code to make the Milky Monster alive + +### ~avatar avatar + +Add code to make the Milky Monster move. + +### ~ + +## Duration: ~30 minutes + +## Step 1: calibrate servo + +In order for the Milky Monster to move, the @boardname@ needs to command the servo to go between ``0`` and ``180`` degrees at a certain pace. In the code below: +- the user pressed button ``A`` to switch the servo to 180 degrees (to close the mouth of Milky Monster). +- the user pressed button ``B`` to switch the servo to 0 degrees (to open the mouth of Milky Monster). + +```blocks +input.onButtonPressed(Button.A, () => { + pins.servoWritePin(AnalogPin.P0, 180) + basic.showNumber(180) +}) +input.onButtonPressed(Button.B, () => { + pins.servoWritePin(AnalogPin.P0, 0) + basic.showNumber(0) +}) +basic.showString("calibrate") + +``` + +## Step 2: attach rotor + +The servo should be positioned on 180 degrees **before** attaching the rotor to it. This is to make sure the mouth of the Milky Monster will be closed once the servo reaches 180 degrees. + +### ~ hint + +You may use a philips scew driver to attach the rotor to the servo. + +### ~ + +https://youtu.be/YZfkMWTeH4o + +## Step 3: check calibration + +When the user pressed ``A`` the servo rotor should be in 'up' position. + +https://youtu.be/bAqXEawUsSM + +## Step 4: connect cord to rotor + +Connect the cord to the servo rotor while mouth of Milky Monster is **closed**. + +https://youtu.be/AWsnwk_iA_A + +## Step 5: connect cables to @boardname@ + +Connect cables from @boardname@ to the servo and place the battery. + +https://youtu.be/fAR58GJUZdM + +## Step 6: code light sensor + +Code the lightsensor on the @boardname@ to control the servo. + +```blocks +basic.forever(() => { + pins.servoWritePin(AnalogPin.P0, input.lightLevel()) + led.plotBarGraph( + input.lightLevel(), + 0 + ) +}) +``` + +## Step 6: Ready! + +Your Milky Monster is ready! + +https://youtu.be/egl3fNAYylk + +### ~button /projects/milky-monster/connect +NEXT: Connect +### ~ \ No newline at end of file diff --git a/docs/projects/milky-monster/connect.md b/docs/projects/milky-monster/connect.md new file mode 100644 index 00000000..57f23dcd --- /dev/null +++ b/docs/projects/milky-monster/connect.md @@ -0,0 +1,28 @@ +# Connect + +### ~avatar avatar + +Remote control your Milky Monster with another @boardname@ + +### ~ + +## Duration: ~30 minutes + +You will need 2 @boardname@ for this part. By using the radio, we can make the Milky Monster controlled by another @boardname@. +Download the code below to the @boardname@ on the Milky Monster and another "controller" @boardname@. Whenere A is pressed, the Milky Monster will move once. + +```blocks +radio.onDataPacketReceived(({receivedNumber}) => { + pins.servoWritePin(AnalogPin.P0, 0) + basic.pause(500) + pins.servoWritePin(AnalogPin.P0, 180) + basic.pause(500) +}) +input.onButtonPressed(Button.A, () => { + radio.sendNumber(0) +}) +``` + +```package +radio +``` diff --git a/docs/projects/milky-monster/make.md b/docs/projects/milky-monster/make.md new file mode 100644 index 00000000..d7cf2123 --- /dev/null +++ b/docs/projects/milky-monster/make.md @@ -0,0 +1,115 @@ +# Make +### @description Building the cardboard Milky Monster + +### ~avatar avatar + +Turn a piece of cardboard into an milky-monster! + +### ~ + +## Duration: ~45 minutes + +## Materials +#### Recycled +* 1 Milk Carton (with a screwable top cap) +* 1 Small cord - recycle string from a used tea bag +* 1 Paper clip + +### Electronics +* 1 @boardname@, battery holder and 2 AAA batteries +* 3 Crocodile clips +* 1 micro servo 9g SG90 +* 1 servo clip designed for Milky Monster [download on thingiverse](http://www.thingiverse.com/thing:2185971) (optional). Teachers may prefer to download the classroom pack (16 servo clips). + +### Tools +* Small knive and Scissors that can cut cardboard +* Tape (masking, duct tape, and/or packing tape) +* Glue gun + +## Step 1: download and cut the template + +[Download the Milky Monster template](/static/mb/projects/milky-monster/MilkyMonsterTemplate.pdf) and cutout the template. + + +https://youtu.be/ipsZuFNgTHM + +## Step 2: glue template on milk carton + +Glue the template on the milk carton. + +https://youtu.be/2D3WFp29QC4 + +## Step 3: cut carton + +Cut the carton (watch the fingers!) + +https://youtu.be/pvC3Tnhe5QU + +## Step 4: create mouth + +Cut the cardboard halfways and fold the corners. This will be the mouth of the Milky Monster. + +https://youtu.be/Yyk1zW4sFoM + +## Step 5: extend mouth + +Use tape to extend the mouth approx 1 cm. Fold one after the other. + + +https://youtu.be/RWJbqI03wPE + +## Step 6: connect cord + +Using scissors, create a small whole to insert the cord. Tape the cord on the backsite of the mouth. + +![](/static/mb/projects/milky-monster/connectmouth.jpg) + +Once finished position the mouth in upward position and fix the cord between the cap. +https://youtu.be/Qyndcsmt0AU + +## Step 7: create space for @boardname@ + +Use scissors to create space at the bottom of the Milky Monster to attach the @boardname@. + +https://youtu.be/3FUNI0GSbNc + +## Step 8: Create space for cables + +Create space to route the cables nicely on back of the milky-monster. + +https://youtu.be/BoIRCk769MM + +## Step 9: attaching clip to servo + +Use a philips screw driver to mount the servo to the 3D-printed servo clip. +If you don't have the 3D-printed clips available, [download on thingiverse](http://www.thingiverse.com/thing:2185971) , or fix the servo using tyraps or a glue gun. + +https://youtu.be/drKzo5zqvuI + +## Step 10: attaching servo to milk button + +Glue servo to the cap of the milk carton. + +https://youtu.be/Ch_vU5LXPeM + +## Step 11: cutout hole in cap + +Cutout a hole in the cap to guide the string to the servo. + +https://youtu.be/Ch_vU5LXPeM + +## Step 12: connect crocodile clips + +Connect the crocodile clips to the servo. + +https://youtu.be/RiQE-9z9LrI + +## Step 11: it's ready! + +Your milky-monster is ready! + +![](/static/mb/projects/milky-monster/ready.jpg) + +### ~button /projects/milky-monster/code +NEXT: Code +### ~ \ No newline at end of file diff --git a/docs/projects/radio.md b/docs/projects/radio.md deleted file mode 100644 index 016434c4..00000000 --- a/docs/projects/radio.md +++ /dev/null @@ -1,68 +0,0 @@ -# radio - -Measure the acceleration on the @boardname@ in the "x" direction. - -### ~avatar avatar - -Welcome! This activity will teach how to use the @boardname@ to chart the acceleration in the "x" direction. Let's get started! - - -### ~ -Let's measure `acceleration (mg)` in the "x" direction. Get the acceleration value (milli g-force), in one of three specified dimensions. - - -```blocks -input.acceleration(Dimension.X) -``` - -### ~ -Use the plot bar chart to visualize the acceleration on the LED screen of the @boardname@ in the specified range. You implement plot Bar Graph to display a vertical bar graph based on the "value" and "high" value. Then you must insert acceleration in the X dimension to measure the acceleration. - -```blocks -basic.forever(() => { - led.plotBarGraph(input.acceleration(Dimension.X), 0) -}) - -``` - -### ~ -Notice that moving the @boardname@ in the simulator from left to right (x direction) changes the values beneath the @boardname@ in a range from 1023 to -1023 as measured in milli-gravities. By hovering over the @boardname@ from left to right, you can observe changing values beneath the @boardname@ simulator. Also, the LEDs shown on the Bar Graph fluctates based on the movement of the @boardname@ simulator in the x direction. The line underneath the @boardname@ simulator reflect the acceleration in the x direction. - -NOTE: The colors of the charts reflect the color of the @boardname@ simulator. In this instance, the @boardname@ is yellow. So the color of the data line reflects the color of the @boardname@ - -![](/static/mb/data4.png) - -### ~ - -Vigorously move the @boardname@ in the @boardname@ simulatator by moving the @boardname@ image from side to side. Every time the @boardname@ moves in the x direction in the simulator, you are generating data points that can be reviewed in Excel. The more attempts to move the @boardname@ from side to side, the more data being saved in Excel. After you have vigarously moved the @boardname@ simulator from side to side for a sufficient amount of time, you are ready to graph or chart the accceleration of the @boardname@. We want a printout of our acceleration on Excel that can be graphed in Excel. - -### ~ - -We want to chart the data collected by using a tool in Excel. - -The final part of this experiment is opening and reviewing the data in the Excel CSV file. Simply click on the line beneath the simulator. A CSV file will be generated to display the data points collected by moving the @boardname@ in the X direction. Then click or tap on the data Excel file that was downloaded to your local ``Downloads`` Folder. - - -### ~ - - -First, click or tap on the first two columns (A, B) to include the time of the data being collected; b) the results of acceleration data on the @boardname@ - -![](/static/mb/data7.png) - -Use the Recommended Charts command on the Insert tab to quickly create a chart that’s just right for your data. - -* Select the data that you want to include in your chart. - -* Click Insert > Recommended Charts. - -![](/static/mb/lessons/chart1.png) - -* On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data. Pick the **scatter plot**. - -### ~avatar avatar - -Excellent, you're ready to continue with the [challenges](/projects/radio-challenges) - -### ~ - diff --git a/docs/static/mb/projects/milky-monster.jpg b/docs/static/mb/projects/milky-monster.jpg new file mode 100644 index 00000000..7f964847 Binary files /dev/null and b/docs/static/mb/projects/milky-monster.jpg differ diff --git a/docs/static/mb/projects/milky-monster/MilkyMonsterTemplate.pdf b/docs/static/mb/projects/milky-monster/MilkyMonsterTemplate.pdf new file mode 100644 index 00000000..79ae8fdb Binary files /dev/null and b/docs/static/mb/projects/milky-monster/MilkyMonsterTemplate.pdf differ diff --git a/docs/static/mb/projects/milky-monster/cliptoservo.jpg b/docs/static/mb/projects/milky-monster/cliptoservo.jpg new file mode 100644 index 00000000..f3fd2798 Binary files /dev/null and b/docs/static/mb/projects/milky-monster/cliptoservo.jpg differ diff --git a/docs/static/mb/projects/milky-monster/connectcord.jpg b/docs/static/mb/projects/milky-monster/connectcord.jpg new file mode 100644 index 00000000..b3f7380e Binary files /dev/null and b/docs/static/mb/projects/milky-monster/connectcord.jpg differ diff --git a/docs/static/mb/projects/milky-monster/connectmouth.jpg b/docs/static/mb/projects/milky-monster/connectmouth.jpg new file mode 100644 index 00000000..830e36f8 Binary files /dev/null and b/docs/static/mb/projects/milky-monster/connectmouth.jpg differ diff --git a/docs/static/mb/projects/milky-monster/createspaceformicrobit.jpg b/docs/static/mb/projects/milky-monster/createspaceformicrobit.jpg new file mode 100644 index 00000000..0b02f724 Binary files /dev/null and b/docs/static/mb/projects/milky-monster/createspaceformicrobit.jpg differ diff --git a/docs/static/mb/projects/milky-monster/cuttemplate.jpg b/docs/static/mb/projects/milky-monster/cuttemplate.jpg new file mode 100644 index 00000000..92d9736c Binary files /dev/null and b/docs/static/mb/projects/milky-monster/cuttemplate.jpg differ diff --git a/docs/static/mb/projects/milky-monster/glueservo.jpg b/docs/static/mb/projects/milky-monster/glueservo.jpg new file mode 100644 index 00000000..98c45e93 Binary files /dev/null and b/docs/static/mb/projects/milky-monster/glueservo.jpg differ diff --git a/docs/static/mb/projects/milky-monster/gluetemplate.jpg b/docs/static/mb/projects/milky-monster/gluetemplate.jpg new file mode 100644 index 00000000..56b49b7d Binary files /dev/null and b/docs/static/mb/projects/milky-monster/gluetemplate.jpg differ diff --git a/docs/static/mb/projects/milky-monster/materials.jpg b/docs/static/mb/projects/milky-monster/materials.jpg new file mode 100644 index 00000000..a2a8de96 Binary files /dev/null and b/docs/static/mb/projects/milky-monster/materials.jpg differ diff --git a/docs/static/mb/projects/milky-monster/ready.jpg b/docs/static/mb/projects/milky-monster/ready.jpg new file mode 100644 index 00000000..2adc104e Binary files /dev/null and b/docs/static/mb/projects/milky-monster/ready.jpg differ