Meeting 18 😉

02/07/2019 

Agenda: 

  • Project sharing 
  • Test audio recording using sound cards  
  • Test battery 

 

Tasks Accomplished: 

  • Tested mono recording using binaural microphones and sound cards 
  • Bought identical mono USB sound card adapters to convert mono recording to stereo recording after some modification  
  • Bought a tester to test the battery voltage when not in use  

 

After our project sharing, we went on to test the audio recording and the battery voltage. There are 4 smaller cells in the battery we use and to make sure that battery is not undercharged and works, we have to test the voltage of each cell using this battery tester and make sure it is above 3.7V (otherwise we would have to charge the battery).  

 

 

We continued testing the audio using the sound cards and confirmed that the sound cards are able to record mono-recording using microphones. After some discussion, we have decided to try to achieve stereo recording by splitting the stereo mic jack into 2 mono USB audio adapter using connectors which means that we must buy 2 soundcards (preferably the same soundcard). We opted to buy another Flujo USB soundcard adaptor instead to because the Vention soundcard which we bought is meant for earpieces that come with a mic and takes TRRS connector. If we make the splitter with the TRRS connector, it will not work with most devices/ sound adapters. In our case however, we choose to make a splitter with TS connector so it will work with most of the available sound adapters.  

Waking up early in the morning for the presentation and pressing on to finish up some of our tasks made it a long day! Take a good break and see you soon! 💃 🕺💃 🕺

Meeting 17 😌

01/07/2019 

Agenda: 

  • Test IMU using codes 
  • Test servo motor MG966 (with pin removed)  
  • Reorganise the electronic parts on the tank chassis so that the weight balances out on the tank (and the tank will not topple when moving) 
  • Mount, tape and cable tie the electronic parts to the tank 
  • Use the code to move the tank in 8 directions independently  
  • Tried ping-ing to the transceiver  
  • Update the slides  

 

Tasks Accomplished: 

  • Tested IMU to see what readings it can give 
  • Tested servo motor and realised that the servo motor could only turn continuously in one direction and not in the other direction when using p.ChangeDutyCycle  
  • Mounted the tested electronic part on the tank  
  • Moved the tank in 8 directions using the previous modified code successfully  
  • Could not ping when using the command prompt in the RPI but will try again the next day  
  • Updated the slides and got ready for the presentation the next day! ✨✨✨

 

Hi Monday Blues! Let’s get through today and every other day!! 🌝

We started off the day testing and coding for the IMU (Inertial Measurement Unit) and managed to extract three different types of angular displacement (heading, roll and pitch) from the IMU. If we were to use the IMU as a tool to decide how much to rotate the transceiver turntable, the only reading we would require would be the heading which we can extract. However, after configuring the IMU, we realise on problem we have is that the strongest signal received by the transceiver may not always be at the angle where the transceivers are directly aligned to each other because of the bouncing of signals from walls and several other considerations such as how to integrate the IMU and the servo motor code together. We will be sure to work on this after our presentation the following two weeks! 🤩

Afterwards, we continued to test the servo motor MG966 that we removed the pin from (remember there is a pin in the servo motor tester we previously tested that limited the rotation of the servo motor gear to 240 degrees). We followed and modified certain codes to test the servo motor using p.ChangeDutyCycle(). When we input the number 0.1 within the bracket, the servo motor starts to rotate clockwise continuously very rapidly and when we change the number to 0, the servo motor stops. We tried other numbers, but we could not get one which rotates the servo motor continuously anticlockwise which is an option what we strongly considered so that we can rotate the transceiver till we find the strongest signal. We would continue looking into the issue, but we had to move on to other tasks for the day. As seen, there are many hiccups along the way ☹️ but we still cannot let these get into our way ya! 💪💪💪

Our day did not end here as we had to mount the parts and get the tank ready for presentation the next day. Some problems we faced when mounting the electronics are weight considerations and cable management, but we eventually got it and below is a picture of our independent tank entity!  

 

 

As the day comes to an end, we put the code we previously made to move the tank in 8 directions in the RPI and tested the tank… And it did work! Here is a video of our ‘dancing tank’!  

 

 

