{"id":614,"date":"2026-03-16T15:23:15","date_gmt":"2026-03-16T13:23:15","guid":{"rendered":"https:\/\/www.hh3dlab.fi\/blog\/?p=614"},"modified":"2026-03-16T15:23:36","modified_gmt":"2026-03-16T13:23:36","slug":"614","status":"publish","type":"post","link":"https:\/\/www.hh3dlab.fi\/blog\/3d-robo-lab\/614\/","title":{"rendered":"Game based Candy Dispenser"},"content":{"rendered":"<h1>3D + Robotics DIG007AS3AE-3004 \u2013 Blog \u2013 Candy Dispenser<\/h1>\n<p>Group: Katja Koskela, Mia K\u00e4rtner, Inari H\u00e4rm\u00e4l\u00e4<\/p>\n<h1>Introduction<\/h1>\n<p>We are all specializing in digital services and have prior experience with the course topics. This experience has been gained either through other courses such as 3D printing and IoT courses or through exchange studies related to the subject.<\/p>\n<h1>Ideas<\/h1>\n<p>In the ideation phase we utilized the creativity of the group members as well as artificial intelligence (mostly ChatGPT). All group members added ideas to a list and then we chose three best ideas. After that we started discussing about the components required for the project. The best idea was chosen during the first class of the course. We decided to build a candy dispenser device called CandySnake. We started planning immediately and used Lotus Blossom as an ideation method to figure out what was needed to bring our idea to life.<\/p>\n<p>One of the other ideas we had was \u201crunaway\u201d alarm clock or small moving character. The concept was that when the alarm goes off, the device would start moving away from the user, forcing them to get up to turn it off. This would require at least two motors and wheels for movement. If we wanted the device to detect its surroundings in all directions (360\u00b0), a distance sensor mounted on a rotating motor could also be used. The device would include an LED display to show the time and a speaker for the alarm sound.<\/p>\n<p>Another idea was a soundboard device that plays different sounds when buttons are pressed. The sounds could consist of timeless meme sounds if changing them later would be difficult. One humorous concept was a \u201crelationship soundboard,\u201d where someone could communicate with their partner only by using meme sounds from the device. The device could include physical buttons for different sounds and a small LED screen to display the sound menu. The soundboard could also be mounted on a rotating turntable mechanism so that a motor could be used as part of the interaction or visual effect.<\/p>\n<p>We chose to build the candy dispenser, because out of all three ideas it was easiest and most useful. Soundboard would have been funny and the moving character even funnier, but from a business perspective the candy dispenser is the most practical and marketable concept. Who wants to run after their alarm clock anyway?<\/p>\n<h1>What did you need to learn<\/h1>\n<p>Through the Lotus Blossom method and the description of our initial idea, we identified which hardware components we would need for the project and what we needed to learn to assemble the device. The most important learning points for the device were developing the Snake game code with the help of artificial intelligence; acquiring audio files, uploading data to the ESP and connecting it to the device; ensuring the functionality and coding of the motor; the 3D design and printing of the device; and project time management so that the device could be built within a short timeframe.<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-615\" src=\"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/a-screenshot-of-a-computer-screen-ai-generated-co.png?resize=640%2C419&#038;ssl=1\" alt=\"A screenshot of a computer screen AI-generated content may be incorrect.\" width=\"640\" height=\"419\" srcset=\"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/a-screenshot-of-a-computer-screen-ai-generated-co.png?w=1015&amp;ssl=1 1015w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/a-screenshot-of-a-computer-screen-ai-generated-co.png?resize=300%2C197&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/a-screenshot-of-a-computer-screen-ai-generated-co.png?resize=768%2C503&amp;ssl=1 768w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n<p>We decided to build a candy dispenser where the portion size is determined by the player\u2019s performance in a Snake game. The dispenser is a 7 cm diameter disc with slots every 1 cm containing candy. The dispenser is rotated using a 180\u00b0 servo.<\/p>\n<p>When the device starts, the song <em>Candy Shop<\/em> by 50 Cent begins to play. A menu appears on the screen showing the time since the last play session and an option to \u201cStart Game.\u201d The Snake game is controlled using two rotary encoders: one for up\/down direction and the other for left\/right. The game can be restarted by pressing the up\/down encoder for a long time, and the player can return to the menu by pressing the left\/right encoder for a long time.<\/p>\n<p>When the game ends (when the snake hits a wall or itself), the dispenser releases as many candy slots (portions) as the number of apples eaten in the Snake game.<\/p>\n<p>Required Components:<\/p>\n<ul>\n<li>180\u00b0 Servo motor<\/li>\n<li>LED display \u2013 1.77\u201d TFT LCD<\/li>\n<li>Speaker<\/li>\n<li>ESP32 microcontroller<\/li>\n<li>Controllers\/rotary encoders for the Snake game<\/li>\n<li>Breadboard<\/li>\n<li>Connecting wires<\/li>\n<\/ul>\n<p>During the construction phase, some details of the idea were modified. For example, the variability of the portion size was removed, and additional elements were added to the UI as needed.<\/p>\n<h1>The building phase<\/h1>\n<p><strong>19.1.2026<\/strong><\/p>\n<p>The first lesson of the course consisted of theory. We familiarized ourselves with different types of motors and brainstormed ideas for the device. The actual building of the device only began during the second lesson. The plan was to start working on the Snake game code and design the dispenser part of the device in Blender. We decided to make the dispenser a rotating disc rather than a hatch that opens.<\/p>\n<p>We also started downloading the necessary libraries and searching for code so that we could test the functionality of the speaker. During the lesson, we managed to connect the required wires, controllers, motor, and display for the Snake game. Designing the dispenser part involved some trial and error, as we had to figure out, for example, how to configure the Blender environment to follow the correct measurements (cm\/mm).<\/p>\n<p><strong>26.1.2026<\/strong><\/p>\n<p>There was a lot of troubleshooting in designing the display UI, the Snake game, and testing the audio. The Snake game was eventually made to work. The display shows a \u201cStart\u201d menu, where the game begins by pressing the encoder. In the game, apples are collected by rotating two encoders (up\/down and left\/right). The game ends when the snake hits a wall, and the player is shown a \u201cGame Over\u201d message.<\/p>\n<p>There were also challenges while testing the audio. We learned that an ESP32 Sketch Data Upload plugin must be installed for audio files (instructions were found on the Random Nerd Tutorials website). In the Arduino settings, it is also necessary to choose a suitable partition scheme (found under \u201cTools\u201d). We tested several options, for example Minimal SPIFFS, which worked during the first audio test. The desired music was downloaded from the internet. We also learned that depending on the situation, the code, and the libraries used, the audio file may need to be either .mp3 or .wav, so we converted the file format using an online conversion website.<\/p>\n<p>The biggest problems during audio testing were related to the partition scheme, file size, and the limited amount of memory. We managed to get the sounds working with difficulty, but the sound quality was terrible, so it still needs to be improved. The dispenser part was successfully 3D printed, and we removed the print supports from it.<\/p>\n<p><strong>2.2.2026<\/strong><\/p>\n<p>This time, a lot of problem-solving and testing was required with the audio to learn how to make it work with good sound quality. We tested using an older version of the ESP library, different partition scheme settings, and many other solutions, but nothing worked.<\/p>\n<p>We received a tip from another student that instead of SPIFFS (a file system used to store audio on the ESP6), it would be better to use LittleFS. For this, we asked AI for new test code that uses LittleFS. At first, there were also problems with this until we realized that the previously installed Data Upload plugin only worked with SPIFFS, so we had to install a new Data Uploader designed for LittleFS (again following instructions from Random Nerd Tutorials). When installing these plugins, it is important to make sure they match the correct Arduino version (in this course, version 1.8.x).<\/p>\n<p>The next problem was the sample rate of the .wav file (16,000 Hz). We learned that this was causing the poor audio quality. The Arduino code and the audio file must have the same sample rate, and the audio file\u2019s sample rate must also be high enough so that the sound does not come out demon-like. We converted the file from 16,000 Hz to 44,100 Hz using an online conversion website. Finally, we got the chosen audio files to work, although they have not yet been connected to the device.<\/p>\n<p><strong>9.2.2026<\/strong><\/p>\n<p>We developed the Snake game UI further and added the servo motor functionality to the device code. Once again, we had to work with AI and solve coding issues. We figured out which additional libraries needed to be installed in Arduino for the code to work properly.<\/p>\n<p>Finally, we managed to implement the desired changes in the device. The start screen now includes a \u201cDistribute Candy\u201d option below the \u201cStart\u201d menu. If the player presses it without having played the Snake game, the screen displays \u201cYou haven\u2019t completed the game successfully yet\u201d and returns the player to the start screen. We also added a condition that \u201cDistribute Candy\u201d only works once the player has collected at least 2 apples in the Snake game. After successfully completing the game, selecting the \u201cDistribute Candy\u201d option rotates the servo 180\u00b0 and the screen notifies the player of the candy portion.<\/p>\n<p>We also learned the importance of always double-checking the wiring, as during testing we discovered that the servo motor\u2019s signal wire was not connected to the ESP.<\/p>\n<p><strong>23.2.2026<\/strong><\/p>\n<p>We attempted to integrate the game logic with the sound system, but the implementation did not work as expected. During the session, we continued improving the code by refining the menu structure and adjusting the snake\u2019s movement path to make the gameplay more logical and consistent. By the end of the session, we decided to revisit the sound integration next week and attempt to implement it again with a clearer approach.<\/p>\n<p><strong>2.3.2026<\/strong><\/p>\n<p>We attempted to make the game and the audio work together, trying to play the Candy Shop song when the game starts. We didn\u2019t succeed yet, but we planned to continue testing next time, as it would be great to have the song play as originally intended. The game itself works perfectly. The main issue with the audio is that it only produces static noise and no music can be heard through the speaker. We modified the servo functionality in the code so that it dispenses candy only after the player has successfully completed the game and caught at least two apples. The dispenser releases one portion of candy for each apple caught.<\/p>\n<p>For the candy dispenser, we built a prototype using cardboard and tape. Our original plan was to design the parts in 3D using Blender, and we did manage to design and print one component. However, due to time constraints, we relied on cardboard for the rest of the prototype. We did incorporate the single 3D-printed part into the prototype though.<\/p>\n<p><strong>9.3.2026<\/strong><\/p>\n<p>During the final session, we decided to abandon the audio functionality. Despite several attempts, we were unable to get the sound system working reliably within the available time. Instead, we chose to focus on finalizing and refining the game code to ensure that the core gameplay worked properly. By the end of the session, we completed the necessary adjustments and finalized the code for the project.<\/p>\n<h1>The outcome<\/h1>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"wp-image-616 size-large aligncenter\" src=\"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-2.jpeg?resize=640%2C904&#038;ssl=1\" alt=\"\" width=\"640\" height=\"904\" srcset=\"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-2-scaled.jpeg?resize=725%2C1024&amp;ssl=1 725w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-2-scaled.jpeg?resize=212%2C300&amp;ssl=1 212w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-2-scaled.jpeg?resize=768%2C1085&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-2-scaled.jpeg?resize=1087%2C1536&amp;ssl=1 1087w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-2-scaled.jpeg?resize=1450%2C2048&amp;ssl=1 1450w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-2-scaled.jpeg?w=1812&amp;ssl=1 1812w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-2-scaled.jpeg?w=1280&amp;ssl=1 1280w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/> <img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"wp-image-617 size-large aligncenter\" src=\"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-3.jpeg?resize=640%2C360&#038;ssl=1\" alt=\"\" width=\"640\" height=\"360\" srcset=\"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-3-scaled.jpeg?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-3-scaled.jpeg?resize=300%2C169&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-3-scaled.jpeg?resize=768%2C432&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-3-scaled.jpeg?resize=1536%2C864&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-3-scaled.jpeg?resize=2048%2C1152&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-3-scaled.jpeg?w=1280&amp;ssl=1 1280w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-3-scaled.jpeg?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"wp-image-618 size-large aligncenter\" src=\"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-4.jpeg?resize=640%2C360&#038;ssl=1\" alt=\"\" width=\"640\" height=\"360\" srcset=\"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-4-scaled.jpeg?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-4-scaled.jpeg?resize=300%2C169&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-4-scaled.jpeg?resize=768%2C432&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-4-scaled.jpeg?resize=1536%2C864&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-4-scaled.jpeg?resize=2048%2C1152&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-4-scaled.jpeg?w=1280&amp;ssl=1 1280w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-4-scaled.jpeg?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"wp-image-619 size-large aligncenter\" src=\"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-5.jpeg?resize=640%2C360&#038;ssl=1\" alt=\"\" width=\"640\" height=\"360\" srcset=\"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-5-scaled.jpeg?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-5-scaled.jpeg?resize=300%2C169&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-5-scaled.jpeg?resize=768%2C432&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-5-scaled.jpeg?resize=1536%2C864&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-5-scaled.jpeg?resize=2048%2C1152&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-5-scaled.jpeg?w=1280&amp;ssl=1 1280w, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-614-5-scaled.jpeg?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n<p>What we learned:<\/p>\n<ul>\n<li>We learned that allocating more time to the project outside of class hours could have significantly improved the final outcome. For example, working on the 3D design at home and printing the components outside of scheduled lessons would have allowed more time for testing and refinement during class.<\/li>\n<li>During the coding process, we observed that AI-generated code can sometimes be unreliable. It proved more effective to request smaller code snippets and implement changes incrementally rather than attempting to generate a large program with many features at once.<\/li>\n<li>We gained practical experience in implementing audio functionality on the ESP, including finding suitable audio files online and correctly uploading them to the device.<\/li>\n<li>The project provided additional practice in 3D design and preparing models for 3D printing.<\/li>\n<li>We further developed our programming skills by implementing the logic and functionality required for the Snake game.<\/li>\n<li>The project also highlighted the importance of time management. Due to limited class hours and shortened lessons, progress was sometimes slow, especially during the coding phase, as uploading and testing code on the ESP device required a considerable amount of time.<\/li>\n<\/ul>\n<p>The topic is interesting to us, and we are motivated to learn more about it in the future. This course brought together many of the concepts we had previously learned in earlier IoT and robotics courses and allowed us to apply them in a practical project. As a result, it increased our interest in tinkering and developing similar systems further.<\/p>\n<p>In the future, the project could be further developed by introducing additional features and game variables. For example, the game could include a wider selection of candy types, each with different effects or point values. Furthermore, implementing additional gameplay elements such as varying difficulty levels, obstacles, or bonus items could make the game more engaging and increase its replay value.<\/p>\n<p>In addition to software improvements, the physical construction of the device could also be further developed. The box and the overall structure could be redesigned to improve durability, stability, and overall build quality. This would make the device more reliable and better suited for long-term use.<\/p>\n<p><a href=\"https:\/\/github.com\/katjakoskela\/candydispencer.git\">Project&#8217;s Github repository<\/a><\/p>\n<p>\ud83c\udf38 Created by a team that refused to let the snake starve: Katja Koskela, Mia K\u00e4rtner and Inari H\u00e4rm\u00e4l\u00e4.<\/p>\n<p>Completed on 9.3.2026 after many iterations, debugging sessions, and a lot of patience with the ESP \ud83d\udc0d<\/p>\n<p>\ud83d\udd25 <em>Thanks for playing!<\/em><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>3D + Robotics DIG007AS3AE-3004 \u2013 Blog \u2013 Candy Dispenser Group: Katja Koskela, Mia K\u00e4rtner, Inari H\u00e4rm\u00e4l\u00e4 Introduction We are all specializing in digital services and have prior experience with the course topics. This experience has been gained either through other courses such as 3D printing and IoT courses or through exchange studies related to the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3,64,17,20,61],"tags":[65],"class_list":["post-614","post","type-post","status-publish","format-standard","hentry","category-3d-robo-lab","category-3d-robotics-course","category-3d-printing","category-esp32","category-gaming","tag-3d-robotics-course"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":388,"url":"https:\/\/www.hh3dlab.fi\/blog\/3d-robo-lab\/3d-robotics-mum8ta004-dat-nguyen\/","url_meta":{"origin":614,"position":0},"title":"3D + Robotics MUM8TA004 \u2013 Dat Nguyen","author":"Heikki Hietala, lab admin","date":"12.11.2022","format":false,"excerpt":"Introduction Hi, my name is Dat, second-third year student at Haaga-Helia. My goals for the course are to get broad understanding of 3D Robotics and to benefit myself, as well as to satisfy my curiosity. The only challenge I have at the moment is I didn't have that much experience\u2026","rel":"","context":"In &quot;3D + Robo Lab&quot;","block_context":{"text":"3D + Robo Lab","link":"https:\/\/www.hh3dlab.fi\/blog\/category\/3d-robo-lab\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2022\/11\/image.png?fit=1004%2C753&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2022\/11\/image.png?fit=1004%2C753&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2022\/11\/image.png?fit=1004%2C753&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2022\/11\/image.png?fit=1004%2C753&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":491,"url":"https:\/\/www.hh3dlab.fi\/blog\/innovation-course\/medication-dispenser-project\/","url_meta":{"origin":614,"position":1},"title":"Medication dispenser project","author":"Heikki Hietala, lab admin","date":"1.6.2023","format":false,"excerpt":"Introduction\u00a0 I have only taken Introduction of Programming course before and basically have no background of coding, neither in 3D printing. This course is a total new experience for me to combine the 3D printing and programming together and the first time to get to know about ESP32 and Arduino.\u00a0\u2026","rel":"","context":"In &quot;Innovation course&quot;","block_context":{"text":"Innovation course","link":"https:\/\/www.hh3dlab.fi\/blog\/category\/innovation-course\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2023\/06\/image-25.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2023\/06\/image-25.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2023\/06\/image-25.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":5,"url":"https:\/\/www.hh3dlab.fi\/blog\/3d-robo-lab\/tervetuloa-haaga-helian-3d-robo-labiin\/","url_meta":{"origin":614,"position":2},"title":"Haaga-Helia 3D + Robo Lab equipment","author":"Heikki Hietala, lab admin","date":"13.3.2022","format":false,"excerpt":"Haaga-Helia 3D + Robo Lab is the 3D, robotics and IoT research lab at our University. 3D is a family of technologies that can be seen to affect every field of business today. Virtual reality, augmented reality, mixed reality, 3D modeling, scanning and printing open new business opportunities every day.\u2026","rel":"","context":"In &quot;3D + Robo Lab&quot;","block_context":{"text":"3D + Robo Lab","link":"https:\/\/www.hh3dlab.fi\/blog\/category\/3d-robo-lab\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2022\/03\/IMG_20190202_194403_807.jpg?fit=1200%2C1200&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2022\/03\/IMG_20190202_194403_807.jpg?fit=1200%2C1200&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2022\/03\/IMG_20190202_194403_807.jpg?fit=1200%2C1200&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2022\/03\/IMG_20190202_194403_807.jpg?fit=1200%2C1200&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2022\/03\/IMG_20190202_194403_807.jpg?fit=1200%2C1200&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":658,"url":"https:\/\/www.hh3dlab.fi\/blog\/3d-robo-lab\/the-weatherslayeaer-project\/","url_meta":{"origin":614,"position":3},"title":"The Weatherslayeaer project","author":"Heikki Hietala, lab admin","date":"25.3.2026","format":false,"excerpt":"Introduction We are a team of three second\u2011year students from different areas of digital and technical studies, each bringing our own strengths into this 3D and Robotics course. Hey there! I\u2019m Saana, and I\u2019m currently in my second year of studying digital services. When I started the IoT course, I\u2026","rel":"","context":"In &quot;3D&quot;","block_context":{"text":"3D","link":"https:\/\/www.hh3dlab.fi\/blog\/category\/3d\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-658-6.jpeg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-658-6.jpeg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-658-6.jpeg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-658-6.jpeg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":524,"url":"https:\/\/www.hh3dlab.fi\/blog\/3d-robo-lab\/524\/","url_meta":{"origin":614,"position":4},"title":"Person counter for the 3D + Robo Lab","author":"Heikki Hietala, lab admin","date":"16.4.2024","format":false,"excerpt":"Introduction Hello! Our team consists of four students who worked together on a project for our 3D and Robotics course at Haaga-Helia. Although the four of us come from different backgrounds, we managed to combine our strengths to work together to get this project done. In our team we have\u2026","rel":"","context":"In &quot;3D&quot;","block_context":{"text":"3D","link":"https:\/\/www.hh3dlab.fi\/blog\/category\/3d\/"},"img":{"alt_text":"First test device","src":"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2024\/04\/upload1-225x300.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":396,"url":"https:\/\/www.hh3dlab.fi\/blog\/blog\/moon-phases-matrix\/","url_meta":{"origin":614,"position":5},"title":"Moon Phases Matrix","author":"Heikki Hietala, lab admin","date":"12.12.2022","format":false,"excerpt":"by Aliisa Myllym\u00e4ki Introduction Hello, I\u2019m a second-year student at Haaga-Helia, named Aliisa. I have no previous experience with robotics, so I started this course as a blank canvas, open to learn anything and everything. I took this course to see if robotics were something I would feel drawn to,\u2026","rel":"","context":"In &quot;blog&quot;","block_context":{"text":"blog","link":"https:\/\/www.hh3dlab.fi\/blog\/category\/blog\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2022\/12\/image.png?fit=639%2C922&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2022\/12\/image.png?fit=639%2C922&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2022\/12\/image.png?fit=639%2C922&ssl=1&resize=525%2C300 1.5x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.hh3dlab.fi\/blog\/wp-json\/wp\/v2\/posts\/614","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hh3dlab.fi\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hh3dlab.fi\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hh3dlab.fi\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hh3dlab.fi\/blog\/wp-json\/wp\/v2\/comments?post=614"}],"version-history":[{"count":2,"href":"https:\/\/www.hh3dlab.fi\/blog\/wp-json\/wp\/v2\/posts\/614\/revisions"}],"predecessor-version":[{"id":621,"href":"https:\/\/www.hh3dlab.fi\/blog\/wp-json\/wp\/v2\/posts\/614\/revisions\/621"}],"wp:attachment":[{"href":"https:\/\/www.hh3dlab.fi\/blog\/wp-json\/wp\/v2\/media?parent=614"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hh3dlab.fi\/blog\/wp-json\/wp\/v2\/categories?post=614"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hh3dlab.fi\/blog\/wp-json\/wp\/v2\/tags?post=614"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}