Nick Kasi’s Work Log

  • Post author:
  • Post last modified:September 19, 2023
  • Reading time:7 mins read
  • Post category:Work Logs

Tuesday, September 19, 2023

We met with Nick Sandahl and Adam Sandahl, two members of OSHE that worked on Growbot the previous semester (Spring 2023). Though they are working on new projects now, they agreed to help us understand some existing parts of the Growbot. After trying to puzzle out a breadboard and old versions of the code, we ultimately got the robot to power on and spin the front wheels while Nasi held up the back of the robot (it is currently missing back wheels so we had to improvise). We were using a joystick with very inconsistent responses for moving forward, backward, and turning.

We decided to purchase certain components. We need a new FlySky controller as the one from previous semesters is broken, and the joystick really isn’t cutting it. In addition, we need swivel wheels for the back of the robot, since it is using front wheel drive and thus the back does not need motors. We also need foam for the water cover and a new axle.

The rest of this log will contain notes that we took while trying to get the Growbot moving again.

Motor Controller:

  • 4 Cable input (Red, Orange, Yellow, Green)
    • These cables are connected on the side of the motor controller that I will call the “front.” It is facing the direction of the ultrasonic sensor at the front of the robot. Two cables are controlling Motor A, two are controlling Motor B.
    • When all 4 lines are high or all lines are low, the motors will stop.
    • The 2 cables on each side of the 4 cable input are PWM. The PWM controls the speed that the motors will run at. One cable controls Motor A, the other controls Motor B.
    • You can see in the code which Arduino pins each wire connects to.
    • Note: Make a schematic so you don’t have to look at the code every time!
  • On the motor controller, there are yellow wires coming out of 3 sides. The front two are going to the battery. The ones on the side go to different sides of the motor.
    • To re-iterate, each pair of wires on the right and left side of the board connects to one motor (motor A = left, motor B = right) (Black tape indicates ground.)
    • The front of the controller has an extra 5V port to power the Arduino. It is next to the 12V battery inputs.
  • RISK: IF YOU ARE CHANGING THE BATTERY FROM 12V TO HIGHER
    • (The 3 “input” pins on the front side of the board, if you are looking at it from the front: the left is high, middle is ground, right is the 5V)
    • Remove the black jumper pin right behind the terminals (which will remove the 5V line)
    • If you don’t remove the jumper pin and make the input higher than 12V, then the board gets fried! Don’t do that!
  • Note: Take a photo of the motor controller and label the different ports! But please make it look nicer than this, I used MS paint.

Code:

  • There are several sections of code commented out, usually involving something called “iBus.” This is code configuring the FlySky controller. Since we don’t currently have a FlySky controller, the code is using a single joystick. When you convert back to using FlySky, comment out the joystick code and un-comment out the FlySky code.
  • We were viewing the code in the Arduino IDE (Nightly) which can be found on the arduino website. The code itself was found in the google drive under the “Arduino” folder. The code has since been modified, but this was the the base.
    • Note: Put the new version of the code in the google drive!
  • When verifying the code for the first time, a common error you will face is that certain libraries cannot be found in the code.
    • Click the “library” button on the left side of the screen (see image below), and look up the library that is causing issues. Then, hit “install.” If it still doesn’t work… We just installed a bunch of similar-sounding libraries until it worked eventually.
An image showing the location of the library button in the Arduino IDE.
  • In this post made by the previous Growbot team, there is a table at the bottom of the page showing links to various tools. If you are still having issues finding libraries for the ultrasonic sensor or the humidity sensor, start looking there.

Possible future changes that we discussed but aren’t planning to implement any time soon:

  • Add another electronics board on the bottom of the robot for a more organized way to connect to sensors/motors. Currently there is quite a distance from the top electronics board down to where the components are, and it can get messy or tangled/disconnected.
  • Power the arduino seperately from the motor controller using a DC to DC buck converter. The arduino MUST have 5V or less to avoid damaging it, so we need to convert from the 12V battery.

That’s all for September 19th!