Apart from these, we also tried pinging to the transceiver (previously, the tank continued to move when the signals between the two transceivers are lost/ transceivers are disconnected due to too many obstacles or too long distance). The ping did not work on the rpi but we intend to try it again on Tuesday. Hopefully our presentation on Tuesday will go okay with our updated slides and improvements done and we will be back soon! 👣 👁 👀 🧠

Meeting 16 🧐

28/06/2019 

Agenda: 

  • Continue working on moving the tank independently 
  • Modify code to solve any unforeseen circumstance  
  • Mount the rotatable turntable on the platform using supports so that the turntable does not topple 
  • 3D-design more platforms to organise and place battery and ethernet switch (so that they do not topple) 
  • Think about where to place the different parts of the robot and on which platform  

 

Tasks Accomplished: 

  • Tank was able to move independently (without being connected to a monitor or a power plug; we connected it using a high-power battery)  
  • Modified code such that tank can move forward, backward, left, right, forward left, forward right, backward left, backward right (8 functions instead of the previous 4)  
  • 3D designed and printed disc stabalisers to hold the rotatable turntable in place, stabaliser to hold ethernet switch in place and a small platform to put the battery on since the original platform is not large enough to hold the many parts in place 

 

We tried to connect to the rpi on the tank such that we can remotely control the tank without having to connect the tank to any screen or power plugs and… it worked today! (Yesterday’s didn’t work because we connected to the NTU Secure WIFI on the RPI screen… we turned off the WIFI in the rpi today and all worked well!) Below is a video showing how the tank moved based on what the person with the laptop (one of our members in the lab) pressed. Just a recap – W stands for forward, S for backward, A for left and D for right. 🙂🙂🙂

 

 

We split our work afterwards where one of us went to modify the code to account for forward left, forward right, backward left and backward right as we realise that the tank always has to stop before it turns left or right and when it is turning it cannot go forward or backward.  

The rest of us went on to designing more platforms to place the electronic parts as we realise that we needed more space for better organisation, placement of parts and cable management.  

It was a longer day than we realise and we still have to work on the IMU and the servo motor but we will continue researching during the weekends not forgetting that we want to mount the parts on the robot, test the camera and continue on making the audio work (preferably before the next meeting but time is really tight)! 🕐 🕑 🕒 🕓 

Nonetheless, we still will try our best ehe as always! 💪💪💪

Meeting 15 😉

27/06/2019 

Agenda: 

  • Buy USB sound cards to test whether it is possible to use the sound cards for stereo audio input using external microphones 
  • Sketch how we want to mount the electronics on the tank chassis and make sure that weight is balanced 

 

Tasks Accomplished: 

  • Preliminary research on alternatives to input stereo audio (including using audio splitter and another rpi module)  
  • Mounted the electronic parts on the chassis 
  • 3D printed modified and improved design of the rotatable turntable  
  • Tried to test the tank (so that it can move independently without being connected to any plugs) by connecting the tank to a high-power battery) 

 

Yes it is finally shopping time! Some of us went to Challenger to buy USB sound cards (audio adapter) to test whether it is possible to use the sound cards for stereo audio input. Beforehand, we discussed with our mentor and decided that there are two possible solutions to the audio problem. One is to buy a USB stereo mic adapter than we would only need to plug the mic into the stereo mic adapter and then to the rpi. However, it is a difficult task by itself to find a stereo mic adapter that allows stereo input from microphone (most adapters only allow for stereo output into your earpiece or headphone). The second option would be to buy two USB mono mic adapters where we will need to either buy an audio splitter to split the stereo mic 3.5mm jack into 2 mono USB audio adapter then to rpi. The second option is evidently tougher but would be necessary if we cannot find sound cards/ mic adapters which work.  

After going back to the lab, we tested the sound cards and they did not work as they only allowed for mono input and stereo output (these specifications were not written on the product so we had to try out luck) but we still use these adapters and modify them as in the second option to make the binaural recording work. More work but here we go. 💩  

