This week's assignment is to answer key questions regarding the Final Project.
Due to the COVID-19 lockdown, we have a whole month to work from home and to me, life became less hectic. Finally, I could sit down and make a plan of what to do for my Final Project. This week's assignment seems to be useful, since I could write down some crucial questions and see where will my Final Project go.
My idea is to create an off-the-screen and modular robot with customizable behaviors that can give preschoolers the basic ideas of programming and robotics. There will be 3 groups of blocks: Input, Logic, Output. Kids will need at least one block of each group to perform the desired task. I want the robot to symbolize a cool and modular animal, hence, I sketched here a dragon with customized habits that can be defined by kids through a trial-and-error process:
My MVP for Fab Academy will have 2 Input blocks (including Proximity and Dark), 2 Output blocks (including Move Forward and Flashlight), and at least 2 Logic blocks (including If and Until). It would be nice if I could have enough time to build more blocks and a mobile/web app which is connected to a Scratch account and is able to execute further complicated tasks.
The below pictures show how I'm planning to connect the block physically and electrically:
And how I'm planning to exchange and process data between them:
I found some STEAM toys (which are quite successful) with a similar idea:
Some cool projects by the alumni of Fab Academy and MIT's CBA that are related to my idea:
The design tasks of my Final Project will be divided into 3 parts. The first step will be designing the electronics parts of my project. After making all the electronics parts work perfectly, I can move on to 3D modeling my MVP. Then if I have enough time, I will continue to work on a user interface.
Parts that I will make: the ESP32 compatible main control board, the ESP8266 boards within blocks, the FTDI programming chip, the multi-sensor shield, the multi-actuator shield, the dragon's body and the blocks, and the mobile/web interface (optional).
Parts that I will buy instead: connectors between PCBs, external power supply, sensors (HR-SC04 ultrasonic sensor, LDR/photoresistor, DHT11 temperature/humidity sensor) and actuators (RGB LED strip, mini DC/servo motors with gears and wheels, active buzzer).
For the electronic parts, I will use KiCad to design the schema and PCB layouts, Fab Modules to generate toolpaths, and the Roland SRM-20 machine to mill the boards. I will program the boards with Arduino IDE or PlatformIO. For the blocks, I will design with Fusion 360 and laser-cut them using the TROTEC Speedy 400 machine. For the 3D printing parts, I plan to use Fusion 360 and Blender to design them, and they will be printed using Creality CR-10 or Prusa i3 printer.
My weekly schedule starting from the 9th week:
Final Project requirement | Final Project scope | Process | CAD/EDA software | CAM software | Programming IDE | Machine | Material | Timeline |
---|---|---|---|---|---|---|---|---|
Subtractive fabrication | Press-fit blocks | Laser-cutting | Fusion 360 | Rhino + TROTEC JobControl | N/A | Trotec Speedy 400 | Acrylic 4mm | Week 15-18 |
Additive fabrication | Dragon's head, tail, and adapters | FDM 3D printing | Fusion 360 + Blender | Ultimaker Cura | N/A | Creality CR-10 S5/ Prusa i3 MK3S | PLA 1.75mm | Week 15-18 |
Electronics design & production | Micro-controller boards, multi-sensor/actuator shields | PCB milling & soldering | KiCad | Fab Modules | N/A | Roland MonoFab SRM-20 | PCB 50 x 70 x 1.6mm | Week 9-13 |
Embedded micro-controller programming | Micro-controller boards, mobile/web interface | Embedded programming | N/A | N/A | Arduino IDE/ PlatformIO | N/A | N/A | Week 13-16 |
For the blocks, I will use plywood 4mm or cast acrylic 3mm. For the 3D printing parts, I plan to use PLA 1.75mm. For the PCBs, I will use one-sided copper PCB 50 x 70 x 1.6mm available at Fab Lab Barcelona.
I plan to use the ESP32 chip as the central micro-controller for a couple of reasons:
I also bumped into this article while studying the ESP32 and ESP8266 chips, and the idea of stackable shields seemed to be what I'm looking for. To stack/connect and power the boards, I might need external power supply, JST jacks, normal pin headers/sockets and magnetic connectors. I'm considering using these sensors and actuators: HR-SC04 ultrasonic sensor, photoresistor, DHT11 temperature/humidity sensor (optional), WS2812B RGB LED strip, DC motors and A4953 H-bridge drivers, active buzzer (optional).
Another thing I might need to deal with is level shifting from a lower voltage to a higher voltage and vice versa. For example, the working voltage of my ESP32 board is around 3.3V and its GPIO pins are not 5V tolerant. However, all the sensors I'm going to use will only operate at 5V. I'm not sure about the required voltages of the motors yet, but I think they will be greater than 6V, up to 12V. Hence, I might need level shifters and LDO regulators for controlling the appropriate input voltages of all the components. Of course, there will be the ESP8266 chips which will be included in blocks, capacitors, resistors, diodes, switches, and LEDs for power status and debugging.
Most of the laser-cutting/3D printing/PCB milling materials and electronic components are available at Fab Lab Barcelona. Some specific modules can be ordered from Amazon, Mouser Spain or DigiKey.
Below is just a DRAFTED bill of materials for 1 dragon and 3 blocks which resulted in ~ 138€. The .csv
file can be downloaded here.
I will try to answer these questions in the upcoming classes:
For the Final Project prototype, it should be able to demonstrate clearly all the Input-Logic-Output combinations. It should also look clean and nice as an almost-there product. In the long run, users' feedback will be the most important way to evaluate the performance of my Final Project. In the future, it would be great if I can start a Kickstarter campaign to see whether users will support it. For now, I will be satisfied with my nephews loving it.