2020-06-05 7:30-9:00 PM @ Google Meet
Topic
Assignments
Extra
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
Topic
Assignments
Extra
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
Topic
Assignments
Extra
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
Topic
Assignments
Extra
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
Topic
Assignments
Extra
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
Topic
Assignments
Extra
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.

Tutorials

  • 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
Topic
Assignments
Extra
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
Topic
Assignments
Extra
  • 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
Topic
Assignments
Extra
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
Topic
Assignments
Extra
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
Topic
Assignments
Extra
Serial communication using delimiter and escape bytes
 
2019-12-06 7:00-9:00 PM @ 4H
Topic
Assignments
Extra
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
Topic
Assignments
Extra
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
Topic
Assignments
Extra
Continue to get more familiar with GitLab.
 
2019-10-04 7:00-9:00 PM @ 4H
Topic
Assignments
Extra
Everyone installed GitLab App the computer and practiced creating/sharing work.
 
2019-09-20 7:00-9:00 PM @ 4H
Topic
Assignments
Extra
  • 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
Topic
Assignments
Extra
  • 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
Topic
Assignments
Extra
  • 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
Topic
Assignments
Extra
  • 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
Topic
Assignments
Extra
  • 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.
    repl.it/classroom/invite/7ZXLO3Z
  • 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
Topic
Assignments
Extra
  • Implement an LED class.
 
2019-02-01 7:30-9:00 PM @ 4H
Topic
Assignments
Extra
  • Voltage calculations
  • Ohm's law
 
2019-01-18 7:30-9:00 PM @ 4H
Topic
Assignments
Extra
  • 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
Topic
Assignments
Extra
First day of Ethan's Arduino teaching!