Also, we tried testing the tank to see whether it can move independently while being powered by a battery that is mounted on it. Tony offered us a high-power battery that is usually used for drones. Due to high power involved, it involves certain risks and we had to solder  red and black wires to the connecting adapter and use a heat shrink to make sure that all parts of the wires and adapters are insulated (no exposed metal parts on the adapter or the wires that can cause electrocution). 

 

 

Above is an image of a preliminary look into how the tank looks like with all the parts and electronics mounted on the platforms (for now we only used double-sided tapes and cable wires to tie the parts to the platforms because we have not arranged the parts on the robot and settled where exactly we want to put the parts – we have to account for the weight and how much the tank will tilt according to how much weight we placed on which side of the platform).  

However, we faced the problem of not being able to access the transceivers on the tank from the user’s end and we could not get the reason behind the failure. (The next day, we then realise it is because we forgot to disconnect from the NTU Secure WIFI which had resulted in the aforementioned issue).  

The lab is really our go-to place almost every day of the week… hopefully our efforts will all pay off at the end of the day! 🌞🌞🌞

Meeting 14 🤔

26/06/2019 

Agenda 

  • Check on the rotatable turntable on whether it fits 
  • Read up on and make any modifications needed for the audio, IMU and servo motor 

 

Tasks Accomplished: 

  • Collected the mount for the servo motor 
  • Made changes to the design of the rotatable turntable to ensure transceiver fits but not too tightly 
  • Researched on IMU and servo motor to see how they work  
  • Tried to modify the servo motor such that it turns 360 degrees, but it did not work well (we are deciding whether to buy a 360 rotatable servo motor)  

 

We 3D printed the mount for the servo motor tester we got from Tony to hold the servo motor in place in the chassis (and it fits)! However, we faced another larger problem instead which is that the servo motor is made such that it can only turn 240 degrees so the turntable will not be able to move 360 degrees (one full round). After some research, we found that there is a 360 continuous servo motor which we are considering whether to buy. Tony has a smaller motor (but we estimate that it is too small to carry and move the load of the transceiver). We did consider using a stepper motor, but the weight of the stepper motor is so much larger than the servo motor (we can feel the difference just by holding them) and will probably consume much more power and make our tank so much heavier. 😢 

We tried opening the servo motor (the tester given to us by Tony) to change the angle that it can rotate and realised that there is a pin which blocks the rotation of the gear at after a certain angle so we tried removing the pin. And we went on to trying to solder the circuit boards in the servo motor but we realised we soldered the wires wrongly as we made the servo motor rotate 360 continuously instead and when we tried to re-solder the servo motor back to its original state, the servo motor could not work according to the code either (and we did not know how to rotate the servo motor backwards either).  

 

 

We realise the transceiver does not fit snugly into the 3D designed turntable and we had to make adjustments to the design to give more space to the transceiver. We also designed some parts to hold the turntable better on the platform. Below are images of the 2nd and more successful design of the turntable as well as the stabilisers to hold the turntable in place. Most of the design remained unchanged except for the dimensions.  

 

There is still quite a bit left to do but we needed to first research on how to get the audio and video right first so here we go! 🚗 🚕 🚙

Meeting 13 💁‍♀️

25/06/2019 

Agenda:  

  • Test the audio hat module and microphones  
  • 3D design the insulation for the motor controller and platform to extend platform on the tank chassis 
  • Add the platform to the tank chassis  
  • Test live-streaming of video from pin-hole camera using IP address and VLC video player  

 

Tasks Accomplished:  

  • Tested the audio hat module and microphones but realized that there may be some problems with it 
  • Discussed and came up with potential solutions as the external microphones were not working with rpi and the audio hat module 
  • Designed the parts we need 
  • Tested live-streaming of the video using VLC video player from remote devices (laptop and phone)  
  • Printed rotatable turntable, platform and insulation 

 

We started work on Tuesday and welcomed Reuben back from his reservice! 👨🏻‍✈️

 

The audio hat and binaural microphones arrived beforehand (with free speakers on the side) and we tried testing these parts out using the rpi and our laptops respectively. The binaural microphones work well by recording stereo sounds and when you listen to the output sounds using earpieces (or headphones), you can discern the difference in sound in the left and right earpiece. However, one huge problem we faced was the audio hat module did not allow audio input via the audio jack and the external microphone. Referring to the audio hat above, when we connect the external binaural microphones into the audio jack, the rpi does not record sounds from the microphone but record sounds from the inbuilt microphone chips on the audio hat instead. There are two chips on the audio hat module (left and right such that is also stereo recording but because the chips are so near to each other, it did not match what we wanted to achieve using the external microphones and 3D-printed ears).  

 

 

