2020-08-07 to present 7:30-9:00 PM @ Google Meet
We are learning OpenCV with Python and will present our projects at the end of the term. Our teacher is Rohan Dugad.
Every member should prepare for term presentations
ATTENTION!!! - Moving forward we will not update the learning notes on this website. We are using our Google Drive to store meeting documents and track progress now. If you have any questions or requests please Contact Us.
2020-07-31 7:30-9:00 PM @ Google Meet
We made the robot navigate around the maze using the ultrasonic sensor.
2020-07-24 7:30-9:00 PM @ Google Meet
We learned how to use the ultrasonic sensor to stop the robot when it goes near a wall.
2020-07-17 7:30-9:00 PM @ Google Meet
The team complete the box challenge and got familiar with sensors.
2020-07-10 7:30-9:00 PM @ Google Meet
Peter assigned some YouTube tutorials for the team to learn the basics of Webbots/Erabus. The URL is https://www.youtube.com/channel/UCOQdN_7P6fRBkY5l-L_TuIQ
2020-07-03 7:30-9:00 PM @ Google Meet
We started doing WeBots, a robotics simulation that doesn’t require hardware. Along with downloading this software, we also used Erebus, which gave us a maze setup. Throughout the meeting (taught by Peter), we learned how to access objects, move them, view different sensors, create files, and properly run the simulation.
The tasks to be finished by this upcoming meeting for WeBots are to watch the first two tutorials by Jeffrey and Victor at this link https://www.youtube.com/channel/UCOQdN_7P6fRBkY5l-L_TuIQ
Peter was the instructor and Ryan was the note taker. Both did a fantastic job!
2020-06-19 7:30-9:00 PM @ Google Meet
The team had a competition of our quadrature encoder projects. The winners are:
  • Coolest - Andy and Rohan Dhugad
  • Most practical - Rohan Dham and Andy
  • Most innovative - Peter
Everybody should make a video of the project and send to Andy for editing them into a single video. We will publish it on our YouTube channel.
Andy was the host of the competition and Alex took good meeting notes. Well done!
2020-06-05 7:30-9:00 PM @ Google Meet
Ethan led the team to review the encoder device and discussed how it works.
Prepare for the mini-competition:
  • Design and build a demo device to use the encoder as input device to control something, e.g. your LED brightness or your motor speed. Be creative here, please come up with something interesting or practical or fancy. Please do not attempt to control anything that requires 110 v or 240 v main power since we don't want to see you burn down your house or do something worse.
We will have three awards: the coolest (voted by BananaBots); the most practical (voted by parents), the most innovative (decided by Ethan and Donghui)
You will present your demo device on the 6/19 meeting to for 5 minutes.
2020-05-15 7:30-9:00 PM @ Google Meet
The team had a brainstorm session on planning future club activities. The results are HERE.
The team ordered few encoders from Amazon. This is a simple 2 phase rotary encoder, also called quadrature rotary encoder, model # EC11.
1. Understand how quadrature encoder works in general - how does it measure the amount of rotation, and how does it detect clockwise and counterclockwise rotations
2. Design a circuit to use your Arduino to read this encoder - please draw the schematic diagram and explain how it works
3. Write Arduino code from scratch to read the encoder and displace the rotation on your terminal - please use interrupt function so that you will use minimum amount of resources on your Arduino; you need to write your own code, i.e. no existing encoder library is allowed
2020-05-01 7:30-9:00 PM @ Google Meet
Second technical paper review by Ethan after all members revised their work.
Update your article based on Ethan's feedback and start the second round of peer review. Review information can be found at THIS LINK. Peer review form is located HERE.
2020-04-17 7:30-9:00 PM @ Google Meet
Ethan reviewed all members' technical articles.
Update your article based on Ethan's feedback and start the first round of peer review. Review information can be found at THIS LINK. Peer review form is located HERE.
2020-04-03 7:30-9:00 PM @ Google Meet
Ethan reviewed the serial communication programs for the following members: Peter, Alex, Rohan, Ryan and Andy. All did excellent job!
We are kicking off an initiative for all members to write up on topics we learned in the past 2 years. Ethan will review in our next meeting
2020-03-20 7:00-9:00 PM @ Google Meet
Put what we have learned during the past few weeks on to hardware - use serial ports to transmit and receive data. Using the algorithm Ethan taught the club, all should be able to have a very robust communication between two devices via their serial ports.
To connect your Arduino Uno to the computer, you need to establish a softSerial, and transmit from softSerial to the hardware serial port on your Uno. You only need one wire (male-to-male) to connect your TX terminal on your softSerial port to the RX terminal on your hardware serial port. The TX terminal on your hardware serial port will be used to send output messages to your computer.
Please write the program to test if your complete system works. You will need to disconnect this wire when you upload your code to your Arduino from your computer.


  • If you do not know how to connect Arduino to the softSerial on your computer, please study This Tutorial.
  • Peter published a Software Serial guide and example on our blog. Please check it out HERE. Thanks Peter!
2020-03-06 7:00-9:00 PM @ Google Meet
Continue to work on the state machine. Implement a reset function to reset the state to init after a complete data frame is read. An optional timer function can also be implemented to time out the reading in case of hardware disruption.
Add a reset function in the new SerialPacketizer implementation.
This is our first virtual meeting via Google Meet due to the coronavirus outbreak.
2020-02-21 7:00-9:00 PM @ 4H
  • Clarifying state machine and how it works.
  • Implementing state machine for homework assignment.
