Automatic Chocolate Vending Machine
Coin insertion and delivery slots, and Internet port * Coin insertion slot so that the child can insert the coins to buy a chocolate * Delivery slot to collect the chocolate, and coins if refunded-Internet connection port so that owner can interact with ACVM from remote. RTOS * An RTOS has to schedule the buying tasks from start to finish. * Let ? C/OS-II be the RTOS used in ACVM System requirements The machine has a slot for inserting the coin. * There is a slot into which a child (buyer) inserts the coins for buying a chocolate.
This port is a common mechanical interface to the bowl. * An RTOS has to schedule the processes (tasks) for buying from start to finish. * It should also be possible to reprogram the codes and relocation of the codes in the system ROM of flash or EPROM whenever the following happens: * The price of chocolate increases * The message lines need to be changed or * Machine features changes. Fig. 1. a)Basic system(ACVS) of an Automatic Chocolate Vending Machine Fig . 1. b)Input and Output Ports at the ACVM
Reprogram of the codes and relocation of the codes * The system ROM or flash or EPROM whenever the following happens: (i) the price of chocolate increases, (ii) the message lines or menus or advertisement graphics needs to be changed or (iii) machine features change. Features| Requirements | Purpose| To sell chocolate through an ACVM from which children can automatically purchase the chocolates. The payment is by inserting the coins of appropriate amount into a coin-slot. | Inputs| Coins of different denominations through a coin slot.
User commands| Signals, Events and Notifications| A mechanical system directs each coin to its appropriate port? Port_1, Port_2 or Port_5. Each port generates an interrupt on receiving the coin at input. Each port interrupt starts an ISR, which increase value of amount collected by 1 or 2 or 5 and posts an IPC to a waiting task the System. Each selected menu choice gives a notification to the system. | Outputs| Chocolate and signal (IPC) to the system that subtracts the cost from the value of amount collected.
Display of the menus for GUIs, time and date, advertisements, welcome and thank messages. | Test and validation conditions| All user commands must function correctly. All graphic displays and menus should appear as per the program. Each task should be tested with test inputs Tested for 60 users per hour. | Functions of the system * A child sends commands to the system using a GUI (graphic user interface). * GUI consists of the LCD display and keypad units. * The child inserts the coins for cost of chocolate and the machine delivers the chocolate. If the coins are not inserted as per the cost of chocolate in reasonable times then all coins are refunded. * If the coins are inserted of amount more than the cost of chocolate, the excess amount is refunded along with chocolate. * The coins for the chocolates purchased collect inside the machine in a collector channel, so that owner can get the money, again through appropriate commands using the GUI. USB wireless modem enables communication through Internet to the ACVM owner. Design metrics Power Dissipation: As required by mechanical units, display units and computer system * Performance: One chocolate in two minutes and 256 chocolates before next filling of chocolates into the machine. [Assumed] * Process Deadlines: Machine waits for maximum 30 s for the coins and machine should deliver the chocolate within 60 s. * User Interfaces: Graphic at LCD or touch screen display on LCD and commands by children or machine owner through fingers on keypad or touch screen. * Engineering Cost: US$ 50000 (assumed) * Manufacturing Cost: US$ 1000(assumed)
Details of multiple tasks * All 24 bits at three ports, Port_1, Port_2 and Port_5 are in reset state (0s) or reset on power-up. Besides being attached to mechanical subsystems, each of these ports give digital input bits to the ACVS being designed and receives the system output bits. * Mechanical subsystems also provide a facility, which helps when there are two or more coins of the same type. Thus, there can be a max of 8 total different points at each port. * Use of a semaphore, SemAmtCount is such that within a time-out period, a child can thus either insert 8 coins of Rs. for 8 points of Port_1, or insert a coin of Rs. 1 for Port_1 point, of Rs. 2 for Port_2 point and Rs. 5 for the port_5 point. The child has options for several possible combinations using which the machine recovers the cost of a chocolate, before collecting coins and delivering the chocolate. * ACVS task, Task_ReadPortsdoes the following * It reads the byte (8bits) at each of the above ports. * If the coins status, as reflected bySemAmtCount, is as per the cost of the chocolate, it sends a flag to Task_collect. The latter task initiates actions for collecting the coins into a collection unit.
It also resets the bits after reading to keep the ports and all the 24 points in ready state for the next cycle of the machine. * It does the other actions described in step 10, if The coins do not accumulate as per the cost within a specific timeout period or are in excess of the cost or It does other actions as per Step 11 for displaying messages as per the state of the port just before switching to another task. It sends messages through three mailbox pointers. * ACVS circuit design is such that a port 0thbit, bit 0 is set (=1) when a coin is available and identified properly.
Port bit 1 is also set when two are available, bit 2 also sets when three are available, and so on. There are 8 bits for 8 points at the port. The number of 1’s at the port determines the number of coins at that port. * When a port, Port_Collect receives a direction (a signal in the form of flag, which sets) from the Task_collect, then all 24 bits for the 24 points at three ports release the coins using an electromechanical device. Coins collect at a collection unit. [To recover the coins, the machine owner on a convenient day opens the unit by a lock and withdraws the money.
The machine owner also fills an eight points unit at Port_ExcessRefundfor refunding when the child inserts an extra coin]. * ACVS task, Task_Collect does the following. * It directs the Port_Collect to act and the unit collects all the available coins from the ports, Port_1, Port_2 and Port_5. * After collection is over, it sends an IPC to another task, task_Deliver, through a port_Deliver. This port on setting delivers the chocolate and also resets for the next cycle. * It does the other actions described at Step 11 for a display. * When a port, Port_Refund receives a direction (a signal in the form of lag, which sets) from a task, Task_Refund, it directs all the eight points at each of the ports to release thecoins if any using an electromechanical device. The coins drop in a bowl if the amount at the three ports its found to be less than the cost. When a port, Port_ExcessRefundreceives a direction ( a signal in the form of flag, which sets)from a task, Task_ExcessRefund, it directs the eight points at another port to release the excess amount using an electromechanical device and the coins drop in the bowl, provided the amount at the three ports is found to be more than the cost.
To recover the coins, the child looks at a bowl to withdraw the refunded money]. * ACVS task, Task_Refunddoes the following 1. It directs the Port_Refund to act and the unit sends the coins from three ports to a bowl when the amount is short 2. It does the other actions described in Step 11. It sends a display message for the mailboxes, the mails in which Task_Display waits. ACVS task, Task_ExcessRefunddoes the following. 1. It directs the excess refunding on the unit to refund the excess amount 2. It does the other actins described in Step 11 and messages to the mailboxes. At this step, an LCD matrix port gets a message from a Task_Display. The display is as per the state of the machine or time-date mailed to task waiting mailboxes. The displayed messages are as follows: * When machine resets or on cycle start, in the first line, a welcome messages. “Welcome to sweet memorable chocolate”is displayed. The second line display is “time and date”from a Task_TimeDateDisplaywhich sends the message every second. * After a mail from Task_Collect, the first line shows a message. “Wait for a moment”. “Collect a nice chocolate soon”is displayed in the second line.
The message clears after a time out. * After a mail from Task_Deliver, the first line message is “Collect the nice chocolate”. The second line message is “Insert coins for more”. The message clears after a time out. * After an event flag from Task_Refund, a message in the first line is “Sorry”! The second line displays “Please collect the refund”. The messages clears after a time out. * After the mails, from Task_ExcessRefundin the first line, “Collect the chocolate and Money” is displayed. “Do not forget to collect the excess” is displayed in the second line. The message clears after a timeout. After a timeout or on machine reset for next cycle, repeat the display as in step (i). * OSSemPostandOSSemPendsemaphore functions synchronize such that a task waits for execution of the codes till the necessary tokens, indicated bySemAmtCount, is collected within a specified timeout period.