WO2016146782A1 - Automated design and generating of an electronic system on a flexible substrate - Google Patents

Automated design and generating of an electronic system on a flexible substrate Download PDF

Info

Publication number
WO2016146782A1
WO2016146782A1 PCT/EP2016/055880 EP2016055880W WO2016146782A1 WO 2016146782 A1 WO2016146782 A1 WO 2016146782A1 EP 2016055880 W EP2016055880 W EP 2016055880W WO 2016146782 A1 WO2016146782 A1 WO 2016146782A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
electronic components
electronic system
generating
code
Prior art date
Application number
PCT/EP2016/055880
Other languages
French (fr)
Inventor
Raf RAMAEKERS
Kashyap TODI
Kris LUYTEN
Original Assignee
Universiteit Hasselt
Iminds Vzw
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Universiteit Hasselt, Iminds Vzw filed Critical Universiteit Hasselt
Publication of WO2016146782A1 publication Critical patent/WO2016146782A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K1/00Printed circuits
    • H05K1/18Printed circuits structurally associated with non-printed electric components
    • H05K1/181Printed circuits structurally associated with non-printed electric components associated with surface mounted components
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K3/00Apparatus or processes for manufacturing printed circuits
    • H05K3/0005Apparatus or processes for manufacturing printed circuits for designing circuits by computer
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K3/00Apparatus or processes for manufacturing printed circuits
    • H05K3/10Apparatus or processes for manufacturing printed circuits in which conductive material is applied to the insulating support in such a manner as to form the desired conductive pattern
    • H05K3/12Apparatus or processes for manufacturing printed circuits in which conductive material is applied to the insulating support in such a manner as to form the desired conductive pattern using thick film techniques, e.g. printing techniques to apply the conductive material or similar techniques for applying conductive paste or ink patterns