Review and re-code SerialPacketizer.cpp with the state machine learned today. The code needs to pass all test cases.
2020-02-07 7:00-9:00 PM @ 4H
Serial communication using a state machine.
Implement SerialPacketizer.cpp on Repl.it using a state machine. The code needs to pass all test cases.
2020-01-17 7:00-9:00 PM @ 4H
Serial communication using delimiter and escape bytes.
Implement SerialPacketizer.cpp on Repl.it. Ethan created the programming package for all students. The code needs to pass all test cases.
2020-01-03 7:00-9:00 PM @ 4H
Serial communication using delimiter and escape bytes
2019-12-06 7:00-9:00 PM @ 4H
Serial communication between two Arduino
On Arduino #1:
1) Design and build a circuit on breadboard that your Arduino can read two potentiometers using its analog input pins,
2) Write software so it will send these two readings to Arduino #2 through soft serial port
On Arduino #2:
1) Use your existing push button circuit from last meeting,
2) Write software to send a request / command through soft serial port to Arduino #1 to ask for the readings from two potentiometers, receive the values of those two readings, light up builtin LED using the first value as how long the LED should light up, using the second value as how bright the LED needs to be.
Requirements / deliverables:
1) Document your circuit, i.e. draw your schematic of the entire system (consisting of two Arduinos and the connection).https://learn.sparkfun.com/tutorials/how-to-read-a-schematic/all
2) Be as efficient as possible on software side, i.e. spamming serial port with command or data is not allowed. Please try to minimize the traffic on your serial port so that you can preserve your serial port bandwidth and your microcontrollers’ clock cycles to do other things.
3) Upload your source code to BananaBots' GIT repository during your development process and after you complete the tasks.
2019-11-15 7:00-9:00 PM @ 4H
Serial communication between two Arduino
Working in pairs, using two Arduino, on the 1st Arduino, a button push will send a command / signal through serial port to the 2nd Arduino, on the second Arduino, when the command is received, it will turn on a LED. Bonus task: push the button the 2nd time, 1st Arduino will send a command / signal through serial port to the 2nd Arduino which will turn off the LED.
Reading list:
2019-11-01 7:00-9:00 PM @ 4H
Continue to get more familiar with GitLab.
2019-10-04 7:00-9:00 PM @ 4H
Everyone installed GitLab App the computer and practiced creating/sharing work.
2019-09-20 7:00-9:00 PM @ 4H
  • The team shared experience with RCJ competitions and identified areas for improvement such as time management and code organization.
  • All showed interest in learning computer vision as it’s critical for improving line following.
  • Ethan introduced a version control system called Git.
  • Create an account at gitlab.com. 
2019-04-05 7:00-8:45 PM @ 4H
  • Review results of last quiz on basic electronics.
  • Power:
    Definition: Power is the energy being delivered per time unit.
    Formulas: P = V x I, P = V2 / R, P = R x I2
  • Ultrasonic sensor tutorials
  • Set up a Interrupt Service Routine (ISR) and change PWM frequency on your Arduino UNO
  • Rohan Dugad volunteered to explain the ultrasonic sensor he programmed to the club. Job well done!
  • Ethan was away on a school field trip. Coach Donghui taught today's class. Thank you!
2019-03-22 7:30-9:00 PM @ 4H
  • Practice meeting for "Bake a Board" workshop: Ethan will teach the team how to make surface mount board with soldering kits and toaster oven. We will also learn how to program an ATTINY micro controller on the board using Arduino.
  • Maanas just joined BananaBots. He's a classmate and good friend of many kids of our club. Welcome on board!
2019-03-15 7:30-9:00 PM @ 4H
  • Take another 10-min quiz on voltage/current calculation
  • Review assigned homework on Motor class implementation
  • Ethan posted new homework on the same website. repl.it/classroom/invite/7ZXLO3Z.
  • Please note you need to show your work. This was not designed to make more work for you, it actually will help you get to the correct answers and let your teachers know where you are in the learning curve. Answers without showing steps and process will not receive credit.
  • Maanas just joined BananaBots. He's a classmate and good friend of many kids of our club. Welcome on board!
2019-03-01 7:30-9:00 PM @ 4H
  • Review last class' quiz on voltage/current calculation
  • Review assigned homework on LED class implementation
  • Write your code on the website below and Ethan’s program will automatically grade your code and give you feedback on the spot. You can also copy motor.h and motor.cpp content into vs code, and write your code there then copy the code back into the website for grading. Ethan will review manually as well.
  • If your LED class implementation didn't get reviewed in the class please submit to Ethan via email.
  • Answers for the electronics quiz is HERE.
2019-02-15 7:30-9:00 PM @ 4H
  • Implement an LED class.
2019-02-01 7:30-9:00 PM @ 4H
  • Voltage calculations
  • Ohm's law
2019-01-18 7:30-9:00 PM @ 4H
  • PWM - Pulse Width Modulation
  • Create a ledPin class in C++ to simulate PWM.
  • Convert your PWM functions into class methods on your LED class. It needs to take the duty cycle / brightness as an argument. If you want, also implement a method to adjust the period of the PWM - how to design the API for this is up to you.
  • Reading: Resistors
2019-01-04 7:30-9:00 PM @ 4H
First day of Ethan's Arduino teaching!