Some of us then started 3D-designing the insulation for the motor controller (so that the motor controller will not touch the metal tank and result in a short circuit) and a platform to extend the first level of the tank (we built the second chassis from amazon and decided to incorporate both chassis together such that we have two levels of platform as shown in the picture below). We then screwed the platform to our tank. Below is a picture of how we combined both chassis. Pictures of the tank with extended platform on the first level of the tank will be shown in the future posts soon! 🎇

 

 

We proceeded with testing the live-streaming of video from the pin-hole camera using an IP address and VLC video player which allow other remote devices such as your laptops and phones to stream and play the video live-recorded by the tank. One problem faced is however the lag in the streaming time (which was around 9 seconds long if we were to connect using NTU Secure; this lag is smaller when the device used to stream the video is directly connected via WIFI using the transceivers as seen in meeting 12). When we tried to stream the video from the pinhole camera and audio from the microphone chips on the audio hat module together, the live-streaming did not work anymore (it took very long for the live-streaming page to load and it did not load even after a while). It may be due to too much data transmitted or insufficient WIFI signals to transmit the larger amount of data.  

 

 

That’s all for now… Till tomorrow! 🎆 

Meeting 12 😁

21/06/2019 

Agenda:  

  • Test live-streaming of camera on VNC viewer and attempt to access the live streaming of video from a webpage 
  • Test boost converter borrowed from Tony 
  • Used the previous codes on the tank chassis and check if it works 
  • Discuss on purchase of camera and other parts 

 

Tasks Accomplished:  

  • Managed to live-stream camera using VNC viewer 
  • Tested and fixed a faulty boost converter  
  • Managed to move the tank left, right, forwards and backwards using previous codes 

 

 

We borrowed a pin-hole camera from Tony previously and continued testing the live-streaming of the camera using the VNC viewer. After some time, we managed to do so but till date, we tried but have not managed to transfer the live streaming on a web page which can be access by other users and laptops. We will continue working on this next week! 💪💪💪

 

The boost converter did not work when we tried testing it as the input voltage and output voltage remained the same even though we adjusted the trimmers. After some investigation, we realised that one of the trimmers were faulty and luckily for us, the lab has surplus trimmers and we decided to some un-soldering and soldering to fix the step-up converter. Here are some pictures when we were soldering! Our happy faces are hidden behind the camera.  

 

Since we had our tank chassis, we could then move on to using the code (which we tested on the car chassis previously) on the tank chassis and that was what we did. And… YES the code works on the tank! We attached the motor controller to the bottom of the chassis (tied using cable wires and insulated with paper towels for the time-being; insulation is necessary because the metal plate of the chassis is an electrical conductor; without insulation, the motor controller will be in contact with the metal plate and a short circuit may result). ✌️

(insert video) 

One idea proposed during our discussion was modifying the camera such that it can pan and tilt but we decided to leave to later modifications if we have the time and money to do it but it sure would be a useful and nice touch to our robot. As for whether we are still going to buy a camera or use the pin-hole camera by Tony, we remain undecided. As much as the pin-hole camera is small and has good enough resolution, certain challenges we face is that it is not a POE camera (but we may possibly connect it to the rpi via other ways) and the approximately 1-2 seconds lag when taking the video and showing it on screen (when transceivers are used to connect the user and robot end).   

Enjoy your weekends and we will work even harder next week (not forgetting to enjoy the process of course)! 💃 🕺💃 🕺

Meeting 11 🎥

20/06/2019 

Agenda:  

  • Configuring the pin-hole camera (OEM camera 5640) 
  • Build Chassis  
  • 3D design rotatable turntable for transceiver 

 

Tasks Accomplished:  

  • Configured the camera chips and tested the pin-hole camera borrowed from Tony in the lab  
  • Built one of the chassis received (from Lazada)  
  • Finished designing printable draft of turntable  

 