Definitions

  • the invention relates to methods, related systems, computer program products and related carriers thereof for generating descriptions and code in relation to an application, executed on an electronic system, and further various uses of the generated descriptions (such as for fabricating or assembling the electronic system) and generated code (such as for uploading on a portion of the electronic system to execute the application or use of simulation purposes).
  • the invention provides end-to-end solutions for designing and creating electronic systems, made on flexible and/or flat substrates, which are cheap and easy to make and are enabling the providing of electronic connectivity, such as paper or (transparent) foils.
  • electronic connectivity such as paper or (transparent) foils.
  • the invention is further described in essence for paper substrates but applicable to the other substrates discussed above.
  • a method for generating descriptions, at least in part being suitable for use or more specifically interpretable by a printer, for generating a printed paper comprising of conductive links or circuit routes (either by directly having complete conductive links, realizing a circuit or just sufficient to enabling the user to fill those by use of conductive pens), wherein said circuit routes are connected with a selection of electronic components (e.g. intermediate electronic components to be intermediate between said interactive components and a microcontroller -as discussed further) , and herewith forming after assembly onto said printed paper a stand-alone electronic system.
  • electronic components e.g. intermediate electronic components to be intermediate between said interactive components and a microcontroller -as discussed further
  • This method is provided for, as part of creating an application and related electronic system made on a paper substrate, wherein the electronic system comprises of a plurality of (interacting) electronic components amongst the selection of electronic components that are connected by conductive links.
  • the generated standalone electronic system is a completely interactively computing system.
  • the printer is either filled with conductive ink, to print functional circuits, or regular traces, to be colored by hand subsequently using conductive ink.
  • the conductive circuit routes are created on the paper substrate either directly or manually e.g. with a conductive pen.
  • At least one of the electronic components is an interactive element, i.e. an input or output element, meaning that users (of the electronic system) can interact directly with the interactive element (input or output element - also further called I/O widgets), meaning can give inputs to the electronic system or can experience an output by the electronic system. More in particular the method is adapted for the use of input elements of different kind or type.
  • I n an embodiment of the invention at least one of said electronic components is an output element.
  • At least one of the electronic components is a microcontroller, more in particular the method is adapted in that the descriptions can be generated for use with a plurality of microcontrollers of which one is selected.
  • a microcontroller another programmable component such as e.g. a FPGA may also be used as general purpose computing device.
  • At least one of the electronic components is capable to power the electronic system (e.g. a battery or alternative components like a PV cell).
  • the electronic system e.g. a battery or alternative components like a PV cell.
  • the description generating method provides automated generation of mentioned descriptions, suitable for use or interpretable by a printer, that are (only) based on the information received (from a user or designer) previously (via a graphical user interface), such information being an arrangement of visual elements, a plurality of interactive electronic components amongst the selection of electronic components including integration of those within the arrangement, and optionally (and most preferably with) the behavior (logic) to be experienced by use of the electronic system (provided by the user as a stimulus and response with interactive electronic components).
  • the description generating method provides for (entirely) paper designed interactive electronic elements, which enables customizability and/or seamless integration with the paper. More in particularly, templates (more in particular parametric templates since the user can still change some properties of them e.g. size + background image) of such paper designed interactive electronic elements are provided avoiding folding of conductive links, as those are in general experienced as rather brittle.
  • a plurality of interactive electronic components received from said user are selected from provided templates of such interactive electronic elements.
  • the parameters (size, visual design) of said templates of interactive electronic components are defined by the user.
  • the methods are adapted to be capable of handling circuits wherein at least one or more of said interactive electronic components are either a paper-membrane widget (button or slider) or pull-chain widget (printed on paper) (button, switch, sliders, radio button).
  • said interactive electronic components are either a paper-membrane widget (button or slider) or pull-chain widget (printed on paper) (button, switch, sliders, radio button).
  • a method for generating simulation code for simulating a stand-alone electronic system (in a simulator) formed after assembling a selection of electronic components, which are connected with conductive links provided on a printed paper.
  • This method further referred to as simulation code generating method, creates simulation code simulating the electronic system on a computer system.
  • the simulation code generating method provides automated generating of simulation code, suitable for use or operable by a microcontroller or other programmable component, based on what is received from a user or designer previously. More in particular, the simulation code generating method provides a way to input the behavior (logic) to be experienced by use of the electronic system (e.g. the user only has to specify logic in terms of input that a user gives to the system and output that he will observe as a result (i.e. use case diagrams). I n an embodiment of the invention the behavior (logic) is being modeled by if-then rules and/or map-to rules.
  • a method for generating execution code, for executing a stand-alone electronic system formed after assembling a selection of electronic components, which are connected with conductive links provided on a printed paper.
  • This method is provided for creating code to be executed on an electronic system as described above, more in particular the microcontroller or the like.
  • the simulation code and execution code are very related (in terms of structure). Note that within the simulator however, no noise filtering is applied to the input signal. Having an identical code is e.g. the case when the program is running in the same language as the code is operated on the microcontroller or other programmable component. For another embodiment of the invention, other microcontrollers or other programmable components operable in other code languages are supported, and therefore an additional translation step from simulation code to execution code may be required.
  • the execution code generating method is provided with automated generating of simulation code first, and includes a further step of automated adapting the simulation code into the execution code, suitable for use or operable by a microcontroller or other programmable component, being part of the electronic system.
  • this step of automated adapting takes into account the physical aspects of the electronic system, especially occurring in the one or more interactive components of the electronic system, and therefore additional code may be included for providing hysteresis, time outs, smoothing or thresholding.
  • the microcontroller or other programmable component although surely present in the electronic system is not necessarily selected in the sense that the user or designer positions this components while designing. He may and preferably does choose the type though upfront. He may also elect to also position this component (to make it part of this visual design though).
  • the execution code generating method provides for code, taking into account that electronic oscillations that may occur when using the paper designed interactive elements must be avoided, by using hysteresis and/or time outs.
  • the execution code generating method provides automated generating of code, suitable for use or operable by a microcontroller or other programmable component, based on the information received previously (via a graphical user interface), i.e. an arrangement of visual elements, a plurality of interactive electronic components including integration of those within the arrangement, including the behavior (logic) to be experienced by use of the electronic system, executing the code and providing automated inference of code from such behavior.
  • one of the above (description, simulation or execution) methods is provided as a way to input a recording approach, and therefore receiving from the user or designer one or more executions expected from the electronic system is performed by recording (by use of representations or models of one or more of the interactive electronic components). More in particular for every logic rule that said user wants to record, said user demonstrates one or more states or transitions of said interactive electronic components that are involved.
  • one of the above (description, simulation or execution) methods comprises an additional step of receiving from the user an input or output type of one or more of the interactive electronic components.
  • the timing options thereof and matching approaches are an important characteristic of the input or output type of one or more of the interactive electronic components.
  • the timing options e.g. delays for flickering an LED
  • the matching approaches rather refer to the behavior (logic).
  • both (simulation and execution) codes are representative for an interpreter, operable both on a computer system (executing corresponding method) and a (selected) microcontroller of the electronic system (as created) or other programmable component as designed.
  • a method is provided of simulating a stand-alone electronic system formed after assembling a selection of electronic components, which are connected with conductive links on a flat and/or flexible substrate like a printed paper.
  • This method comprises the following steps: (i) obtaining the simulation code as generated by the simulation code generating method as determined above; (ii) receiving a stimulus from a user via a graphical user interface, wherein a representation of the electronic system is shown; (iii) automated computing of a response of the electronic system to the stimulus by use of the simulation code and showing the response within the representation of the electronic system via the graphical user interface.
  • the stimulus as mentioned is defined as a type of input via which the simulation can be activated. Therefore, the stimulus needs to be triggered or driven in order to perform the simulation.
  • a so-called integrated method is provided for creating both an electronic system as described above and code to be executed on such electronic system.
  • a method for generating descriptions, at least in part being interpretable by a printer, for generating conductive links onto a printed paper, wherein said conductive links are connected with a selection of electronic components, and herewith forming after assembly onto said printed paper a stand-alone electronic system, said method comprising: (a) receiving from a user an arrangement of visual elements; (b) receiving from said user a plurality of interactive electronic components and an integration of those within said arrangement; (c) receiving from said user one or more executions expected from said electronic system and (d) automated generating of said descriptions for generating conductive links onto said printed paper, based on what is received from said user in step (a), (b) and (c).
  • the description of the conductive links is automatically generated by use of an auto-routing method, for computing the conductive links between the electronic components, i.e. more in particular the interactive electronic elements, and the microcontroller or other programmable component, and wherein the auto-routing method uses the behavior (logic) inputted.
  • the description of the conductive links is automatically generated by (i) auto selection and positioning of intermediate electronic components (ii) Interconnecting the terminals/pins of intermediate electronic components, interactive electronic components and a microcontroller and (iii) further auto-routing: determining the shortest path between all connected terminals/pins on a 2D canvas while minimizing the number of intersecting circuit traces. Additional intermediate electronic components i.e. zero-ohm resistors/bridges can be used to resolve overlapping circuit traces for non-planar circuit graphs.
  • a method for generating descriptions the method for generating simulation code and the method for generating execution code are computer implemented or computer assisted methods and hence are operable or operated on a (distributed) computer system.
  • steps (a), (b) and (c) in methods above are performed on a first computer (for instance using a web browser), transmitting the received information to a second computer, performing step (d) and transmitting back the generated description or codes to the first computer.
  • the user may want to start from an already designed stand-alone electronic system in accordance with the invention and generate simulation or execution code therefore with a method comprising: (i) loading a representation of said electronic system (in a computer system) and (ii) receiving (in said computer system) from said user one or more executions expected from said electronic system and (iii) automated generating (by said computer system) said simulation or execution code, based on what is received from said user in step (ii) and said loaded representation.
  • a method comprising: (i) loading a representation of said electronic system (in a computer system) and (ii) receiving (in said computer system) from said user one or more executions expected from said electronic system and (iii) automated generating (by said computer system) said simulation or execution code, based on what is received from said user in step (ii) and said loaded representation.
  • At least one programmable component like a microcontroller, for executing execution code, generated in accordance with the invention, is described.
  • the invention is not limited thereto.
  • field programmable gate arrays exists which upon receipt of configuration information, typically specified using a hardware description language (HDL), can behave as a programmable component.
  • HDL hardware description language
  • a method for generating configuration information suitable for at least one field programmable gate array being part of a stand-alone electronic system formed after assembling a selection of electronic components which are connected with conductive links provided on a printed paper, said method comprising: (a) receiving (in a computer system) from a user an arrangement of visual elements; (b) receiving (in said computer system) from said user a plurality of interactive electronic components and an integration of those with said arrangement; (c) receiving (in said computer system) from said user one or more executions expected from said electronic system and (d) automated generating (by said computer system) of said configuration information, based what is received from said user in step (a), (b) and (c).
  • ASIC application specific component
  • ASIP application specific programmable component
  • the stand-alone electronic system comprising a selection of electronic components which are connected with conductive links on a printed paper, with one or more interactive electronic components and at least one programmable component (e.g. a microcontroller or FPGA or ASI P), uploaded with execution code or alternatively an ASIC, at least one further electronic component is provided for (wireless) communication (e.g. a WIFI or NFC or Bluetooth) at least in a range broader than the printed paper.
  • a further electronic component is provided for (wireless) communication (e.g. a WIFI or NFC or Bluetooth) at least in a range broader than the printed paper.
  • the respective code, configuration or design information is then generated by receiving (in a computer system) from the user of said arrangement one or more executions expected from entire arrangement instead.
  • the stand-alone electronic systems do not have to be entirely equal. On the contrary one may choose to have one more performing system as a master system and others being less performing acting as slaves.
  • stand-alone electronic system For sake of clarity with stand-alone electronic system is meant a complete interactively computing system in the sense that no other communication beyond the paper system is necessary for having a full operable system, or that no other communication (e.g. from pc or mobile device) to the various paper artifacts is needed for having a full operable system.
  • said stand-alone electronic system is also adapted for enabling external communication in that such external communication is not needed for having a full operable system.
  • the one programmable component e.g. a microcontroller or FPGA or ASIP
  • execution code or alternatively an ASIC on the paper which ensures this. No other device like a PC or mobile is needed.
  • the methods distinguish between a plurality of interactive electronic components chosen by the user and any other electronic components, together with the these interactive electronic components, forming the stand-alone electronic system. Given that besides the choice of the interactive components the user only further inputs the behavior, the methods do have to determine automatically one or more of these other electronic components and since those are not under control of the user the automated step also positions them and interconnect those.
  • a microcontroller or other programmable component selected for instance its type but not necessarily positioned
  • the other electronic components can be denoted intermediate components, intermediate said interactive components and the microcontroller or other programmable component.
  • Figure 1 illustrates general process flow the design and fabrication process of a standalone electronic system assembled onto a printed paper, in accordance with the present invention.
  • Figure 2 illustrates an embodiment of the graphical user interface for the design tool, in accordance with the present invention.
  • Figure 3 illustrates an embodiment of how to link the behavior (logic) to be experienced by use of the electronic system with one of the interactive electronic components, in accordance with the present invention.
  • Figure 4 illustrates an embodiment of a simulator, simulating a stand-alone electronic system, thereby enabling testing of recorded behavior (logic), in accordance with the present invention.
  • Figure 5 illustrates another embodiment of how to link the behavior (logic) to be experienced by use of the electronic system with one of the interactive electronic components, in accordance with the present invention.
  • Figure 6 illustrates detailed flow diagram of the design and fabrication process of a stand-alone electronic system assembled onto a printed paper, in accordance with the present invention.
  • Figure 7 illustrates an embodiment of paper designed interactive electronic components, i.e. paper-membrane widgets, in accordance with the present invention.
  • Figure 8 illustrates another embodiment of paper designed interactive electronic components, i.e. pull-chain widgets, in accordance with the present invention.
  • Figure 9 illustrates an embodiment of a pull-chain widget, in accordance with the present invention.
  • the invention relates to methods, related systems, computer program products and related carriers thereof for generating descriptions and code in relation to an application, executed on an electronic system, and further various uses of the generated descriptions (such as for fabricating or assembling the electronic system) and generated code (such as for uploading on a portion of the electronic system to execute the application or use of simulation purposes), more in particular at least part of said descriptions, are being interpretable by a printer, for generating a printed paper or substrate, even in particular to enable creation of conductive links or circuit routes thereon (either directly printed or later filled by the user).
  • this type of descriptions define circuit designs and/or electronic layouts.
  • the conductive links or circuit routes may be directly providing complete conductive links, realizing a circuit or just sufficient to enabling or guide the user to fill those by use of conductive pens.
  • the invention relates to automated design methods used for generating or creating an on-paper realized electronic system, meaning that paper is used as support for various electronic components, and optionally one or more of these electronic components are made of paper themselves (e.g. by use of a plurality of overlaid paper layers).
  • the invention relates to computer assisted or computer implemented methods, related systems, computer program products and related carriers thereof for generating descriptions or representations (suitable for generating the electronic systems or parts thereof, in particular one or more printer paper sheets, hence at least one or more of these descriptions or representations are readable by hardware like a printer) and code in relation to an application, executed on an electronic system, and further various uses of the generated descriptions (such as for fabricating or assembling the electronic system) and generated code (such as for uploading on a portion of the electronic system to execute the application or use of simulation purposes).
  • the present invention enables designers without a technical background to make traditional designs on paper interactive by seamlessly integrating I/O components and microcontrollers or other programmable components, herewith enriching any paper design, from books, posters, and business cards to ephemeral packaging material and flyers.
  • electronic circuits generated according to the present invention can be fabricated using various techniques (e.g. a conductive pen, vinyl cutter), the circuits are optimized for printing on resin-coated paper (more in particular one layered resin- coated paper) using a conductive inkjet printer.
  • electronic components such as resistors, buttons, switches, and LEDs, are generally attached using ECATT-tape or conductive paint or even custom-made stickers.
  • the paper circuit i.e.
  • paper substrate comprising conductive links
  • paper PCB can also be used as a paper PCB onto which wires are soldered instead of using conductive paint or ink for connecting the PCB to input and output components, hence realizing any type of electronic system.
  • different types of microcontrollers or other programmable components can be used. Either their pins connect to paper circuits using bulldog clips, or else flat connection pins seamlessly connect to the circuit printed on paper.
  • an integrated design and fabrication approach allows non- expert users or designers to seamlessly integrate electronics in visual designs on paper, enabled by a design tool, a demonstration or behavior or logic specification technique, and a set of interactive components suitable for paper.
  • the design tool is used to integrate visual designs with electronics, and specify, test, and debug behavior (logic) between interactive electronic components. Moreover, this tool assists by automatically generating circuits, layers, pages, and instructions to help assembling the final paper artifact.
  • non-programmers are enabled to specify behavior (logic) between basic electronic sensors and actuators.
  • the interpreter runs in a simulator integrated into the design tool and on supported microcontrollers or other programmable components.
  • Figure 1 illustrates general process flow 100 comprising main actions of the design and fabrication process of a stand-alone electronic system assembled onto printed paper, or in short interactive paper artifacts.
  • the first action 101 is called 'design and specify behavior (logic)', meaning that a user adds interactive elements (e.g.
  • FIG. 2 shows an embodiment of the graphical user interface 200 for the design tool, in accordance with the present invention.
  • a user can initiate a new design, by selecting the page setup button 201 in the top left corner of the interface 200.
  • the user can hence start specifying the dimensions of the paper design.
  • an earlier saved design can be uploaded.
  • a new design that is created can be saved using the save button 203 right from the open button 202.
  • the GUI 200 further allows to import pre-designed visual elements 211, i.e. images, by means of the insert image button 204 and to arrange them onto the canvas 210.
  • the user overlays the design with interactive components 212, e.g.
  • a pull switch 221, a push button 222, LEDs 223 and a buzzer 224 available in the widget toolbox 220, depicted left from the design canvas 210.
  • tooltips with video previews are available in the widget toolbox 220.
  • the buttons, fields and windows of the logic recorder 230 and recorded logic 240 are provided. Using the logic recording according to the present invention, users interact directly with the visual representations of I/O widgets, and not with abstract variables or pins.
  • the logic recorder 230 is foreseen with if-then and map-to recording fields and buttons 231, 232 respectively, whereas the recorded logic window 241 depicts the event sequences that are chosen, in case of either if-then or map-to recording.
  • the simulate button 205 the design can be simulated, and hence a stimulus is provided for initiating the simulation.
  • bugs can be detected and removed from the design.
  • the preference of use of only a graphical user interface for design and specification, meaning that the automated generating of descriptions and/or code are only based on the information received therefrom, is emphasized. More in particular the limitations of such approach, i.e. difficulty to handle simultaneous actions and handling actions that can occur in any order, are recognized and solved by providing extra input options, such as a dialog, for fine tuning specific parameters such as the type of input or output of an interactive element, the timing options thereof and matching approaches for the inferred logic.
  • extra input options such as a dialog
  • specific parameters such as the type of input or output of an interactive element, the timing options thereof and matching approaches for the inferred logic.
  • Figure 3 illustrates how the user links the switch 301 to the loop of LEDs 302, to start the game.
  • the user starts a new input recording 336 in the if-part 335 of the logic recorder 330.
  • the user demonstrates the switch changing to the On' state as indicated by 321 using the switch widget pop-up window or dialog 311 on the canvas.
  • the user then starts a new output recording 338 in the then- part 337 of the logic recorder 330.
  • the user demonstrates the blinking pattern of the LEDs 302 by turning their brightness consecutively to 100% and back to 0% as indicated by 322 via the LED widget pop-up window 312.
  • the user specifies the timing for these recorded actions by setting them in the timing pop-up window 340 and also specifies the looping behavior by setting the loop option 341.
  • the design tool automatically infers the behavior for the Off state of the switch.
  • the user starts the simulator 345 as depicted in Figure 3 (a) to interact with the widgets 401, 402, 403, 404, and observes the corresponding output 411, 412, 413, 414, within the design canvas 410 as illustrated in Figure 4.
  • the user can identify possible mistakes in the recorded rules.
  • the user can record the logic for the "grab now" button. If pressed at the moment the LED under the monkey (i.e. LED4) lights up, the buzzer should ring to indicate that the game is completed.
  • Figure 5 illustrates the recording of this behavior.
  • the user records the if-part 535, 536 of the logic recorder 530 by demonstrating through window pop-ups 512, 514 the button press 504 and turning the brightness of LED4 502 to 100%.
  • the recording is fine- tuned by specifying that the two conditions need to be satisfied simultaneously by option 520.
  • the user records the then-part 537, 538 of the logic recorder 530 by turning the volume of the buzzer to the desired intensity via pop-up window 539.
  • the user specifies in the timing pop-up window 340 the timing of the output action i.e. buzzer ringing for instance to ensure that the buzzer stops after a given time.
  • the switch 401 is put in On' status 411, and whenever LED4 402 is put in On' status 412, the buzzer 403 is in ringing status 413, and the "grab now" button 404 should be in pressed status 414 in order to complete the game.
  • the user is supposed to specify the position of the microcontroller or other programmable component, and will also verify that electronic connection pins for the widgets do not overlap.
  • the user adjusts widgets (e.g. in position, size or orientation) if necessary.
  • the printing process 102 as in Figure 1 can be further specified while generating the following: (1) An electronic circuit that connects widgets to pins on the microcontroller or other programmable component while limiting the number of intersecting circuit traces; (2) PDF files consisting of the electronic circuits, widget-specific assembly lines (e.g. cut lines, fold lines), and visual elements; (3) the microcontroller code as generated; and (4) a customized tutorial to guide the user through the printing, deployment, and assembly. More in particular, when following the tutorial, the user will be instructed to print the generated PDF files on three sheets of paper, using a conductive inkjet and a color printer, as required.
  • the user will also upload the generated code to the microcontroller or other programmable component and uses ECATT tape to attach bridges (zero-ohm resistors) or alternatively the invented custom bridge electronic sticker at intersecting traces that could not be resolved by an auto-routing algorithm.
  • the remainder of the tutorial provides instructions to for example cut, fold and glue layers of paper, attach electronic components, such as LEDs, resistors, and attach the microcontroller or other programmable component, and herewith assemble the electronic system as referred to in Figure 1 by action 103.
  • the resulting product can be used as a stand-alone paper artifact, e.g. after connecting a battery.
  • FIG. 6 A more detailed flow diagram of the design and fabrication process 600 of a standalone electronic system 690 assembled onto a printed paper, in accordance with the present invention, is illustrated in Figure 6.
  • a set of visual elements are received from a user, including a plurality of (paper-designed) interactive electronic components or widgets and the integration of those within the visual design, together defined as input 610.
  • the descriptions 625 for generating printed paper might yet be generated.
  • the descriptions 625 are generated in the step 620 not only by the input 610 for the design, but are also based on the behavior (logic) that is specified and recorded as extended part of the design stage, together defined as input 615.
  • This behavior i.e. one or more executions expected from the interactive paper artifact as final product, is also required for generating the simulation code 635 and the execution code 645 in the respective steps 630, 640.
  • the printing and assembly process 650 will follow whenever automated generating is achieved of the descriptions 625 for generating printed paper comprising conductive links, but generally also instructions and visuals. As a result of this printing and assembly process 650, printed and assembled circuits, widgets and visuals 655 are delivered. With the simulation code 635, the simulator 680 may simulate the design including its behavior (logic).
  • a programmable component 665 may be designed and manufactured during stage 660 using Electronic Design Automation (EDA) or the like in case of use of configuring of field programmable gate arrays.
  • EDA Electronic Design Automation
  • the execution code 645 is then uploaded on the programmable component 665 or a microcontroller 670 instead as directly received from the user.
  • the combination and final assembly of printed and assembled circuits, widgets and visuals 655, and the programmable component 665 and/or microcontroller 670 uploaded with execution code 645, is representing the electronic system 690 as designed, thereby creating an interactive paper artifact.
  • the execution code 635 can be derived from the simulation code 645.
  • Appropriate input and output widgets suitable for paper designs, are required, and therefore, according to an embodiment of the invention, three families of standard widgets are proposed in order to realize basic controls such as push buttons, switches, sliders, and radio buttons. Each family is unique in its own way, and provides some strengths to distinguish itself from the others.
  • the assembling strategy for each of the three widget families is different, and consists of different numbers of layers.
  • a uniform layering approach is presented comprising a base layer, a widget-specific layer (where needed), and a top layer. This layering approach is also vital for the seamless integration of electronics and visual elements, since all conductive traces are concealed.
  • the widget design ensures that all conductive lines are traced back to the base layer, which is connected to the microcontroller or other programmable controller.
  • one of the widget families is determined by off-the-shelf widgets, such as off-the-shelf input sensors and output components.
  • Some of the components expose flat connection pins on the bottom (surface-mount devices or SMDs) and therefore are attached directly to paper using ECATT-tape.
  • Components that expose regular connection pins are extended with female crimp terminals and attached to paper using conductive paint to increase the strength of connections.
  • Support can be provided for so-called Circuit Stickers, making it easier for users to attach off-the-shelf components on the circuit.
  • the Circuit Stickers technique involves adhering physical interface elements such as LEDs, sounders, buttons and sensors onto a cheap and easy-to-make substrate providing electrical connectivity.
  • Figure 7 shows two paper-membrane widgets 710, 720, i.e. a paper-membrane push button 710 in Figure 7 (a) and a paper- membrane slider 720 in Figure 7 (b).
  • the main design rationale behind paper- membrane widgets 710, 720 is to create an electronic circuit 714, 714', 714" between the base layer 713 and back of the top layer 711 and separate them with thin air gap using a paper frame or widget-specific layer 712 that serves as a spacer. Pressing on the top layer 711 connects it to the bottom, closing the circuit 714, 714', 714" and thus realizing a push button.
  • the top layer 711 is powered from the base layer 713 by connecting regions 715, 715' using ECATT-tape 716.
  • a conductive link is provided for connection to the ground 717, as well as a conductive link for digital input 718.
  • a push-button cover 731 is mounted on top of the three-layer stacking.
  • Figure 7 (b) shows the design of a paper- membrane slider 720 in which the principle of a variable voltage divider is applied to measure the position where the top or wiper layer 721 and bottom layer 723 make contact. In between, a widget-specific layer 722 is present, whereas top and bottom layer 721, 723 are provided with electronic circuitry 724, 724'.
  • the resistive strip 729 applied onto the electronic circuit 724' of the bottom layer 723, should have a broad resistance range.
  • resistive strips 729 can be printed (by reducing the opacity, and hence quantity of conductive ink) or drawn using graphite, we noticed that due to wear-and-tear the resistance of these strips 729 often changes at frequently touched spots.
  • resistive 8 mm VHS tape as sensor strip 729, resulting in a more durable paper- membrane slider 720.
  • a slider button cover 732 is mounted on top of the three-layer stacking.
  • paper-membrane widgets are in a certain state only when pressed.
  • multiple paper-membrane push buttons that share a software state can be incorporated in a single widget.
  • paper-membrane widgets are customizable. On the other hand, they do not offer tangibility. Therefore we use pull-chain widgets as discussed next.
  • pull-chain widgets are a further appropriate widget type, drawing inspiration from planar paper pop-up mechanisms. Similar to off-the-shelf widgets, pull-chain widgets provide tangibility but at the same time do not protrude from the surface. While designed entirely out of paper, pull-chain widgets are customizable and blend seamlessly into paper designs. Although pull-strip mechanisms are traditionally used as sliding mechanisms, they can be interpreted as omnivalent pulling mechanisms in the same way as old-fashioned pull chains were used to control electrical appliances, such as light bulbs and fans. In accordance with the invention, Figure 8 shows as an example a few pull-chain widgets, i.e.
  • Figure 9 illustrates further detail of a pull-chain radio button 910, 920.
  • the three-layered stacking structure of this widget is clearly depicted in Figure 9 (a) comprising a top layer 911, a widget-specific layer 912, and base layer 913, however the sequence of the three layers is different, as compared to the paper-membrane widget described above.
  • the top layer 911 is now mounted in between the two other layers 912, 913, and is provided with slots 922.
  • the base layer 913 and the widget-specific layer 912 are provided with conductive links and circuitry 914, 914'.
  • Protruding flaps 916 are applied in the base layer 913 for better connecting the electronic circuitry 914, 914' between base layer 913 and widget-specific layer 912.
  • Pull-chain sliders and radio buttons consist of an analog sensor strip 915, such as e.g. 8 mm VHS resistive tape, and winded circuit traces 914' as in Figure 9 (a).
  • pull-chain radio buttons 910, 920 further use a software threshold to realize discrete states.
  • a button cover 931 is mounted on top of the three-layer stacking; more particularly the measuring indication of this button cover 931 is applied onto the area wherein the resistive strip 915 of the widget-specific layer 912 is entirely included.
  • Figure 9 (b) shows the basic mechanical design of a pull-chain widget 920, consisting of a folded tube structure 923 with a hollow center to ensure strength and rigidity during pulling and pushing motions, slots 922 to guide the pull-strip, a wing tab 921 to lock the pull-strip in place and a pull-tab 924 that functions as handle. While referring back to Figure 9 (a), the pull-strip 912 itself is interwoven in the top layer 911.
  • pull-chain push buttons and switches are similar and consist of conductive patches at specific spots that make an electronic connection when the strips are pushed or pulled. Push buttons, switches and radio-buttons usually employ mechanical detent mechanisms. These techniques however do not transfer to paper since paper is too fragile. To avoid undesired oscillations when widgets are in between states, hysteresis and timeouts are used in software, as further discussed below.
  • the recording approach in accordance with an embodiment of the invention allows users to specify behavior (logic) by demonstrating and recording actions directly in the context of the visual design elements. This preserves the What-You-See-ls-What-You- Get (WYSIWYG) paradigm, which designers are comfortable with from graphical software tools. Demonstrating actions in a graphical user interface, however, is limited to actions that can be defined through the interface of the tool. For example, demonstrating multiple actions that need to happen simultaneously is impractical using a regular mouse and keyboard. Similarly, specifying a set of actions that can be performed in any order, requires demonstrating all possible permutations.
  • the logic recorder 330 augments widgets 301, 302 and the demonstrated actions 321, 322 with dialogs 311, 312 that allow fine-tuning of specific properties, as illustrated in Figure 3.
  • demonstrating actions 321, 322 in the context of visual design elements calibrates the state of the input widget 301, 302 to real world values that are present in the visual design. This makes it possible, for example, to gauge a slider by demonstration, or choose which state of a switch is high or low.
  • the logic recorder 230 supports if-then as well as map-to rules as shown in Figure 2.
  • if-then rules a set of recorded actions (output set) is executed when a set of recorded conditions (input set) has been met.
  • parameters of input set e.g. the number of fulfilled actions in the set
  • parameters of the output set e.g. speed with which the set of actions are executed repeatedly.
  • Both if-then and map-to rules thus relate an input set to an output set.
  • input sets (as determined above) specify conditions that have to be fulfilled.
  • Input sets may therefore consist of one or more conditions related to input or output widgets.
  • Three types of conditions are supported by the recording approach in accordance with further embodiment of the invention, i.e. (i) momentary input conditions, are true for only a very brief amount of time, such as a pressing or releasing a push button; (ii) discrete state conditions are true until the widget switches to another state e.g. the modes of a switch, a discrete brightness value of an LED or the pressed state of a push button; and (iii) continuous range conditions are true when the current value of a continuous input widget is within a specified range, such as a specific range of a slider or the volume range of a buzzer.
  • the embodiment of Figure 5 gives an example of an input set that is fulfilled when a push button 504 is pressed 514 at the same time that a LED 502 lights up 512.
  • Essential here are the timing options offered by input sets. These options allow one to specify conditions that need to be met simultaneously (as is the case here represented by option 520), sequentially or in a random order. When timing options are different for some conditions in the set, these conditions are grouped in separate layers.
  • the recording supports two matching approaches, i.e. the include and the exact matching approach.
  • the include matching approach requires the stream of all incoming events to fulfill the pattern of conditions specified in the input set. Other events, which do not fulfill any conditions in the set, can also be allowed.
  • the exact matching approach on the other hand, does not allow events that do not fulfill any of the conditions in the input set.
  • output sets may consist of one or more output actions.
  • the recording in accordance with the invention may support two types of output actions, i.e. (i) discrete output actions, such as lighting up an LED, setting the digit of a seven- segment display or a monotonic tone of a speaker; and (ii) range output actions specify an output range that has be transitioned.
  • An optional time parameter may be specified by the user. Examples include, fading a LED in or out or realizing a countdown or count- up with a seven-segment display.
  • output sets allow specifying delays between recorded actions via pop-up window 340. Besides this, the loop construct offers the possibility to execute the set of actions multiple times via the option 341.
  • one way to relate input to output sets with the recording approach is using if-then rules. These rules may allow executing or stop/reset an output set when all conditions of an input set are met. Correlations may be indirectly supported using multiple if-then rules. An existing output set may also serve as input set for another if-then rule, thus allowing for nested rules.
  • map-to rules may allow for linear mapping of a derived parameter of the input set to another parameter of the output set. For example, mapping the volume of a microphone or speed with which a push button is tapped to the number of LEDs that light up or the frequency with which they blink.
  • the logic recorder supports numerous derived parameters for both input as well as output sets.
  • the mapping parameter may be different for the input and output set, so many combinations are possible. A few examples are given below.
  • mapping parameter • Value (only for input/output sets that consist of a single continuous range condition): the current value in the range is used as mapping parameter.
  • mapping parameter for input sets the number of fulfilled actions is used.
  • mapping parameter for output sets a corresponding number of actions of the set is executed sequentially.
  • mapping parameter the number of times the conditions in the input set are fulfilled.
  • Time the duration that all actions in the input set remain fulfilled is used as mapping parameter.
  • mapping parameter for input sets the speed with which the input set is repeated is used.
  • mapping parameter for output sets the actions in the set are repeatedly executed at a certain speed.
  • the design tool, the recording logic and the interpreter are implemented in .NET/C#.
  • the interpreter may execute recorded if-then and map-to rules in the test and debug environment as well as on microcontrollers or other programmable components.
  • the implementation is consistent with .Net Micro Framework specifications to ensure its portability to microcontrollers, such as Netduino and Threadneedle or other programmable components. As such, the results observed in the test and debug environment are always consistent with the output from the microcontroller or other programmable components.
  • code is generated with .NET CodeDOM that re- instantiates all objects needed for the specified recording logic.
  • the microcontroller or programmable component runs the generated code and thus initializes all logic.
  • the microcontroller or programmable component may run the interpreter every CPU cycle.
  • the interpreter can keep track of timing information and states of widgets over different cycles to ensure that the output is always correct and independent of the speed of the microcontroller or other programmable component
  • the implementation achieves a modular design that is reusable and extensible by abstracting: (1) widgets according to their input or output type to make the system sensor-agnostic (e.g.
  • the circuit routing method selects intermediate electronic components to connect interactive electronic components to the microcontroller or other programmable component. For example, resistors to control the voltage over LEDs, capacitors for piezo elements, or shift registers for controlling segment displays.
  • the circuit routing method connects both interactive and intermediate electronic components to the microcontroller and other programmable component while taking into account terminal/pin characteristics.
  • Control pins of widgets may often be connected to multiple pins on a microcontroller or other programmable component. This will depend on the input or output signal that is required. For example, the anode of an LED may be connected to any PWM pin. However, if binary output suffices, a digital pin may be used.
  • the routing algorithm takes this into account and first uses the specified logic to assign a set of valid control pins to every widget. The algorithm may then select those pins that maximize the number of widgets that can be connected given the limited set of pins on the microcontroller or other programmable component.
  • the auto-routing method may favor those pins which, when routed, have the lowest number of intersections with other traces. Therefore, in an embodiment of the invention the auto-routing method generates a plurality of pin assignments; and thereafter selects this pin assignment maximizing the amount of pins that can be connected to the microcontroller or other programmable component.
  • the circuit routing method employs an auto-routing method that allows for interrupted links (to be solved by use of a bridge during assembly) and in a preferred embodiment the auto-routing method generates those descriptions leading to a minimized number of interrupted links.
  • An auto-routing algorithm is employed to generate conductive traces that connect the pins exposed by interactive and intermediate electronic components to the pins of a microcontroller or other programmable component.
  • a variation of the A* algorithm is implemented in which traces can make junctions with other traces that connect to the same pin.
  • the routing algorithm finds the shortest path between all connected terminals/pins on a 2D canvas and may avoid other conductive traces as well as the instructions that are printed.
  • the algorithm may interrupt one of the intersecting traces leaving place for a bridge-type circuit- sticker.
  • series of morphological filter operations are used in every step of the A* algorithm. These filters give weights to every cell of the 2D canvas to ensure the spacing (and thus isolation) between all circuit traces and components. In addition, these filters further maximize the spacing between all pairs of circuit traces to allow for placing bridges over traces when the circuit is non-planar.
  • the circuit generation algorithm is extended allowing even more components to exist in a single design by incorporating (GPIO) multiplexing strategies, and thereby further enriching interactive paper designs.
  • the widget families are extended including more popup mechanisms and exploring the possibility to include a widget editor in the design tool to customize paper widgets further.
  • the auto-routing method optimizes the usage of the electronic components.
  • sharing of pins on the microcontroller or other programmable component is used for such purpose by the method.
  • the design tool in accordance with an embodiment of the invention, gives users the impression that the final design consist of a single sheet of paper, every widget adds content to multiple sheets.
  • These sheets may consist of conductive traces, visual design elements, and instructions for attaching components, or cutting, folding, and gluing of paper.
  • Each type of instruction can have a unique style, such as dotted lines for cutting, dashed lines for folding, and hatched regions for gluing.
  • the design in accordance with an embodiment of the invention consists of three sheets of paper, some sheets (i.e. the top layer) may also have information present on the back of the paper while others may require conductive as well as non- conductive information on the same page. Therefore, multiple PDF files (for example 5) can be generated for the design using e.g. a particular library.
  • the tutorial may assist users to print these files using a conductive inkjet printer or a regular color printer for non-conductive elements.
  • Conductive traces can be rendered on PDF files using vector graphics to preserve the quality and maximize its conductivity.

Abstract

Design and fabrication methods, related systems and computer hardware and software are provided, enabling designers without any technical background to produce stand-alone paper artifacts augmented with electronics.

Description

AUTOMATED DESIGN AND GENERATING OF AN ELECTRONIC SYSTEM ON A FLEXIBLE
SUBSTRATE
Field of the invention The invention relates to methods, related systems, computer program products and related carriers thereof for generating descriptions and code in relation to an application, executed on an electronic system, and further various uses of the generated descriptions (such as for fabricating or assembling the electronic system) and generated code (such as for uploading on a portion of the electronic system to execute the application or use of simulation purposes).
Background of the invention
Interest is growing in making visual designs, on flat and flexible substrates, interactive by augmenting them with electronics. Commercially available hardware and fabrication tools make it possible to produce low-cost paper versions of PCBs in lab environments and bring liveness to paper artifacts such as books and posters. Although advancements in fabrication tools for electronic circuits, such as conductive pens, threads, inkjet printers, and vinyl cutters make it accessible for many people to build these paper circuits, a vast majority lacks expertise in electronics and programming required to add interactivity using electronic circuits.
To make electronics available for designers, prior arts have created construction kits targeting programmers, and provided modules to rapidly build hardware prototypes. However, these kits are often bulky and expensive. Thus, for instance, it is not feasible to create interactive greeting cards that can be handed out, or games that are seamlessly integrated into paper. Some design tools make it easier for designers to link sensor data to application logic through programming by demonstration. However, these tools require users to have some exposure to programming languages. Additionally, they do not allow for stand-alone systems since they assume hardware sensors to be connected to a desktop computer at all times. While circuit building and programming skills can be instructed to non-experts through workshops and tutorials, adding electronic circuits to paper is not yet as convenient as adding visual designs on paper with common graphical software tools.
While any of the existing design and fabrication tools mentioned above partially provide a paper solution augmented with electronics, this is not true for electronic systems entirely made on a paper substrate, especially not in a fashion for users who are not experts in electronics and/or programming. There is a need for a design and fabrication approach that enables designers without any technical background to produce stand-alone paper objects or artifacts integrated with electronics.
Aim of the invention
It is the aim of the invention to provide end-to-end solutions for designing and creating electronic systems, made on a substrate, especially for users not being experts in electronics and/or programming.
Summary of the invention
The invention provides end-to-end solutions for designing and creating electronic systems, made on flexible and/or flat substrates, which are cheap and easy to make and are enabling the providing of electronic connectivity, such as paper or (transparent) foils. The invention is further described in essence for paper substrates but applicable to the other substrates discussed above.
In a first aspect of the invention, a method is provided for generating descriptions, at least in part being suitable for use or more specifically interpretable by a printer, for generating a printed paper comprising of conductive links or circuit routes (either by directly having complete conductive links, realizing a circuit or just sufficient to enabling the user to fill those by use of conductive pens), wherein said circuit routes are connected with a selection of electronic components (e.g. intermediate electronic components to be intermediate between said interactive components and a microcontroller -as discussed further) , and herewith forming after assembly onto said printed paper a stand-alone electronic system. This method, further referred to as description generating method, is provided for, as part of creating an application and related electronic system made on a paper substrate, wherein the electronic system comprises of a plurality of (interacting) electronic components amongst the selection of electronic components that are connected by conductive links. The generated standalone electronic system is a completely interactively computing system. The printer is either filled with conductive ink, to print functional circuits, or regular traces, to be colored by hand subsequently using conductive ink. Hence, the conductive circuit routes are created on the paper substrate either directly or manually e.g. with a conductive pen.
For the description generating method according to the present invention, at least one of the electronic components is an interactive element, i.e. an input or output element, meaning that users (of the electronic system) can interact directly with the interactive element (input or output element - also further called I/O widgets), meaning can give inputs to the electronic system or can experience an output by the electronic system. More in particular the method is adapted for the use of input elements of different kind or type. I n an embodiment of the invention at least one of said electronic components is an output element.
For the description generating method according to the present invention, at least one of the electronic components is a microcontroller, more in particular the method is adapted in that the descriptions can be generated for use with a plurality of microcontrollers of which one is selected. Instead of a microcontroller, another programmable component such as e.g. a FPGA may also be used as general purpose computing device.
For the description generating method according to the present invention, at least one of the electronic components is capable to power the electronic system (e.g. a battery or alternative components like a PV cell).
The description generating method according to the present invention provides automated generation of mentioned descriptions, suitable for use or interpretable by a printer, that are (only) based on the information received (from a user or designer) previously (via a graphical user interface), such information being an arrangement of visual elements, a plurality of interactive electronic components amongst the selection of electronic components including integration of those within the arrangement, and optionally (and most preferably with) the behavior (logic) to be experienced by use of the electronic system (provided by the user as a stimulus and response with interactive electronic components).
In an embodiment of the invention, the description generating method provides for (entirely) paper designed interactive electronic elements, which enables customizability and/or seamless integration with the paper. More in particularly, templates (more in particular parametric templates since the user can still change some properties of them e.g. size + background image) of such paper designed interactive electronic elements are provided avoiding folding of conductive links, as those are in general experienced as rather brittle.
In an embodiment of the invention a plurality of interactive electronic components received from said user are selected from provided templates of such interactive electronic elements. In a further embodiment thereof the parameters (size, visual design) of said templates of interactive electronic components are defined by the user.
In an embodiment of the invention the methods are adapted to be capable of handling circuits wherein at least one or more of said interactive electronic components are either a paper-membrane widget (button or slider) or pull-chain widget (printed on paper) (button, switch, sliders, radio button).
In a second aspect of the invention, a method is provided for generating simulation code, for simulating a stand-alone electronic system (in a simulator) formed after assembling a selection of electronic components, which are connected with conductive links provided on a printed paper. This method, further referred to as simulation code generating method, creates simulation code simulating the electronic system on a computer system.
The simulation code generating method according to the present invention provides automated generating of simulation code, suitable for use or operable by a microcontroller or other programmable component, based on what is received from a user or designer previously. More in particular, the simulation code generating method provides a way to input the behavior (logic) to be experienced by use of the electronic system (e.g. the user only has to specify logic in terms of input that a user gives to the system and output that he will observe as a result (i.e. use case diagrams). I n an embodiment of the invention the behavior (logic) is being modeled by if-then rules and/or map-to rules. In a third aspect of the invention, a method is provided for generating execution code, for executing a stand-alone electronic system formed after assembling a selection of electronic components, which are connected with conductive links provided on a printed paper. This method, further referred to as execution code generating method, is provided for creating code to be executed on an electronic system as described above, more in particular the microcontroller or the like.
According to an embodiment of the invention, the simulation code and execution code are very related (in terms of structure). Note that within the simulator however, no noise filtering is applied to the input signal. Having an identical code is e.g. the case when the program is running in the same language as the code is operated on the microcontroller or other programmable component. For another embodiment of the invention, other microcontrollers or other programmable components operable in other code languages are supported, and therefore an additional translation step from simulation code to execution code may be required. Hence, according to an embodiment of the invention, the execution code generating method is provided with automated generating of simulation code first, and includes a further step of automated adapting the simulation code into the execution code, suitable for use or operable by a microcontroller or other programmable component, being part of the electronic system.. I n particular this step of automated adapting takes into account the physical aspects of the electronic system, especially occurring in the one or more interactive components of the electronic system, and therefore additional code may be included for providing hysteresis, time outs, smoothing or thresholding.
Note that while the interactive components are selected by the user or designer as they are part of the application or animation he or she is creating, the microcontroller or other programmable component, although surely present in the electronic system is not necessarily selected in the sense that the user or designer positions this components while designing. He may and preferably does choose the type though upfront. He may also elect to also position this component (to make it part of this visual design though).
In an embodiment of the invention the execution code generating method provides for code, taking into account that electronic oscillations that may occur when using the paper designed interactive elements must be avoided, by using hysteresis and/or time outs.
The execution code generating method according to the present invention provides automated generating of code, suitable for use or operable by a microcontroller or other programmable component, based on the information received previously (via a graphical user interface), i.e. an arrangement of visual elements, a plurality of interactive electronic components including integration of those within the arrangement, including the behavior (logic) to be experienced by use of the electronic system, executing the code and providing automated inference of code from such behavior.
Generally speaking the user specifies logic in terms of what a user inputs to the system (buttons pressed, sliders moved, ...) and what the system will do as a result (e.g. turning an LED, buzzer on, posting a tweet on twitter,...). Various possibilities to do this exist and can even be combined.
In an embodiment of the invention one of the above (description, simulation or execution) methods is provided as a way to input a recording approach, and therefore receiving from the user or designer one or more executions expected from the electronic system is performed by recording (by use of representations or models of one or more of the interactive electronic components). More in particular for every logic rule that said user wants to record, said user demonstrates one or more states or transitions of said interactive electronic components that are involved. In an embodiment of the invention one of the above (description, simulation or execution) methods comprises an additional step of receiving from the user an input or output type of one or more of the interactive electronic components. In a preferred embodiment the timing options thereof and matching approaches are an important characteristic of the input or output type of one or more of the interactive electronic components. The timing options (e.g. delays for flickering an LED) as mentioned are related to the component itself, whereas the matching approaches rather refer to the behavior (logic).
In an embodiment of the invention one of the above (description, simulation or execution) methods make use of interactions between a plurality of input elements and a plurality of output elements (and involved intermediate electronic components and microcontroller)(as comparable with M I MO = multiple input, multiple output known in the art).
In an embodiment of the invention both (simulation and execution) codes are representative for an interpreter, operable both on a computer system (executing corresponding method) and a (selected) microcontroller of the electronic system (as created) or other programmable component as designed.
In a fourth aspect of the invention, a method is provided of simulating a stand-alone electronic system formed after assembling a selection of electronic components, which are connected with conductive links on a flat and/or flexible substrate like a printed paper. This method comprises the following steps: (i) obtaining the simulation code as generated by the simulation code generating method as determined above; (ii) receiving a stimulus from a user via a graphical user interface, wherein a representation of the electronic system is shown; (iii) automated computing of a response of the electronic system to the stimulus by use of the simulation code and showing the response within the representation of the electronic system via the graphical user interface. The stimulus as mentioned is defined as a type of input via which the simulation can be activated. Therefore, the stimulus needs to be triggered or driven in order to perform the simulation.
In a fifth aspect of the invention, a so-called integrated method is provided for creating both an electronic system as described above and code to be executed on such electronic system.
In an embodiment of the invention, a method is provided for generating descriptions, at least in part being interpretable by a printer, for generating conductive links onto a printed paper, wherein said conductive links are connected with a selection of electronic components, and herewith forming after assembly onto said printed paper a stand-alone electronic system, said method comprising: (a) receiving from a user an arrangement of visual elements; (b) receiving from said user a plurality of interactive electronic components and an integration of those within said arrangement; (c) receiving from said user one or more executions expected from said electronic system and (d) automated generating of said descriptions for generating conductive links onto said printed paper, based on what is received from said user in step (a), (b) and (c).
In an embodiment of the invention, the description of the conductive links, that will be realized after use by a printer (either filled with conductive ink or generating regular traces to be colored by hand using a conductive ink) interpreting this description, is automatically generated by use of an auto-routing method, for computing the conductive links between the electronic components, i.e. more in particular the interactive electronic elements, and the microcontroller or other programmable component, and wherein the auto-routing method uses the behavior (logic) inputted.
In an embodiment of the invention, the description of the conductive links, that will be realized after use by a printer (either filled with conductive ink or generating regular traces to be colored by hand using a conductive ink) interpreting this description, is automatically generated by (i) auto selection and positioning of intermediate electronic components (ii) Interconnecting the terminals/pins of intermediate electronic components, interactive electronic components and a microcontroller and (iii) further auto-routing: determining the shortest path between all connected terminals/pins on a 2D canvas while minimizing the number of intersecting circuit traces. Additional intermediate electronic components i.e. zero-ohm resistors/bridges can be used to resolve overlapping circuit traces for non-planar circuit graphs.
In an embodiment of the invention, a method is provided for generating descriptions, the method for generating simulation code and the method for generating execution code are computer implemented or computer assisted methods and hence are operable or operated on a (distributed) computer system. In an embodiment of the invention, steps (a), (b) and (c) in methods above are performed on a first computer (for instance using a web browser), transmitting the received information to a second computer, performing step (d) and transmitting back the generated description or codes to the first computer.
In an embodiment of the invention the user may want to start from an already designed stand-alone electronic system in accordance with the invention and generate simulation or execution code therefore with a method comprising: (i) loading a representation of said electronic system (in a computer system) and (ii) receiving (in said computer system) from said user one or more executions expected from said electronic system and (iii) automated generating (by said computer system) said simulation or execution code, based on what is received from said user in step (ii) and said loaded representation. As the circuit design most probably may be affect by the required executions or behavior, only a partial reuse may be possible and hence further automated circuit generation steps might be needed. In the above embodiments the use of at least one programmable component, like a microcontroller, for executing execution code, generated in accordance with the invention, is described. However the invention is not limited thereto. Besides readily available programmable components, also so-called field programmable gate arrays exists which upon receipt of configuration information, typically specified using a hardware description language (HDL), can behave as a programmable component. I n an alternative embodiment of the invention a method is provided for generating configuration information suitable for at least one field programmable gate array, being part of a stand-alone electronic system formed after assembling a selection of electronic components which are connected with conductive links provided on a printed paper, said method comprising: (a) receiving (in a computer system) from a user an arrangement of visual elements; (b) receiving (in said computer system) from said user a plurality of interactive electronic components and an integration of those with said arrangement; (c) receiving (in said computer system) from said user one or more executions expected from said electronic system and (d) automated generating (by said computer system) of said configuration information, based what is received from said user in step (a), (b) and (c).
In an alternative embodiment of the invention one may even choose to have a nonprogrammable application specific component (ASIC) or an application specific programmable component (ASIP). I n such embodiment a method is provided for generating design information suitable for electronic design automation methods for further designing (and later manufacturing) an ASIP or ASIC, being part of a stand-alone electronic system formed after assembling a selection of electronic components which are connected with conductive links provided on a printed paper, said method comprising: (a) receiving (in a computer system) from a user an arrangement of visual elements; (b) receiving (in said computer system) from said user a plurality of interactive electronic components and an integration of those with said arrangement; (c) receiving (in said computer system) from said user one or more executions expected from said electronic system and (d) automated generating (by said computer system) of said design information, based what is received from said user in step (a), (b) and (c). In any of the above described embodiments one may choose to start from an already designed stand-alone electronic system in accordance with the invention and generate configuration or design information as described above with a method starting with loading a representation of said electronic system (in a computer system) instead.
In an embodiment of the invention in the stand-alone electronic system, comprising a selection of electronic components which are connected with conductive links on a printed paper, with one or more interactive electronic components and at least one programmable component (e.g. a microcontroller or FPGA or ASI P), uploaded with execution code or alternatively an ASIC, at least one further electronic component is provided for (wireless) communication (e.g. a WIFI or NFC or Bluetooth) at least in a range broader than the printed paper. I n an embodiment of the invention, an arrangement or system is provided comprising of a plurality of the above outlined stand-alone electronic systems and operably connected via their respective one further electronic component provided for (wireless) communication. The respective code, configuration or design information is then generated by receiving (in a computer system) from the user of said arrangement one or more executions expected from entire arrangement instead. Note that the stand-alone electronic systems do not have to be entirely equal. On the contrary one may choose to have one more performing system as a master system and others being less performing acting as slaves.
For sake of clarity with stand-alone electronic system is meant a complete interactively computing system in the sense that no other communication beyond the paper system is necessary for having a full operable system, or that no other communication (e.g. from pc or mobile device) to the various paper artifacts is needed for having a full operable system. This is not in contradiction with the above embodiment wherein said stand-alone electronic system is also adapted for enabling external communication in that such external communication is not needed for having a full operable system. It is the presence of the one programmable component (e.g. a microcontroller or FPGA or ASIP), uploaded with execution code or alternatively an ASIC on the paper which ensures this. No other device like a PC or mobile is needed.
For further sake of clarity it should be emphasized that the methods distinguish between a plurality of interactive electronic components chosen by the user and any other electronic components, together with the these interactive electronic components, forming the stand-alone electronic system. Given that besides the choice of the interactive components the user only further inputs the behavior, the methods do have to determine automatically one or more of these other electronic components and since those are not under control of the user the automated step also positions them and interconnect those. In the preferred embodiment, wherein a microcontroller or other programmable component (elected for instance its type but not necessarily positioned) is used, the other electronic components can be denoted intermediate components, intermediate said interactive components and the microcontroller or other programmable component.
Description of the drawings
Figure 1 illustrates general process flow the design and fabrication process of a standalone electronic system assembled onto a printed paper, in accordance with the present invention.
Figure 2 illustrates an embodiment of the graphical user interface for the design tool, in accordance with the present invention. Figure 3 illustrates an embodiment of how to link the behavior (logic) to be experienced by use of the electronic system with one of the interactive electronic components, in accordance with the present invention.
Figure 4 illustrates an embodiment of a simulator, simulating a stand-alone electronic system, thereby enabling testing of recorded behavior (logic), in accordance with the present invention.
Figure 5 illustrates another embodiment of how to link the behavior (logic) to be experienced by use of the electronic system with one of the interactive electronic components, in accordance with the present invention. Figure 6 illustrates detailed flow diagram of the design and fabrication process of a stand-alone electronic system assembled onto a printed paper, in accordance with the present invention.
Figure 7 illustrates an embodiment of paper designed interactive electronic components, i.e. paper-membrane widgets, in accordance with the present invention. Figure 8 illustrates another embodiment of paper designed interactive electronic components, i.e. pull-chain widgets, in accordance with the present invention.
Figure 9 illustrates an embodiment of a pull-chain widget, in accordance with the present invention.
Detailed description
The invention relates to methods, related systems, computer program products and related carriers thereof for generating descriptions and code in relation to an application, executed on an electronic system, and further various uses of the generated descriptions (such as for fabricating or assembling the electronic system) and generated code (such as for uploading on a portion of the electronic system to execute the application or use of simulation purposes), more in particular at least part of said descriptions, are being interpretable by a printer, for generating a printed paper or substrate, even in particular to enable creation of conductive links or circuit routes thereon (either directly printed or later filled by the user). In essence this type of descriptions define circuit designs and/or electronic layouts. It must be emphasized that the conductive links or circuit routes may be directly providing complete conductive links, realizing a circuit or just sufficient to enabling or guide the user to fill those by use of conductive pens. The invention relates to automated design methods used for generating or creating an on-paper realized electronic system, meaning that paper is used as support for various electronic components, and optionally one or more of these electronic components are made of paper themselves (e.g. by use of a plurality of overlaid paper layers). The invention relates to computer assisted or computer implemented methods, related systems, computer program products and related carriers thereof for generating descriptions or representations (suitable for generating the electronic systems or parts thereof, in particular one or more printer paper sheets, hence at least one or more of these descriptions or representations are readable by hardware like a printer) and code in relation to an application, executed on an electronic system, and further various uses of the generated descriptions (such as for fabricating or assembling the electronic system) and generated code (such as for uploading on a portion of the electronic system to execute the application or use of simulation purposes).
The present invention enables designers without a technical background to make traditional designs on paper interactive by seamlessly integrating I/O components and microcontrollers or other programmable components, herewith enriching any paper design, from books, posters, and business cards to ephemeral packaging material and flyers. Although electronic circuits generated according to the present invention can be fabricated using various techniques (e.g. a conductive pen, vinyl cutter), the circuits are optimized for printing on resin-coated paper (more in particular one layered resin- coated paper) using a conductive inkjet printer. To finalize the printed circuit, electronic components, such as resistors, buttons, switches, and LEDs, are generally attached using ECATT-tape or conductive paint or even custom-made stickers. However, the paper circuit, i.e. paper substrate comprising conductive links, can also be used as a paper PCB onto which wires are soldered instead of using conductive paint or ink for connecting the PCB to input and output components, hence realizing any type of electronic system. Further, different types of microcontrollers or other programmable components can be used. Either their pins connect to paper circuits using bulldog clips, or else flat connection pins seamlessly connect to the circuit printed on paper.
With the present invention, an integrated design and fabrication approach allows non- expert users or designers to seamlessly integrate electronics in visual designs on paper, enabled by a design tool, a demonstration or behavior or logic specification technique, and a set of interactive components suitable for paper. The design tool is used to integrate visual designs with electronics, and specify, test, and debug behavior (logic) between interactive electronic components. Moreover, this tool assists by automatically generating circuits, layers, pages, and instructions to help assembling the final paper artifact. With these techniques, non-programmers are enabled to specify behavior (logic) between basic electronic sensors and actuators. The interpreter runs in a simulator integrated into the design tool and on supported microcontrollers or other programmable components. In order to get designers started and provide them with a set of interactive components suitable for paper, a few types of standard interactive widgets are for instance provided, each of which may consist of multiple standard controls, such as push buttons, switches, sliders, and radio buttons, for an overall number of at least 20 different interactive input and output components. In accordance with the present invention, Figure 1 illustrates general process flow 100 comprising main actions of the design and fabrication process of a stand-alone electronic system assembled onto printed paper, or in short interactive paper artifacts. The first action 101 is called 'design and specify behavior (logic)', meaning that a user adds interactive elements (e.g. push buttons, sliders, LEDs, microphones) to the visual design and specifies the behavior (logic) between components by demonstration, for generating instructions and code based on this design and behavior (logic) specified for example by means of recording. Next, during a second main action 102, different layers, consisting of visual elements and electronic circuits are printed using an inkjet printer filled with conductive ink. By following step-by-step instructions as generated, the user assembles the different parts, as represented by main action 103. Further, as depicted by main action 104, the generated execution code is directly uploaded to the microcontroller or other programmable component attached to the paper. Referring to the final phase 105, the design has been completed and can now be used as a stand- alone interactive artifact. Optionally, between the first and second main action 101, 102 a simulation is performed.
Figure 2 shows an embodiment of the graphical user interface 200 for the design tool, in accordance with the present invention. A user can initiate a new design, by selecting the page setup button 201 in the top left corner of the interface 200. The user can hence start specifying the dimensions of the paper design. By means of the open button 202 next to the page setup button 201, an earlier saved design can be uploaded. Further a new design that is created can be saved using the save button 203 right from the open button 202. The GUI 200 further allows to import pre-designed visual elements 211, i.e. images, by means of the insert image button 204 and to arrange them onto the canvas 210. Further, the user overlays the design with interactive components 212, e.g. a pull switch 221, a push button 222, LEDs 223 and a buzzer 224, available in the widget toolbox 220, depicted left from the design canvas 210. To give users a better idea of the look and feel of different components, tooltips with video previews (not shown) are available in the widget toolbox 220. For specifying the behavior (logic) between components by demonstration, the buttons, fields and windows of the logic recorder 230 and recorded logic 240 are provided. Using the logic recording according to the present invention, users interact directly with the visual representations of I/O widgets, and not with abstract variables or pins. The logic recorder 230 is foreseen with if-then and map-to recording fields and buttons 231, 232 respectively, whereas the recorded logic window 241 depicts the event sequences that are chosen, in case of either if-then or map-to recording. By means of the simulate button 205 the design can be simulated, and hence a stimulus is provided for initiating the simulation. By means of simulation, bugs can be detected and removed from the design.
In an embodiment of the invention the preference of use of only a graphical user interface for design and specification, meaning that the automated generating of descriptions and/or code are only based on the information received therefrom, is emphasized. More in particular the limitations of such approach, i.e. difficulty to handle simultaneous actions and handling actions that can occur in any order, are recognized and solved by providing extra input options, such as a dialog, for fine tuning specific parameters such as the type of input or output of an interactive element, the timing options thereof and matching approaches for the inferred logic. With the following walkthrough referring to a paper game, the process of designing and fabricating in accordance with the present invention is further described. The game consists of a loop of six LEDs that consecutively turn on and off. The objective of the game is to "grab the banana" by pressing a button at the moment when a particular LED lights up. A buzzer rings for a short duration each time the player succeeds in doing so. More in particular, defining and verifying the behavior (logic) between components are now explained, referring to simplified versions of illustrations that are related to the paper game. According to a paper game embodiment of the invention, Figure 3 illustrates how the user links the switch 301 to the loop of LEDs 302, to start the game. First referring to Figure 3 (a), the user starts a new input recording 336 in the if-part 335 of the logic recorder 330. The user demonstrates the switch changing to the On' state as indicated by 321 using the switch widget pop-up window or dialog 311 on the canvas. As depicted in Figure 3 (b), the user then starts a new output recording 338 in the then- part 337 of the logic recorder 330. The user demonstrates the blinking pattern of the LEDs 302 by turning their brightness consecutively to 100% and back to 0% as indicated by 322 via the LED widget pop-up window 312. Next, the user specifies the timing for these recorded actions by setting them in the timing pop-up window 340 and also specifies the looping behavior by setting the loop option 341. When after confirmation via confirm button 350 a new if-then rule is created, the design tool automatically infers the behavior for the Off state of the switch.
To verify the recorded rule, for a paper game embodiment in accordance with the present invention, the user starts the simulator 345 as depicted in Figure 3 (a) to interact with the widgets 401, 402, 403, 404, and observes the corresponding output 411, 412, 413, 414, within the design canvas 410 as illustrated in Figure 4. By observing fulfilled conditions and executed actions in the debug view 450 of the design tool view 400, the user can identify possible mistakes in the recorded rules. Next, according to a paper game embodiment of the invention, the user can record the logic for the "grab now" button. If pressed at the moment the LED under the monkey (i.e. LED4) lights up, the buzzer should ring to indicate that the game is completed. Figure 5 illustrates the recording of this behavior. First, the user records the if-part 535, 536 of the logic recorder 530 by demonstrating through window pop-ups 512, 514 the button press 504 and turning the brightness of LED4 502 to 100%. The recording is fine- tuned by specifying that the two conditions need to be satisfied simultaneously by option 520. The user records the then-part 537, 538 of the logic recorder 530 by turning the volume of the buzzer to the desired intensity via pop-up window 539. Next, the user specifies in the timing pop-up window 340 the timing of the output action i.e. buzzer ringing for instance to ensure that the buzzer stops after a given time. Referring back to Figure 4 now, when simulating the design, the switch 401 is put in On' status 411, and whenever LED4 402 is put in On' status 412, the buzzer 403 is in ringing status 413, and the "grab now" button 404 should be in pressed status 414 in order to complete the game.
According to an embodiment of the present invention, once the design including behavior (logic) step 101 as in Figure 1 is complete, the user is supposed to specify the position of the microcontroller or other programmable component, and will also verify that electronic connection pins for the widgets do not overlap. The user adjusts widgets (e.g. in position, size or orientation) if necessary.
For an embodiment in accordance with the present invention, the printing process 102 as in Figure 1, can be further specified while generating the following: (1) An electronic circuit that connects widgets to pins on the microcontroller or other programmable component while limiting the number of intersecting circuit traces; (2) PDF files consisting of the electronic circuits, widget-specific assembly lines (e.g. cut lines, fold lines), and visual elements; (3) the microcontroller code as generated; and (4) a customized tutorial to guide the user through the printing, deployment, and assembly. More in particular, when following the tutorial, the user will be instructed to print the generated PDF files on three sheets of paper, using a conductive inkjet and a color printer, as required. Referring to process stage 104 in Figure 1, the user will also upload the generated code to the microcontroller or other programmable component and uses ECATT tape to attach bridges (zero-ohm resistors) or alternatively the invented custom bridge electronic sticker at intersecting traces that could not be resolved by an auto-routing algorithm. The remainder of the tutorial provides instructions to for example cut, fold and glue layers of paper, attach electronic components, such as LEDs, resistors, and attach the microcontroller or other programmable component, and herewith assemble the electronic system as referred to in Figure 1 by action 103. The resulting product can be used as a stand-alone paper artifact, e.g. after connecting a battery. A more detailed flow diagram of the design and fabrication process 600 of a standalone electronic system 690 assembled onto a printed paper, in accordance with the present invention, is illustrated in Figure 6. As depicted within the input frame 605, collecting the input for the design, a set of visual elements are received from a user, including a plurality of (paper-designed) interactive electronic components or widgets and the integration of those within the visual design, together defined as input 610. Based upon this input 610 the descriptions 625 for generating printed paper (at least comprising conductive links) might yet be generated. Preferably however, the descriptions 625 are generated in the step 620 not only by the input 610 for the design, but are also based on the behavior (logic) that is specified and recorded as extended part of the design stage, together defined as input 615. This behavior (logic), i.e. one or more executions expected from the interactive paper artifact as final product, is also required for generating the simulation code 635 and the execution code 645 in the respective steps 630, 640. The printing and assembly process 650 will follow whenever automated generating is achieved of the descriptions 625 for generating printed paper comprising conductive links, but generally also instructions and visuals. As a result of this printing and assembly process 650, printed and assembled circuits, widgets and visuals 655 are delivered. With the simulation code 635, the simulator 680 may simulate the design including its behavior (logic). Based upon the simulation and/or execution code, a programmable component 665 may be designed and manufactured during stage 660 using Electronic Design Automation (EDA) or the like in case of use of configuring of field programmable gate arrays. As indicated by the dashed lines in Figure 6, the execution code 645 is then uploaded on the programmable component 665 or a microcontroller 670 instead as directly received from the user. The combination and final assembly of printed and assembled circuits, widgets and visuals 655, and the programmable component 665 and/or microcontroller 670 uploaded with execution code 645, is representing the electronic system 690 as designed, thereby creating an interactive paper artifact. It is further noted that optionally, the execution code 635 can be derived from the simulation code 645.
Appropriate input and output widgets, suitable for paper designs, are required, and therefore, according to an embodiment of the invention, three families of standard widgets are proposed in order to realize basic controls such as push buttons, switches, sliders, and radio buttons. Each family is unique in its own way, and provides some strengths to distinguish itself from the others. The assembling strategy for each of the three widget families is different, and consists of different numbers of layers. To allow widgets of all three families to co-exist in a single design, a uniform layering approach is presented comprising a base layer, a widget-specific layer (where needed), and a top layer. This layering approach is also vital for the seamless integration of electronics and visual elements, since all conductive traces are concealed. The widget design ensures that all conductive lines are traced back to the base layer, which is connected to the microcontroller or other programmable controller.
According to an embodiment of the invention, one of the widget families is determined by off-the-shelf widgets, such as off-the-shelf input sensors and output components. Some of the components expose flat connection pins on the bottom (surface-mount devices or SMDs) and therefore are attached directly to paper using ECATT-tape. Components that expose regular connection pins (through-hole components) are extended with female crimp terminals and attached to paper using conductive paint to increase the strength of connections. Support can be provided for so-called Circuit Stickers, making it easier for users to attach off-the-shelf components on the circuit. The Circuit Stickers technique involves adhering physical interface elements such as LEDs, sounders, buttons and sensors onto a cheap and easy-to-make substrate providing electrical connectivity. Small and cheap flexible PCBs with components thereon can be fabricated as stickers. These stickers are a bit bigger than the component itself and have a bigger contact area with the paper circuit, so they are more reliable and easier to attach. Although off-the-shelf widgets require only little manual assembly, they have a fixed design and often protrude from the surface. When augmenting paper designs with electronics, in accordance with the invention, it is often desirable to resize components and integrate them seamlessly with visual elements on paper. This is rather accomplished with either of the other two widget families, i.e. representing paper- membrane widgets and pull-chain widgets respectively.
For an embodiment according to the invention, Figure 7 shows two paper-membrane widgets 710, 720, i.e. a paper-membrane push button 710 in Figure 7 (a) and a paper- membrane slider 720 in Figure 7 (b). The main design rationale behind paper- membrane widgets 710, 720 is to create an electronic circuit 714, 714', 714" between the base layer 713 and back of the top layer 711 and separate them with thin air gap using a paper frame or widget-specific layer 712 that serves as a spacer. Pressing on the top layer 711 connects it to the bottom, closing the circuit 714, 714', 714" and thus realizing a push button. The top layer 711 is powered from the base layer 713 by connecting regions 715, 715' using ECATT-tape 716. For the electronic circuit 714', 714" printed on the base layer 713 a conductive link is provided for connection to the ground 717, as well as a conductive link for digital input 718. A push-button cover 731 is mounted on top of the three-layer stacking. Figure 7 (b) shows the design of a paper- membrane slider 720 in which the principle of a variable voltage divider is applied to measure the position where the top or wiper layer 721 and bottom layer 723 make contact. In between, a widget-specific layer 722 is present, whereas top and bottom layer 721, 723 are provided with electronic circuitry 724, 724'. To increase sensor resolution, the resistive strip 729 applied onto the electronic circuit 724' of the bottom layer 723, should have a broad resistance range. Although resistive strips 729 can be printed (by reducing the opacity, and hence quantity of conductive ink) or drawn using graphite, we noticed that due to wear-and-tear the resistance of these strips 729 often changes at frequently touched spots. For paper-membrane sliders 720, we therefore use resistive 8 mm VHS tape as sensor strip 729, resulting in a more durable paper- membrane slider 720. A slider button cover 732 is mounted on top of the three-layer stacking.
Unlike off-the-shelf radio buttons, paper-membrane widgets are in a certain state only when pressed. To support radio buttons and switches, multiple paper-membrane push buttons that share a software state, can be incorporated in a single widget. In contrast to off-the-shelf widgets, paper-membrane widgets are customizable. On the other hand, they do not offer tangibility. Therefore we use pull-chain widgets as discussed next.
Representing the third widget family, in accordance with an embodiment of the invention, pull-chain widgets are a further appropriate widget type, drawing inspiration from planar paper pop-up mechanisms. Similar to off-the-shelf widgets, pull-chain widgets provide tangibility but at the same time do not protrude from the surface. While designed entirely out of paper, pull-chain widgets are customizable and blend seamlessly into paper designs. Although pull-strip mechanisms are traditionally used as sliding mechanisms, they can be interpreted as omnivalent pulling mechanisms in the same way as old-fashioned pull chains were used to control electrical appliances, such as light bulbs and fans. In accordance with the invention, Figure 8 shows as an example a few pull-chain widgets, i.e. from left to right a pull-chain push-button 810, switch 820, slider 830 and radio button 840 using a crossing interaction technique. According to an embodiment of the invention, the mechanisms used for pull-chain widgets are optimized for tracking with electronic circuits printed on paper. These conductive traces are often brittle and cannot span across folded structures. Figure 9 illustrates further detail of a pull-chain radio button 910, 920. The three-layered stacking structure of this widget is clearly depicted in Figure 9 (a) comprising a top layer 911, a widget-specific layer 912, and base layer 913, however the sequence of the three layers is different, as compared to the paper-membrane widget described above. The top layer 911 is now mounted in between the two other layers 912, 913, and is provided with slots 922. The base layer 913 and the widget-specific layer 912 are provided with conductive links and circuitry 914, 914'. Protruding flaps 916 are applied in the base layer 913 for better connecting the electronic circuitry 914, 914' between base layer 913 and widget-specific layer 912. Pull-chain sliders and radio buttons consist of an analog sensor strip 915, such as e.g. 8 mm VHS resistive tape, and winded circuit traces 914' as in Figure 9 (a). Moreover, pull-chain radio buttons 910, 920 further use a software threshold to realize discrete states. A button cover 931 is mounted on top of the three-layer stacking; more particularly the measuring indication of this button cover 931 is applied onto the area wherein the resistive strip 915 of the widget-specific layer 912 is entirely included. Figure 9 (b) shows the basic mechanical design of a pull-chain widget 920, consisting of a folded tube structure 923 with a hollow center to ensure strength and rigidity during pulling and pushing motions, slots 922 to guide the pull-strip, a wing tab 921 to lock the pull-strip in place and a pull-tab 924 that functions as handle. While referring back to Figure 9 (a), the pull-strip 912 itself is interwoven in the top layer 911. In combination with the tube structure 923, this provides (together with the protruding flaps 916) sufficient pressure between the pull-strip 912 and the base layer 913 to ensure electrical connectivity, and at the same time provides an acceptable amount of friction to manipulate pull-chain widgets comfortably. For a further embodiment according to the present invention, the electrical circuit design of pull-chain push buttons and switches are similar and consist of conductive patches at specific spots that make an electronic connection when the strips are pushed or pulled. Push buttons, switches and radio-buttons usually employ mechanical detent mechanisms. These techniques however do not transfer to paper since paper is too fragile. To avoid undesired oscillations when widgets are in between states, hysteresis and timeouts are used in software, as further discussed below.
The recording approach in accordance with an embodiment of the invention, allows users to specify behavior (logic) by demonstrating and recording actions directly in the context of the visual design elements. This preserves the What-You-See-ls-What-You- Get (WYSIWYG) paradigm, which designers are comfortable with from graphical software tools. Demonstrating actions in a graphical user interface, however, is limited to actions that can be defined through the interface of the tool. For example, demonstrating multiple actions that need to happen simultaneously is impractical using a regular mouse and keyboard. Similarly, specifying a set of actions that can be performed in any order, requires demonstrating all possible permutations. To address these challenges, and provide a higher ceiling than is possible with demonstration alone, the logic recorder 330 augments widgets 301, 302 and the demonstrated actions 321, 322 with dialogs 311, 312 that allow fine-tuning of specific properties, as illustrated in Figure 3. At the same time, demonstrating actions 321, 322 in the context of visual design elements calibrates the state of the input widget 301, 302 to real world values that are present in the visual design. This makes it possible, for example, to gauge a slider by demonstration, or choose which state of a switch is high or low.
To define the behavior of electronically augmented paper designs, the logic recorder 230 according to an embodiment of the present invention, supports if-then as well as map-to rules as shown in Figure 2. For if-then rules, a set of recorded actions (output set) is executed when a set of recorded conditions (input set) has been met. For map-to rules, parameters of input set (e.g. the number of fulfilled actions in the set) are continuously mapped to parameters of the output set (e.g. speed with which the set of actions are executed repeatedly). Both if-then and map-to rules thus relate an input set to an output set. Further, according to an embodiment of the invention, input sets (as determined above) specify conditions that have to be fulfilled. Input sets may therefore consist of one or more conditions related to input or output widgets. Three types of conditions are supported by the recording approach in accordance with further embodiment of the invention, i.e. (i) momentary input conditions, are true for only a very brief amount of time, such as a pressing or releasing a push button; (ii) discrete state conditions are true until the widget switches to another state e.g. the modes of a switch, a discrete brightness value of an LED or the pressed state of a push button; and (iii) continuous range conditions are true when the current value of a continuous input widget is within a specified range, such as a specific range of a slider or the volume range of a buzzer. As illustrated earlier, the embodiment of Figure 5 gives an example of an input set that is fulfilled when a push button 504 is pressed 514 at the same time that a LED 502 lights up 512. Essential here are the timing options offered by input sets. These options allow one to specify conditions that need to be met simultaneously (as is the case here represented by option 520), sequentially or in a random order. When timing options are different for some conditions in the set, these conditions are grouped in separate layers.
Using the conditions and timing options provided by input sets, simple patterns of conditions can be recorded that need to match with the incoming stream of events. For an embodiment in accordance with the present invention, the recording supports two matching approaches, i.e. the include and the exact matching approach. First, the include matching approach requires the stream of all incoming events to fulfill the pattern of conditions specified in the input set. Other events, which do not fulfill any conditions in the set, can also be allowed. The exact matching approach on the other hand, does not allow events that do not fulfill any of the conditions in the input set.
According to the invention, output sets may consist of one or more output actions. The recording in accordance with the invention may support two types of output actions, i.e. (i) discrete output actions, such as lighting up an LED, setting the digit of a seven- segment display or a monotonic tone of a speaker; and (ii) range output actions specify an output range that has be transitioned. An optional time parameter may be specified by the user. Examples include, fading a LED in or out or realizing a countdown or count- up with a seven-segment display. As already shown in the embodiment of Figure 3 (b), output sets allow specifying delays between recorded actions via pop-up window 340. Besides this, the loop construct offers the possibility to execute the set of actions multiple times via the option 341.
In accordance with an embodiment of the invention, one way to relate input to output sets with the recording approach, is using if-then rules. These rules may allow executing or stop/reset an output set when all conditions of an input set are met. Correlations may be indirectly supported using multiple if-then rules. An existing output set may also serve as input set for another if-then rule, thus allowing for nested rules.
Further referring to an embodiment of the invention, when input sets solely consist of stateful conditions, i.e. discrete state conditions and continuous range actions, it is often desirable to undo all actions performed in the output set once the conditions in the input set are not fulfilled. Specifying all these "undo" if-then rules manually can become cumbersome, especially when widgets have many modes (e.g. radio buttons). For example, as discussed for the embodiments of Figure 3, turning the switch to the on-state starts the game, and thus the blinking of the LEDs. Turning it to the off-state should turn off the LEDs. The logic recorder 330 automatically infers for every if-then rule whether this undo is appropriate (i.e. if the input set consist of only stateful conditions) and will then suggest to automatically undo all state changes caused by this rule when the input set is not fulfilled anymore.
In accordance with the invention, map-to rules may allow for linear mapping of a derived parameter of the input set to another parameter of the output set. For example, mapping the volume of a microphone or speed with which a push button is tapped to the number of LEDs that light up or the frequency with which they blink.
Moreover, for an embodiment of the invention, the logic recorder supports numerous derived parameters for both input as well as output sets. The mapping parameter may be different for the input and output set, so many combinations are possible. A few examples are given below.
• Value (only for input/output sets that consist of a single continuous range condition): the current value in the range is used as mapping parameter.
• Progress (only for input/output sets that consist of at least two actions): as mapping parameter for input sets, the number of fulfilled actions is used. As mapping parameter for output sets, a corresponding number of actions of the set is executed sequentially.
• Repetition (only for input sets): the number of times the conditions in the input set are fulfilled is used as mapping parameter. · Time (only for input sets): the duration that all actions in the input set remain fulfilled is used as mapping parameter.
• Speed : as mapping parameter for input sets, the speed with which the input set is repeated is used. As mapping parameter for output sets, the actions in the set are repeatedly executed at a certain speed. In accordance with an embodiment of the invention, the design tool, the recording logic and the interpreter are implemented in .NET/C#. The section below further describes possible architecture and algorithms underlying the present invention.
The interpreter may execute recorded if-then and map-to rules in the test and debug environment as well as on microcontrollers or other programmable components. According to an embodiment, the implementation is consistent with .Net Micro Framework specifications to ensure its portability to microcontrollers, such as Netduino and Threadneedle or other programmable components. As such, the results observed in the test and debug environment are always consistent with the output from the microcontroller or other programmable components.
To get the recorded logic onto these microcontrollers or other programmable components, in an embodiment code is generated with .NET CodeDOM that re- instantiates all objects needed for the specified recording logic. Once the microcontroller or programmable component starts, it runs the generated code and thus initializes all logic. Afterwards, the microcontroller or programmable component may run the interpreter every CPU cycle. The interpreter can keep track of timing information and states of widgets over different cycles to ensure that the output is always correct and independent of the speed of the microcontroller or other programmable component For an embodiment of the invention, the implementation achieves a modular design that is reusable and extensible by abstracting: (1) widgets according to their input or output type to make the system sensor-agnostic (e.g. whether an off-the-shelf slider, paper-membrane slider or pull-chain slider is used, is irrelevant); (2) connection pins to support different microcontroller platforms, such as Netduino and Threadneedle, or possible platforms for other programmable components; In contrast to the behavior of widgets inside the simulator, their physical counterparts may be subject to noise, which might lead to undesired oscillations. For an embodiment of the invention this problem is mitigated by smoothing analog input signals. When analog signals are discretized (e.g. for pull-chain radio buttons), hysteresis, or double thresholding is used.
In an embodiment of the invention, the circuit routing method selects intermediate electronic components to connect interactive electronic components to the microcontroller or other programmable component. For example, resistors to control the voltage over LEDs, capacitors for piezo elements, or shift registers for controlling segment displays.
In an embodiment of the invention the circuit routing method connects both interactive and intermediate electronic components to the microcontroller and other programmable component while taking into account terminal/pin characteristics. Control pins of widgets may often be connected to multiple pins on a microcontroller or other programmable component. This will depend on the input or output signal that is required. For example, the anode of an LED may be connected to any PWM pin. However, if binary output suffices, a digital pin may be used. I n an embodiment in accordance with the invention, the routing algorithm takes this into account and first uses the specified logic to assign a set of valid control pins to every widget. The algorithm may then select those pins that maximize the number of widgets that can be connected given the limited set of pins on the microcontroller or other programmable component. Finally, it may favor those pins which, when routed, have the lowest number of intersections with other traces. Therefore, in an embodiment of the invention the auto-routing method generates a plurality of pin assignments; and thereafter selects this pin assignment maximizing the amount of pins that can be connected to the microcontroller or other programmable component. In an embodiment of the invention the circuit routing method employs an auto-routing method that allows for interrupted links (to be solved by use of a bridge during assembly) and in a preferred embodiment the auto-routing method generates those descriptions leading to a minimized number of interrupted links. An auto-routing algorithm is employed to generate conductive traces that connect the pins exposed by interactive and intermediate electronic components to the pins of a microcontroller or other programmable component. In an embodiment, a variation of the A* algorithm is implemented in which traces can make junctions with other traces that connect to the same pin. The routing algorithm finds the shortest path between all connected terminals/pins on a 2D canvas and may avoid other conductive traces as well as the instructions that are printed. When the circuit is non-planar however, the algorithm may interrupt one of the intersecting traces leaving place for a bridge-type circuit- sticker. In an embodiment, series of morphological filter operations are used in every step of the A* algorithm. These filters give weights to every cell of the 2D canvas to ensure the spacing (and thus isolation) between all circuit traces and components. In addition, these filters further maximize the spacing between all pairs of circuit traces to allow for placing bridges over traces when the circuit is non-planar.
In an embodiment of the invention, the circuit generation algorithm is extended allowing even more components to exist in a single design by incorporating (GPIO) multiplexing strategies, and thereby further enriching interactive paper designs. According to further embodiment, the widget families are extended including more popup mechanisms and exploring the possibility to include a widget editor in the design tool to customize paper widgets further.
Further, in an embodiment of the invention the auto-routing method optimizes the usage of the electronic components. In a preferred embodiment thereof sharing of pins on the microcontroller or other programmable component is used for such purpose by the method. Although the design tool in accordance with an embodiment of the invention, gives users the impression that the final design consist of a single sheet of paper, every widget adds content to multiple sheets. These sheets may consist of conductive traces, visual design elements, and instructions for attaching components, or cutting, folding, and gluing of paper. Each type of instruction can have a unique style, such as dotted lines for cutting, dashed lines for folding, and hatched regions for gluing.
Although the design in accordance with an embodiment of the invention consists of three sheets of paper, some sheets (i.e. the top layer) may also have information present on the back of the paper while others may require conductive as well as non- conductive information on the same page. Therefore, multiple PDF files (for example 5) can be generated for the design using e.g. a particular library. The tutorial may assist users to print these files using a conductive inkjet printer or a regular color printer for non-conductive elements. Conductive traces can be rendered on PDF files using vector graphics to preserve the quality and maximize its conductivity. When content is printed on the back of a paper sheet or has to be folded backwards, automatic flip will ensure correct alignment of these regions with respect to other sheets.

Claims

Claims
1. A method for generating descriptions, at least in part being interpretable by a printer, for generating a printed paper comprising of conductive links, wherein said conductive links are connected with a selection of electronic components, and herewith forming after assembly onto said printed paper a stand-alone electronic system, said method is further generating simulation code for simulating said stand-alone electronic system, said method comprising: (a) receiving from a user an arrangement of visual elements; (b) receiving from said user a plurality of interactive electronic components, more specifically input or output elements, amongst said selection of electronic components and an integration of those within said arrangement; (c) receiving as input from said user behavior expected from said electronic system and (d) automated generating of said descriptions and simulation code, wherein said automated generating of said descriptions is based only on what is received from said user in step (a), (b) and (c), and for at least the part of said descriptions being interpretable by a printer said automated generating is by use of an auto-routing method.
2 The method of claim 1, wherein said stand-alone electronic system formed after assembling a selection of electronic components, includes a microcontroller or other programmable component, which are connected by said conductive links, wherein said auto-routing method is employed to generate conductive links that connect the other electronic components to the microcontroller or other programmable component.
3 The method of claim 1 or 2, wherein said plurality of interactive electronic components, received from said user, are selected from provided templates of such interactive electronic elements.
4 The method of claim 3, wherein parameters (size, visual design) of said templates of said interactive electronic components are defined by the user.
5. A method for generating descriptions, at least in part being interpretable by a printer, for generating a printed paper comprising of conductive links, wherein said conductive links are connected with a selection of electronic components, and herewith forming after assembly onto said printed paper a stand-alone electronic system, said method comprising: (a) receiving from a user an arrangement of visual elements; (b) receiving from said user a plurality of interactive electronic components, more specifically input or output elements, amongst said selection of electronic components and an integration of those within said arrangement; (c) receiving as input from said user behavior expected from said electronic system and (d) automated generating of said descriptions, based only on what is received from said user in step (a), (b) and (c), for at least the part being interpretable by a printer said automated generating is by use of an auto-routing method,
6 The method of claim 5, wherein said stand-alone electronic system formed after assembling a selection of electronic components, includes a microcontroller or other programmable component, which are connected by said conductive links, wherein said auto-routing method is employed to generate conductive links that connect the other electronic components to the microcontroller or other programmable component.
7 The method of claim 5 or 6, wherein said a plurality of interactive electronic components received from said user are selected from provided templates of such interactive electronic elements.
8 The method of claim 7, wherein parameters (size, visual design) of said templates of said interactive electronic components are defined by the user.
9. A method for generating simulation code, for simulating a stand-alone electronic system formed after assembling a selection of electronic components which are connected with conductive links provided on a printed paper, said method comprising: (a) receiving from a user an arrangement of visual elements; (b) receiving from said user a plurality of interactive electronic components, being an input or output element, amongst said selection of electronic components and an integration of those with said arrangement; (c) receiving as input from said user behavior expected from said electronic system and (d) automated generating of said simulation code, based only on what is received from said user in step (a), (b) and (c).
10. The method of claim 9, wherein parameters (size, visual design) of said templates of said interactive electronic components are defined by the user.
11. A method for generating execution code, operable by a microcontroller or other programmable component, being part of and for executing a stand-alone electronic system formed after assembling a selection of electronic components, including said microcontroller or other programmable component, which are connected with conductive links provided on a printed paper, said method comprising: (a) receiving from a user an arrangement of visual elements; (b) receiving from said user a plurality of interactive electronic components, being an input or output element, amongst said selection of electronic components and an integration of those with said arrangement; (c) receiving as input from said user behavior expected from said electronic system and (d) automated generating of said execution code, based only on what is received from said user in step (a), (b) and (c).
12. The method of claim 11, wherein in step (d) instead of said execution code, a simulation code as in claim 3 is automated generated, and comprising a further step of automated adapting for said simulation code into said execution code, operable by a microcontroller or other programmable component, being part of said electronic system, taking into account physical aspects of said electronic system, by adding in said execution extra code, for handling signal noise..
13. The method of claim 11 or 12, wherein parameters (size, visual design) of said templates of said interactive electronic components are defined by the user.
14. The method of any of previous claims, wherein step (c) of receiving as input from said user behavior expected from said electronic system is performed by recording (to thereby specify logical links between one or more of said interactive electronic components as received in step (b) and/or use of models of one or more of said interactive electronic components as received in step (b).
15. The method of any of previous claims, comprising an additional step of receiving from said user an input or output type of one or more of said interactive electronic components.
16. A method of simulating a stand-alone electronic system formed after assembling a selection of electronic components which are connected with conductive links on a printed paper, said method comprising: (i) obtaining said simulation code as generated by said method of claim 1 to 4 or 9 to 10; (ii) receiving from a user via a graphical user interface, wherein a representation of said electronic system is shown, a stimulus; (iii) automated computing of a response of said electronic system to said stimulus by use of said simulation code and showing said response using said representation.
17. A computer program product comprising computer-readable code, that when run on a computer system causes said computer system to execute said methods of any of previous method claims 1 to 16 or a combination thereof.
18. A computer program product comprising computer-readable code, generated by said method of claims 1 to 4 or 9 to 10, that when run on a computer system, causes said computer system to simulate said electronic system.
19. A computer program product comprising computer-readable code, generated by said method of claims 11 to 15, that when run on a microcontroller or a programmable component causes operating of said electronic system.
20. A stand-alone electronic system, comprising a selection of electronic component, wherein paper or transparent flexible sheet is used as support therefore, which are connected with conductive links on said support, wherein one or more interactive electronic components, being an input or output element and wherein parameters (size, visual design) of said interactive electronic components are defined by the user.
21. The stand-alone electronic system of claim 20, as designed by any of said method of claim 1 to 4 or 5 to 10.
22. The stand-alone electronic system of claim 20 or 21, further being provided with a microcontroller or other programmable component, uploaded with execution code, generated by any of said method of claims 11 to 15.
23. A method for editing computer-readable code, comprising the steps of: receiving computer-readable code, generated by said method of claims 9 to 10 or 11 to 15; receiving from a user edits to said computer-readable code; and outputting the edited computer-readable code.
PCT/EP2016/055880 2015-03-18 2016-03-17 Automated design and generating of an electronic system on a flexible substrate WO2016146782A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP15159730.9 2015-03-18
EP15159730 2015-03-18

Publications (1)

Publication Number Publication Date
WO2016146782A1 true WO2016146782A1 (en) 2016-09-22

Family

ID=52780821

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2016/055880 WO2016146782A1 (en) 2015-03-18 2016-03-17 Automated design and generating of an electronic system on a flexible substrate

Country Status (1)

Country Link
WO (1) WO2016146782A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060190918A1 (en) * 2005-01-14 2006-08-24 Cabot Corporation System and process for manufacturing custom electronics by combining traditional electronics with printable electronics
WO2007035115A1 (en) * 2005-09-20 2007-03-29 David Norris Kenwright Apparatus and method for proximity-responsive display materials

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060190918A1 (en) * 2005-01-14 2006-08-24 Cabot Corporation System and process for manufacturing custom electronics by combining traditional electronics with printable electronics
WO2007035115A1 (en) * 2005-09-20 2007-03-29 David Norris Kenwright Apparatus and method for proximity-responsive display materials

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
GREG SAUL ET AL: "Interactive paper devices", TEI '10 PROCEEDINGS OF THE FOURTH INTERNATIONAL CONFERENCE ON TANGIBLE, EMBEDDED, AND EMBODIED INTERACTION, 1 January 2010 (2010-01-01), New York, NY, USA, pages 205, XP055242846, ISBN: 978-1-60558-841-4, DOI: 10.1145/1709886.1709924 *
STEVE HODGES ET AL: "NET gadgeteer", COMPUTER SCIENCE EDUCATION, ACM, 2 PENN PLAZA, SUITE 701 NEW YORK NY 10121-0701 USA, 6 March 2013 (2013-03-06), pages 391 - 396, XP058013636, ISBN: 978-1-4503-1868-6, DOI: 10.1145/2445196.2445315 *
YOSHIHIRO KAWAHARA ET AL: "Instant inkjet circuits", PROCEEDINGS OF THE 2013 ACM INTERNATIONAL JOINT CONFERENCE ON PERVASIVE AND UBIQUITOUS COMPUTING, UBICOMP '13, 1 January 2013 (2013-01-01), New York, New York, USA, pages 363, XP055242853, ISBN: 978-1-4503-1770-2, DOI: 10.1145/2493432.2493486 *

Similar Documents

Publication Publication Date Title
Ramakers et al. PaperPulse: an integrated approach for embedding electronics in paper designs
US11113439B2 (en) Trigger-action-circuits: leveraging generative design to enable novices to design and build circuitry
KR100679634B1 (en) Educational system for drawing up icon-based robot control program and its method
Freed et al. Sticking together: handcrafting personalized communication interfaces
US20220122480A1 (en) Methods and systems for user-interface-assisted composition construction
JP2011055431A (en) Digital mixer
Hartmann Gaining design insight through interaction prototyping tools
Schoemann et al. Needle as input: exploring practice and materiality when crafting becomes computing
Peppler ReMaking arts education through physical computing
Katterfeldt et al. Talkoo: A new paradigm for physical computing at school
Wallbaum et al. A real-time distributed toolkit to ease children’s exploration of iot
WO2016146782A1 (en) Automated design and generating of an electronic system on a flexible substrate
CN105404733A (en) 'Component' based digital logic circuit CAI construction and simulation running realization method
Qi et al. Code collage: Tangible programming on paper with circuit stickers
JP7009705B2 (en) Teaching materials for programming education
Culkin et al. Learn Electronics with Arduino: An Illustrated Beginner's Guide to Physical Computing
Ramakers et al. Paperpulse: An integrated approach to fabricating interactive paper
Suriyaarachchi et al. Primary school students programming with real-time environmental sensor data
Oh From papercraft to paper mechatronics: Exploring a new medium and developing a computational design tool
JP6993531B1 (en) Teaching materials for programming learning and programming learning system
Huang et al. The Arduino Inventor's Guide: Learn Electronics by Making 10 Awesome Projects
Takegawa et al. Construction of a prototyping support system for painted musical instruments
JP2019079095A (en) Method for manufacturing tile unit
Perutka Tips and tricks for programming in Matlab
JP7458101B1 (en) Programming Device

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16714281

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16714281

Country of ref document: EP

Kind code of ref document: A1