Hardware
The candy machine as three pieces that goes with first is the housing where the candy goes inside of. and all of the electronics. which includes the arduino board, the motor, and the sensors. There are beam breakes that are inside of the dropper. they make sure that a candy did drop to make the motor stop. The secound piece is the disk that goes on top of the motor with holes the are roughly the same size as a M&M. Then finally the tray at the buttom. This is where the candy will be dispenses into where there are beam breakers to see if a person has taken the candy or Not.
Firmware / SoftwareDevelopment
The firmware was developped using circuit python, wich allowed our CWC student software engineers to easily make use of the Object Oreinted Programming paradigm, and high level programming concepts such a asyncronous simueltaneous execution, allowing them to achieve time-sliced multiprocessing. Functions such as sending and recieving data are controlled by aysncronous "daemon" tasks which watch for data that is waiting to be sent/revieved. Furthermore, CandyCom, the communications protocal can have its featureset expanded by passing through a python dicitionary using a three byte encoding scheme as keys with the function names as the values. This approach, coupled with a versatility based approach has allowed us to create a highly adaptable, easy to use python modulewhich makes it super easy to integrate our candy machine into other research projects. reinforcement learning, as well as offer opportunities for use in other research projects.
CWC Involvement
To engineer a computer-controlled electro-mechanical device that reliably and consistently dispenses a single piece of candy and reports when the candy is taken, we will utilize collaborative efforts and skills in areas such as 3D design/printing, software development, electronic design/assembly, quality assurance, and documentation. We aim to produce a unit that is easy to use, maintain, and operate consistently. These efforts will support the success of research in growth insulin resistance and reinforcement learning, as well as offer opportunities for use in other research projects.
Background and Context
This project operates as a sub-project within a larger research initiative aimed at understanding how adolescents respond to primary rewards. The Maternal to Adolescent Eating, Nutrition, and Development (M2AENAD) lab is dedicated to exploring the behavioral and biological processes that occur when adolescents interact with systems offering immediate, tangible rewards. Specifically, this involves the use of a computer-controlled system designed to dispense candy.
Preliminary Scope
- Research & Information Gathering: Establish communication channels and project processes. Collaborate with M2AENAD lab to gather information about how the existing machine works.
- System Design and Development: Redesigning and enhancing the hardware and software of the candy dispensers to ensure greater reliability and efficiency. Standardize project development to use Python for both controller and firmware development.
- Testing and Quality Assurance: Rigorous testing of the hardware and software components to ensure they meet the project's reliability, reproducibility, and maintainability criteria.
- Documentation and Training Materials: Creating comprehensive documentation for the system, including user manuals, installation guides, and maintenance procedures. Developing training materials for researchers and other users to effectively operate and troubleshoot the system.
- Open-Source Development and Release: Ensuring that all software development adheres to open-source principles. Releasing the software, including Python packages, with appropriate open-source licenses.