We started building the chassis (golden in colour ✨ that we received from Lazada a few days back. It took us 2-3 hours just to build the chassis from the many un-assembled parts, but it was a fun experience screwing and tightening the parts together as well as adjusting the tracks. We had to adjust the tracks because they do not fit exactly to the chassis, so we had to make them shorter. Note that the picture below shows the already partly assembled chassis by us. The motors, wheels and platform were not assembled together initially and we had to screw everything together. 

Designing the turntable for the transceivers is our first attempt at fusion 360 and we took quite a while just to get the basics and went on designing the turntable. Below is a screenshot of the first completed design of the turntable.  

Tomorrow will be our last lab day of the week. See you guys! 🖐🖐🖐  

Meeting 10 😜

19/06/2019 

Agenda:  

  • Project sharing  
  • Integrate different functions on a webpage as one-stop platform  
  • Configure and test the range of transceivers 

 

Task Accomplished:  

  • Discussed about the feedback given during project sharing  
  • Learnt to modify the ‘one-stop’ platform 
  • Tested the range of transceivers 

 

We listened to our friends’ sharing and shared our project progress during the second project presentation. It was an eye-opener seeing how much our friends have progressed 👀 .

We are not sure if we presented what we wanted to convey but we wish to say that the tank chassis that we bought is just the frame of the tank so technically we still have to buy other parts, build the robot by integrating everything together in a feasible way and running the robot (because otherwise the tank will just be a stationary toy) so technically the building of the robot is still a very hands-on and brain-wrecking job for us! 🧠 🤨

After the presentation, we started on learning how to add different functions on the webpage interface which hosts the robot’s control. We managed to modify the webpage to add an image beside the control. Eventually, this image will be replaced by the live stream of the video (and audio) taken by the robot 🎥 📻 .

After configuring the transceivers that we just received a few days back, we tested the range of the transceivers to see how far the signal can travel. We left one of the transceivers in the MnT lab (the access point) and brought the client transceiver around SPMS to test the signal strength. On the same level (same altitude), the signal strength is relatively strong for distances about 100m or so (we noted that there is a quite a number of obstacles and walls in between the two transceivers). However, when we went up a level (level 2), considering that the MnT lab is on level 1, at certain locations at distances about 100m apart, no signal can be received. This may be due to the directionality of the transceivers and obstacles involved.  

 

 

It is interesting to note that when no obstacle is involved, the signal strength received is still relatively strong even when both client and access point are back facing each other (might be due to reflection of signals from walls that allow signals to be received). ✌️✌️✌️  We will proceed to building the chassis and subsequently the robot and use these transceivers to control the motion of the robot tank! 

Meeting 09 🧐

17/06/2019 

Agenda:  

  • Modify the code and interface to allow both motors to rotate in the opposite directions for the tank to turn left and right 

 

Task Accomplished:  

  • Modified code and interface to ensure both motors rotate in opposite direction successfully 

 

After the short weekend break 🌞 , we decided to continue coding for the motors. Previously, we managed to rotate the motors by entering some code and allow the rc car to achieve translational motion (moving forward and backward). Today, we attempted to code for the motors to rotate in different directions for the tank to turn left and right. We then added this to the previous code and created an interface with all 4️⃣ functions (forward, backward, left and right). 

 

 

We also attempted to code some lines out for the stepper motor which will be used for the rotating platform for the transceiver at the robot end.  

Kelvin and Qi Jie (one of the lab guys) were also present at the lab today and we had a short discussion about the transceivers and how to make the signals stronger. Evidently, reflection of the signals off the wall will result in attenuation, resulting in signal loss and weakening the signals remarkably especially when the number of reflections increase. The transceivers will definitely work better in an open space but we have to test out how far the signals can go when there are obstacles in between as there will also be obstacles in real-life situations. 🙌 🙌 🙌 

As much as we felt that we tried to figure as many things out as we can, there seems to be even more things to be done including audio processing and more experimenting with the transceivers so we will see you soon! 😄😄😄

Here is a picture of our group identity! 

We swear we are not as devil-ish as our group identity above!! 😈 😈 😈