AppShed AppCar Setup Guide v0.8 IMPORTANT SAFETY NOTICE AVOID BATTERY SHORT CIRCUIT Keep one battery out of the holder (DISCONNECTED) until all the wiring has been completed. If the battery wires short circuit things get very hot and you could melt the battery holder and wires. If you see any smoke, or smell something burning, REMOVE ONE BATTERY immediately. MAXIMUM VOLTAGE: 9V Please note that the maximum voltage for the NodeMCU is 9V. Do not connect a larger voltage supply as it will damage the NodeMCU.
Summary The AppShed AppCar is a very simple robotic car made using a cardboard box. The AppCar can be controlled from any smartphone or tablet (or even a computer). This is a great project for beginners wanting to build their first robot. The materials are very cheap and can easily be purchased online. There is no programming required, although you will need to install some software to get it working. Once you have the basic robot running, you can add many advanced features using programming and additional electronics. The robot is controlled using an app created with AppShed. You can download a pre-built app here (http://apps.appshed.com/appcario) or you can create your own using AppShed (instructions can be found on appshed.com)
Parts List The following parts are required: 1. Controller: NodeMCU This is an Arduino-compatible WiFi controller. It is very low cost, but powerful, and can be used for many different projects. It can be programmed using the Arduino software and controlled from an app. ebay Link 2. Motors and Wheels (x2) Many different types of motors and wheels are available. A good choice are the low-cost geared DC motors that come with nice wheels suitable for most small robots. (Quantity 2) ebay Link 3. Motor Driver A motor driver is necessary to take the signal from the controller (NodeMCU), and amplify it to provide sufficient power to the motors. It does a similar job to a music amplifier connected to big speakers. ebay Link 4. Batteries and Battery Holder This project can run off 4 or 6 x AA batteries, so you need a simple battery holder with wires. 6 batteries will make it go faster but don t go higher otherwise you might damage the electronic components. The compact 3x2 holder gives you more space in the box. ebay Link (Holder) ebay Link (Batteries) 5. Jumper Wires You need special wires to connect everything together we call them jumpers. They come with special connectors on the ends to plug into the electronics. You will need some Male-To-Female jumpers, and some Female-To-Female jumpers, and you might as well get some Male-To-Male jumpers too (10 of each is sufficient). ebay Link (M-F) ebay Link (M-M) ebay Link (F-F) 6. Terminal Blocks Some of the wires will need to be joined together, and a spring-loaded terminal block is the easiest way to do that. Simply press down and insert the wire to connect. ebay Link
7. Swivel Wheel Apart from the two motorised wheels, you need one (or two) swivel castor wheels. The smaller and lighter the better (go for plastic rather than metal). ebay Link 8. Carboard Box The easiest way to build your robot is to use a cardboard box! The small boxes typically used for posting gifts are the perfect size. Recommended size is about 8 x 6 x 2.5 (although this really doesn t need to be precise). ebay Link 9. Cable Ties Cable ties are perfect for holding things together. Quick, cheap, and no tools required. Choose a small size, e.g. 2.5mm x 160mm. (Quantity 20) ebay Link 10. Insulation Tape You ll need some insulation tape to secure the wires onto the motor. Regular sticky tape works fine too (but doesn t last as long) if you can t get electrical tape. ebay Link
Tools and Accessories The following items will be needed for constructing and controlling the robot: 11. Screwdriver (small) A small screw driver is needed to attach the wires from the motors to the Motor Driver. ebay Link (single) ebay Link (bulk) 12. Scissors You should have one of these lying around, just a basic pair of scissors for cutting wires and cable ties. ebay Link (single) ebay Link (bulk) 13. Micro USB Cable You need this cable to program the NodeMCU. Make sure you have a data cable. Some cables are for charging only, and can t transmit data. You might just have to try it out. (NOTE: Only required once when programming the NodeMCU.) ebay Link 14. Smartphone Your robot is controlled by a simple web-app. You can use any phone or tablet, or even a computer to run the app. 15. Measuring Tape You will need a measuring tape to calibrate the robot. It s not essential as you could make estimates when calibrating. However this rubberised 2m Stanley tape is good value for money. ebay Link
Optional Items The following items are not necessary, but can be helpful, especially if you are building robots as part of a large group (schools, clubs etc). We include some suggestions for teachers/group leaders running larger group sessions. 16. Motor Wires The Jumper Wires are very small and quite difficult to attach to the motors. We recommend slightly thicker, multi-stranded wires (e.g. 24/0.2). If you use 4 different colours, it also becomes easier to provide instructions to learners when connecting the motors (we follow these colour recommendations in this Guide). You will need approximately 30cm of each colour per robot. Violet/purple: ebay Link Grey: ebay Link Brown: ebay Link White: ebay Link 17. Hole Punch & hammer A hole punch can be very useful to help make the holes in the carboard box. A 3mm punch is recommended if you are using the 2.5mm cable ties. ebay Link (hole punch) ebay Link (stubby hammer) 18. Soldering Iron Station A soldering iron will ensure the best electrical connection when attaching wires to the motors. The Station is convenient as you can safely place the iron in a holder. ebay Link (Soldering iron) ebay Link (Solder wire) 19. Glue Stick You could use some glue sticks to stick the Layout Template to the inside of the cardboard box keeps it neater. ebay Link 20. Wire Stripper A wire stripper will be very helpful if you are preparing many kits, and need to strip the motor wires. Due to the fact that the wires are so thin, only certain strippers will be suitable (e.g. Eclipse End Stripper). ebay Link
Step 1: Installing the software Duration: 30 mins Requirements: Windows PC with internet access NodeMCU Micro USB cable Smartphone The NodeMCU is your controller. You need to install a program onto the NodeMCU that will communicate with your AppShed app. This program is called an Arduino Sketch. 1. Install the Arduino IDE on your computer 2. Transfer the Sketch (program) to the NodeMCU 3. Test it using your smartphone. 1. Install the Arduino IDE on your computer 1.1. Download and install the Arduino IDE (Integrated Development Environment) from: https://www.arduino.cc/en/main/software (TIP: Make sure you get the software from arduino.cc NOT arduino.org because arduino.org does not support all the features you need.) (TIP: On Windows it is best to Run as Administrator.)
1.2. Install Libraries Libraries are extra software packs that your Arduino sketch needs to run properly. 1.2.1. In the Arduino IDE, on the main menu, select: Sketch -> Include Library -> Manage Libraries 1.2.2. Search for the library called PubSub and install it.
1.2.3. Search for the library arest and install it (you don t need arest UI). 1.2.4. Search for the library NeoPixel by Adafruit and install it.
1.3. Install ESP8266 boards definitions: Your robot will be using the NodeMCU board, so you need to configure the Arduino IDE for this board. 1.3.1. In the Arduino IDE, on the main menu, select: Files -> Preferences 1.3.2. Paste the following URL into the field Additional Boards Manager URLs then click OK
http://arduino.esp8266.com/stable/package_esp8266com_index.json 1.3.3. In the Arduino IDE, on the main menu, select: Tools -> Board -> Boards Manager
1.3.4. Search for the board esp8266 and install it. 1.3.5. Select the NodeMCU 12-E board Tools -> Board -> NodeMCU 1.0 (ESP-12E Module) (TIP: If you have a different version of the NodeMCU, or you are using a different Arduino board, select that board here.)
2. Transfer the Sketch (program) to the NodeMCU The controller (NodeMCU) needs to have a special AppShed program installed on it (also called an Arduino sketch ). This sketch allows the controller to communicate with the AppShed app. 2.1. Save the sketch on your computer 2.1.1. Open the sketch in a browser by clicking this link: https://raw.githubusercontent.com/appshed/arest- ESP8266_cloud_pro_AppShed/master/ESP8266_cloud_pro_AppShed 2.1.2. Right click and choose Save as
2.1.3. Make sure the Filename ends with the extension.ino (you need to delete.txt from the end of the filename) 2.2. Open the In the Arduino IDE. File -> Open
2.3. Change the name of your robot [This step is optional] You might want to give your robot a unique name. The default name is AppShedRobot. If there are other robots in the same area as yours, it will be confusing if they all have the same name. 2.3.1. Find the code that sets the ssidap (TIP: In this screenshot, it s on line 39) const char* ssidap = "AppShedRobot";
2.3.2. Change the word AppShedRobot to your own name, so that the line looks something like this: const char* ssidap = "MyFirstRobot"; 2.3.3. Save the sketch File -> Save 2.4. Change the Pro Key (optional) To use the Remote Control functionality you need to register an account with arest.io and enter the key into the sketch. 2.4.1. Go to http://dashboard.arest.io/ and register an account. 2.4.2. Go to the Account section and copy your Pro Key
2.4.3. Paste the Pro Key into the Arduino sketch where it says your_pro_key 2.4.4. Sav the sketch 2.5. Upload your sketch to the board You are now ready to upload the sketch to the NodeMCU board. 2.5.1. Attach the NodeMCU to your computer using a Micro USB cable.
2.5.2. Install any driver if you are prompted to do so. There are 2 different drivers for NodeMCU. Look at the markings on the board you should see either Amica or Lolin. 2.5.2.1. Amica drivers (CP2102 or CP201x) https://www.silabs.com/products/development-tools/software/usb-to-uartbridge-vcp-drivers 2.5.2.2. Lolin Driver (CH341) https://github.com/nodemcu/nodemcu-devkit/tree/master/drivers 2.5.3. Select the Port for your board. The port number will vary on each computer, so don t worry if the number does not match up with this example. Tools -> Port -> COMn (n is the number for your board, e.g. COM5) 2.5.4. In the Arduino IDE, upload your sketch Sketch -> Upload
2.5.5. Wait until you see the confirmation message in the Blue Status bar Done uploading. 3. Test it using your smartphone. It is important to test that the NodeMCU has been properly configured and is ready to be installed in your robot. 3.1. Download the app 3.1.1. On your smartphone, open a web browser (Chrome is recommended) and go to this link:
http://apps.appshed.com/appcario/ 3.1.2. Follow all the screen prompts (for example, click OK when asked to download updates, click OK to confirm that the app is available offline.) 3.1.3. Once the app has loaded in the browser, you can Add to homescreen to pin the icon on your home screen. 3.2. Connect to the NodeMCU WiFi You connect your phone to the NodeMCU over WiFi. The NodeMCU creates it s own Access Point (similar to a Hotspot). 3.2.1. Make sure the NodeMCU is connected to the computer via the USB cable. 3.2.2. Press and hold the Reset Button (RST) on the NodeMCU for 2 seconds, then release. This ensures it starts up correctly. 3.2.3. On your phone (or tablet, or computer) open your WiFi settings and connect to the WiFi Network called AppShedRobot. The default password is appshedrocks (unless you changed it in the sketch).
(TIP: If you renamed the ssidap in an earlier step, then the name you entered will appear as the WiFi Connection.) 3.2.4. Check that the Wi-Fi status screen shows that you are Connected to AppShedRobot. Now your phone can control the NodeMCU by sending commands over Wi-Fi. PLEASE NOTE: There is no internet connection on this network. This is an Ad-Hoc network. If you need to get internet access, you must disconnect from AppShedRobot and connect to your normal Wi-Fi network that provides internet access. 3.3. Run the Quick Test The Quick Test allows you to check that the app and NodeMCU can communicate with each other. 3.3.1. Open the app and go to the Settings Tab, then click on the Quick Test link.
3.3.2. Tap the button to Flash the Blue LED. You should see the blue light on the NodeMCU flash twice. PLEASE NOTE: The image shown in the app screen is to show you what it should look like. This light will NOT flash. You have now completed Step 1: Installing the software. You can now move on to Step 2: Constructing the robot.
Step 2: Constructing the robot Duration: 15 minutes Requirements: Cardboard Box Motors and Wheels NodeMCU Motor Driver Battery Holder and Batteries Jumper Wires (M-F) Swivel Wheel Scissors Cable Ties Insulation Tape The AppShed AppCar is built using very cheap and easy-to-find parts. In this guide we use a carboard box the wheels are tied to the bottom and the electronics go inside. Simple and effective. (TIP: Let your imagination run wild and build your own AppCar using any materials you like. For example, try converting an old broken toy car to Smartphone-controlled AppCar!) 1. Connect wires to the motors 2. Put the Layout Template in the box 3. Tie the parts to the box 1. Connect wires to the motors If your motors don t have wires attached, you will need to connect two wires to the terminals on the motor. You must make sure there is a good electrical connection so that the robot runs reliably. 1.1. Locate the terminals on the motor The terminals are small copper tabs with a hole through the middle. (TIP: If you have bought a different type of motor the terminals may look different to those shown here.)
1.2. Choose wires with Male connectors Choose 4 jumper wires in this example we are using two pairs of Purple and Grey wires. Use jumper wires with a Male connector on one end (the other end can be male or female, it doesn t matter). Leave the male connector alone this will be used later. Cut the connector off the other end. 1.3. Strip the plastic off two jumper wires Carefully strip about 10mm of plastic off the end of the jumper wires. You can use scissors to cut the plastic but be careful not to cut through the wire inside. (TIP: You might find it difficult to strip the thin jumper wires it s not easy. If you are struggling, you could use slightly thicker wire for this purpose. Just make sure the wire is thin enough to go through the hole on the motor terminal.)
1.4. Attach the wires to the terminals 1.4.1. Insert the stripped wire through the hole in the motor terminal. 1.4.2. Fold the wire over and carefully so that it tightens against the terminal. (TIP: Be very careful not to twist the motor terminal. It is quite fragile might break off if twisted.) 1.4.3. If you have a soldering iron you can solder the connection to secure it.
1.4.4. If you have a hot-glue gun, you can drop some glue on the connection to secure it. (TIP: If you don t have a soldering iron or glue gun, don t worry. Just twist the wire tightly and your connection will be fine.) 1.5. Wrap insulation tape around the terminals To secure the wires, wrap about 8cm of insulation tape around the end of the motor, covering the terminals and connections. This will secure the wires and avoid pulling the connections loose.
2. Put the Layout Template in the box The Layout Template is a PDF print-out that will help you assemble the robot. 2.1. Download the layout template from this link: https://appshed.com/files/appcar/appshed-appcar-layout-template-v0.3.pdf 2.2. Cut out the Template along the cut lines and fold the sides up. 2.3. Insert the Template into the box.
3. Attach the parts to the box Each of the parts is shown on the Layout Template. Attach them to the box using cable ties.
3.1. Attach the NodeMCU 3.1.1. Find the image of the NodeMCU on the Layout Template. 3.1.2. Using a screwdriver of scissors, make four holes at the four corners, as shown in the image. 3.1.3. Push cable ties through the holes and tie down the board. 3.2. Attach the Motor Driver to the box. (Follow the same procedure as the NodeMCU.) 3.3. Attach the Terminal Block to the box. (Follow the same procedure as the previous parts.) 3.4. Attach the Battery holder to the box. 3.4.1. Place the cable ties over the bridge between two batteries (not over the battery space). This will allow you at put the batteries in after the holder is tied down. 3.5. Attach the motors to the underside of the box.
The motors are placed outside the box (not inside, where the electrical components are). 3.5.1. First attach the motors to the box using double-sided tape this will hold them in position. 3.5.2. Now make 4 holes in the box on the bottom and sides, in the right position to secure the motor. Use this image as a guide for making the holes. 3.5.3. Use cable ties to secure the motors to the box. (TIP: Pull the cable ties nice and tight so that the motors are secure and don t wobble around. This will help your robot drive in a straight line.) 3.6. Attach the Trolley Wheel to the underside of the box. (Follow the same procedure as the other parts.)
Step 3: Connecting the electronics Duration: 5 minutes Requirements: Jumper Wires (F-F) Terminal Blocks Screwdriver Connect all the components together using the various wires. Follow the printed Layout Guide to connect them correctly. PLEASE NOTE Many different motor drivers can be used with the AppCar. This Guide shows only a selection of the possible configurations. Advanced users can make use of other motor drivers and connect them according the requirements of those components. 1. Motor Shield The Motor Shield is the preferred choice when using the AppCar. The NodeMCU chip fits into headers on the shield, meaning that no jumper wires are required to connect these two components. The shield also has header pins for all other I/O pins which makes it easier to add additional sensors to your project. There are a variety of motor shields. They can normally be identified by their colour (blue, red, yellow). They all work in the same way however the terminal blocks follow a different order. Please follow the labels on the blocks on your shield, which might differ from the images used in this guide. 1.1. Connect the motor wires 1.1.1. The shield has 8 terminal blocks. 1.1.2. Find the blocks labelled Motor A and Motor B
1.1.3. Connect the 2 wires from the LEFT motor to the blocks labelled A+ and A-. It doesn t matter which wire goes to + or -. This will only affect the direction the motor turns. It is not the same as battery polarity. 1.1.4. In the same way connect the RIGHT motor to B+ and B-. 1.2. Connect the battery wires PLEASE NOTE It is VERY important to make sure that the battery wires are connected with the correct polarity. The positive battery wire MUST go into Vin. If you reverse the polarity you risk damaging the NodeMCU. 1.2.1. The wires from the Battery Holder (red and black) go into the motor shield. 1.2.2. Connect the negative battery wire (black) to the block labelled GND. There are usually two GND blocks. You can use either. 1.2.3. Connect the positive battery wire (red) to the block labelled Vin. 1.3. Connect Vin and Vm The motor shield needs a connection between Vm and Vin. This provides power to the motors. (Advanced users: it is possible to use a separate, larger power supply for Vm).
There are a few ways of connecting the jumper. These all achieve the same purpose: 1.3.1. Option 1: The motor shield might be supplied with a small jumper connector already connected on the pins behind the power blocks. 1.3.2. Option 2: Connect a Female-Female jumper wire on the two header pins labelled Vin and Vm 1.3.3. Option 3: Connect a wire joining the terminal blocks Vin and Vm 2. L9110 Motor Driver The L9110 Motor Driver is a very low cost stand-alone motor driver that works very well with the AppCar. It has simple functionality but is more than sufficient for the requirements of the standard geared (yellow) motors. Follow the wiring diagram shown below for the connections. 2.1. Power Connect jumper wires to V+ and V- (or G) to the battery wires. Use a terminal block to join multiple wires. 2.2. Signal wires 2.2.1. Connect 4 jumper wire from the NodeMCU to the 4 signal pins on the Motor Driver. 2.2.2. These jumpers should be connected as follows: Pins 4, 5,6,7 connect to A-1A, A-1B, B-1A, B-1B respectively. 2.3. Motors 2.3.1. Connect the left motor to the output terminal blocks A1, A2 2.3.2. The right motor is connected to output blocks B1, B2
3. L298 Motor Driver 3.1. cvxc The connections for this motor driver are very similar to the L9110 (above)
Step 4: Drive the robot with an app Duration: 5 minutes Requirements: Smartphone 1. Overview 2. Download the app The AppCar app is available as a web app or installed as an iphone, ipad or Android app. 2.1. Web App Open this link in a browser (mobile, tablet or PC) apps.appshed.com/appcario/ 2.2. Android Find AppCar by AppShed in the Google Play Store 2.3. ios Find AppCar by AppShed in itunes AppStore
3. Connect to the AppCar Follow the instructions in this video to connect your phone to the AppCar. (Although this video uses iphone, the Android connection is very similar) 4. Calibrate 5. Code
Next Steps Driving over the internet Writing auto-pilot programs Creating your own app Adding more sensors and things