WO2019175972A1 - データ格納システム、データ格納システムの制御方法及びプログラム - Google Patents

データ格納システム、データ格納システムの制御方法及びプログラム Download PDF

Info

Publication number
WO2019175972A1
WO2019175972A1 PCT/JP2018/009759 JP2018009759W WO2019175972A1 WO 2019175972 A1 WO2019175972 A1 WO 2019175972A1 JP 2018009759 W JP2018009759 W JP 2018009759W WO 2019175972 A1 WO2019175972 A1 WO 2019175972A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
unit
circuit
data storage
breadboard
Prior art date
Application number
PCT/JP2018/009759
Other languages
English (en)
French (fr)
Inventor
創 佐野
康寛 石井
義一 小松
浩祐 安達
Original Assignee
株式会社 東芝
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 株式会社 東芝 filed Critical 株式会社 東芝
Priority to PCT/JP2018/009759 priority Critical patent/WO2019175972A1/ja
Publication of WO2019175972A1 publication Critical patent/WO2019175972A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]

Definitions

  • Embodiments described herein relate generally to an information storage system, an information storage method, and a program.
  • IoT Internet of Things
  • 3D printer 3D printer onto a cloud by one user and downloading the data by another user.
  • CAD Computer Aided Design
  • a solderless breadboard (hereinafter simply referred to as a breadboard) is often used for this prototyping.
  • the breadboard can attach and detach circuit components, and can easily create circuits in various situations.
  • a wire rod such as a jumper wire is required, and the prospect of the circuit becomes worse, and it is inconvenient to reproduce the circuit once created again.
  • a breadboard has been developed that can freely change the wiring information according to information from the outside, but a place for sharing the wiring information is not provided today.
  • the problem to be solved by the present embodiment is to provide an information storage system, an information storage method, and a program for storing circuit information at the time of circuit creation.
  • An information storage system includes a data storage unit, an upload unit, and a download unit.
  • the data storage unit includes signal data for changing the wiring of the breadboard that can be controlled to change the connection status between the terminals of the circuit components by an external signal, and a circuit configuration on the breadboard when the signal data is used
  • the arrangement data indicating the arrangement of elements is stored in association with each other.
  • the upload unit uploads the signal data and the arrangement data to the data storage unit.
  • the download unit downloads at least the signal data out of at least one of the signal data and the arrangement data stored in the data storage unit.
  • the figure which shows the outline of the breadboard in one Embodiment The figure which shows the outline of the data storage system which concerns on one Embodiment.
  • the figure which shows an example of the server which concerns on one Embodiment. The figure which shows an example of the circuit deployed to the breadboard which concerns on one Embodiment.
  • the figure which shows an example of the circuit deployed to the breadboard which concerns on one Embodiment. The figure which shows an example of the server which concerns on one Embodiment.
  • the figure which shows an example of the server which concerns on one Embodiment. The figure which shows the example of conversion into the circuit data which concerns on one Embodiment.
  • the figure which shows the example of conversion into the circuit data which concerns on one Embodiment The figure which shows the example of conversion into the circuit data which concerns on one Embodiment.
  • the figure which shows the example of conversion into the circuit data which concerns on one Embodiment The figure which shows the example of conversion into the circuit data which concerns on one Embodiment.
  • the figure which shows the example of conversion into the circuit data which concerns on one Embodiment The figure which shows the example of conversion into the circuit data which concerns on one Embodiment.
  • the figure which shows the example of conversion into the circuit data which concerns on one Embodiment The figure which shows the example of conversion into the circuit data which concerns on one Embodiment.
  • the part described as “software” generally indicates that information processing by software is specifically realized using hardware resources.
  • This software performs the same operation by a circuit such as an ASIC (Application Specific Integrated Circuit), FPGA (Field Programmable Gate Array), or a circuit generated by a circuit board and circuit components for operating the software. Also good.
  • the software may function in an application on the Web, an application that operates locally, or an application that operates on the server side.
  • FIG. 1 is a diagram showing an outline of a breadboard 30 which is a final client in the present embodiment.
  • the breadboard 30 is a programmable breadboard that can receive a signal from the outside and change the connection status between the terminals based on the signal.
  • each terminal attaching / detaching portion in the region R01 in FIG. 1 is generally electrically connected and insulated from the terminal attaching / detaching portions belonging to other regions.
  • Wiring in the circuit is realized by electrically connecting the insulated regions to each other using circuit components (elements) or wires. The electrical connection is performed, for example, by controlling a switch with a control signal.
  • the programmable breadboard controls this wiring in software or hardware by an external signal. For example, control is performed so that the region R01 and the region R03 are connected, the region R04 and the region R05 are connected, and the region R09 and the region R11 are connected by an external signal. As a result, the power source, the LED, and the resistor are connected in series, and the LED can be turned on. Further, the grain size may be increased, and the terminals may be controlled so as to be electrically connected to each other instead of the area.
  • the breadboard 30 may be equipped with a power source or various measuring devices so as to be connected to the wiring. By providing a power supply or a measuring instrument in this way, it is possible to apply a potential difference between arbitrary regions or measure voltage, current, etc. between arbitrary regions based on external control. Become. These controls may be performed in the breadboard 30 or may be performed by a client or server to which the breadboard 30 is connected.
  • the power source is provided outside, but the LED may be turned on by using the power source of the breadboard 30.
  • the data storage system 1 is a system for storing signal data for controlling such wiring and data of elements arranged on the breadboard 30 in association with each other.
  • FIG. 2 is a diagram showing an outline of the data storage system 1 according to the present embodiment.
  • the data storage system 1 enables the circuit generated using the breadboard 30 to be disclosed to other users or shared with other users.
  • the data storage system 1 includes a server 2. From another point of view, it may be a concept including the client 3.
  • the server 2 is a server that stores data of the data storage system 1 and uploads or downloads data. As described above, the stored data is signal data for controlling wiring in the breadboard. Furthermore, the arrangement data of the elements arranged on the breadboard may be linked and stored for each signal data.
  • the server 2 is connected to the client 3 via the network 4. Further, the server 2 may have a centralized type of function, storage, or the like, or may be a distributed type implemented on the cloud.
  • the signal data is, for example, text data or binary data describing the connection status between areas.
  • the connection state between the areas is data indicating that the areas R01 and R03, the areas R04 and R05, and the areas R09 and R11 are connected to each other.
  • it may be text data that represents connected areas in one line.
  • the connection status is described for each of the two areas, but when three or more areas are connected, three or more may be listed.
  • notation examples or file storage examples are not limited to the above.
  • a comment indicating what connection each connection is making may be provided so that editing is easy.
  • an initialize statement is given before the connection state of the above three lines, and a command statement such as a connect instruction is given after the connection state of the three lines to indicate the connection state.
  • a file indicating a control signal may be used. Instead of issuing a connection command for all three lines, a file indicating a command statement such as connect R01 R03, etc. may be used for each line.
  • HDL Hardware Description Language
  • any form may be adopted as long as the control regarding the wiring can be appropriately described and can be converted into the control signal in the breadboard 30.
  • the arrangement data is, for example, text data or binary data in which the element type, standard, etc., and the arrangement state of the terminals of each element are described.
  • the binary data may be data including image data.
  • the type of element refers to the type of circuit component such as a resistor or a capacitor, for example, and the standard of the element refers to a resistance value corresponding to the type of each circuit component such as 1 ⁇ or 10 pF. , Capacitance.
  • the arrangement data may include necessary element data.
  • circuit component data which is element data required separately, may be provided separately from the arrangement data.
  • the client 3 is a device mainly used by the user.
  • a computer may be provided and the breadboard 30 may be controlled via the computer.
  • the user uploads or downloads signal data and arrangement data from the client 3.
  • the network 4 may be an internet line, for example.
  • the protocol to be used, the network line system, etc. are not particularly limited.
  • TCP / IP, UDP, FTP, or the like may be used as the protocol.
  • FIG. 3 is a diagram schematically showing the server 2 constituting the data storage system 1.
  • the configuration of the server 2 may be realized by software or may be realized by hardware. Alternatively, some processes may be performed by software and other processes may be performed by hardware.
  • the software implementation may be an application running on the server side (for example, a web application) or a native application in which some functions are activated on the client 3 side.
  • the server 2 includes an upload unit 200, a data storage unit 202, a data search unit 210, a data selection unit 212, and a download unit 214.
  • the data search unit 210 and the data selection unit 212 are not essential components.
  • the upload unit 200 is connected to the client 3 via the network 4 and uploads signal data and arrangement data to the data storage unit 202 based on a request from the user.
  • the user can upload all the data of the circuit on the breadboard generated by setting the wiring and arranging the elements, or a part of the data if necessary, via the upload unit 200. is there.
  • the upload unit 200 may be provided with an interface that is output (displayed) to the client 3 and updates signal data and arrangement data.
  • the interface further includes at least one of, for example, an interface that can input what kind of circuit is in a check box format, an interface that can select a category, and an interface that can input a description about the circuit. May be.
  • the data storage unit 202 includes at least a signal data storage unit 204 and an arrangement data storage unit 206.
  • the signal data storage unit 204 stores signal data, which is data including a signal for controlling the wiring described above.
  • the arrangement data storage unit 206 stores arrangement data, which is data including the element arrangement information described above. Corresponding signal data and arrangement data are stored in association with each other.
  • a user information storage unit may be provided that stores information such as registered users who can log in to the system and registration-waiting users who are in a registration standby state. .
  • the data storage unit 202 may also include a circuit data storage unit 208.
  • the circuit data storage unit 208 may store association information for each of the data stored in the signal data storage unit 204 and the arrangement data storage unit 206. Furthermore, data including a description, a category, and the like of a circuit realized by a combination of signal data and arrangement data may be stored. These data may be data managed by a database having a primary key, or may be data managed by a description such as XML.
  • the description of the circuit is, for example, an explanation showing what function a circuit realized by a combination of signal data and arrangement data performs and what operation is performed.
  • the category is, for example, information indicating a high-level concept in functions and the like of the circuit, although not as detailed as the description of the LED lighting circuit, the voltage measurement circuit, and the like.
  • the data search unit 210 includes an interface for receiving a search from the user, and searches for data existing in the data storage unit 202 in accordance with a user search command.
  • the interface is output to the client 3, and the user inputs a search condition to the data search unit 210 via the interface displayed on the client 3.
  • the data search unit 210 searches the data stored in the signal data storage unit 204 and the arrangement data storage unit 206 based on the input search conditions.
  • a search may be performed based on the description or category information stored in the circuit data storage unit 208.
  • a search By performing a search based on circuit data, for example, a search by category or a search by more detailed circuit functions and operations can be performed. You may make it perform synonym search (thesaurus search) with respect to the input of a word or a sentence.
  • synonym search thesaurus search
  • a search may be performed using a model that has been machine-learned by a neural network or the like. Information of the user who uploaded the data may be given to each searched data, and the information of the user may be output.
  • the data selection unit 212 selects the data searched by the data search unit 210 from the signal data storage unit 204 and the arrangement data storage unit 206, and prepares for download.
  • the data selection unit 212 may have an interface for outputting to the client 3.
  • Information such as whether or not to download the signal data and the arrangement data or whether or not to continue another search may be output to the interface.
  • the restriction may be output to the user via the interface.
  • the download unit 214 is connected to the client 3 via the network 4 and transfers the data selected by the data selection unit 212 to the client 3.
  • the user can obtain desired signal data and arrangement data via the download unit 214.
  • the client 3 can download all the data of the circuit desired by the user or a part of the data as necessary via the download unit 214.
  • the download unit 214 may download data in a directory directly designated by the client 3 or data designated by a direct path.
  • the data search unit 210 and the data selection unit 212 are not necessarily provided.
  • the upload unit 200 and the download unit 214 may be provided with different network interfaces, or may communicate with each other via the network interface provided in the server 2. Further, when each unit includes an interface for outputting to the user, each interface may be transmitted to the client 3 via the network interface.
  • FIG. 4 is a diagram showing an outline of an example of the client 3.
  • the client 3 includes, for example, a client PC 300, an input interface 302, an output interface 304, and a breadboard 30.
  • the client 3 may be incorporated into the data storage system 1 as a component, or may be an independent device that can send and receive data to and from the data storage system 1 instead of as a component of the data storage system 1. It may be a system or device.
  • the client PC 300 includes, for example, a CPU, a memory, and the like, and exchanges data via the network 4. Further, the client PC 300 may control the wiring and the like in the breadboard 30.
  • the client PC 300 may be configured to include an input interface 302 and an output interface 304.
  • the wiring of the breadboard 30 may be designed in the client PC 300. This design may be performed on software by GUI (Graphical User Interface) or the like, or may be performed simply by editing a text file or the like instead of software.
  • GUI Graphic User Interface
  • the input interface 302 is, for example, a high-level interface (man-machine interface) including a device that receives user input such as a keyboard, a mouse, and a microphone, or a USB (Universal Serial Bus) that receives data of the device. Low level interface.
  • the user performs input to the client PC 300 via the input interface 302.
  • data regarding the wiring may be input to the client PC 300 via the input interface 302.
  • the output interface 304 is, for example, a high level interface (man machine interface) including a device that outputs information to a user such as a monitor or a speaker, or a low level interface such as a USB that transmits data to the device. .
  • a high level interface man machine interface
  • the interface may be an interface for transmitting to the breadboard 30 wiring data generated by the client PC 300, a control signal based on the wiring data, downloaded signal data, or a control signal based on the downloaded signal data.
  • the input interface 302 and the output interface 304 are not necessarily separate interfaces.
  • USB also functions as an input interface 302 and an output interface 304.
  • a monitor with a touch panel or the like also has both functions.
  • the breadboard 30 is a programmable breadboard whose wiring state can be changed by a signal as described above.
  • the breadboard 30 includes an interface such as a USB, for example, and can receive signal data or a control signal from the client PC 300 and change its wiring. It is also possible to output the wiring state to the client PC 300. This data input / output may be led by the client PC 300 or the breadboard 30.
  • FIG. 5 is a flowchart showing the operation of the data storage system 1 when uploading data.
  • an application for uploading is started on the client 3 side (S300). For example, a connection is established between the server 2 and the client 3 by the activated application.
  • the application is not limited to launching, but may be prepared for upload by establishing a connection with the server 2 by typing a command on the command line.
  • a port and a protocol to be used between the server 2 and the client 3 may be determined in advance, and communication may be performed using the port and the protocol.
  • the server 2 that has received the activation signal of the application or the server 2 that has received the connection request from the application shifts to an upload standby state (S200).
  • the transition to the standby state may be transmitted to the client 3 to notify the user via the output interface 304. This notification may be performed by an application or may be output to a standard output.
  • the client 3 or the user using the client 3 may be determined whether or not the client 3 or the user using the client 3 is an authenticated user through a predetermined authentication process.
  • a predetermined authentication process for example, an ID uniquely assigned to the client 3 or the user and a password corresponding to the ID may be used.
  • authentication may be performed using an ID uniquely assigned to the breadboard 30 connected to the client 3.
  • the ID assigned to the user and the ID assigned to the breadboard 30 may be managed separately, and the user login information and the recognition of the breadboard 30 may be performed separately. That is, the user and the breadboard 30 are not necessarily in a one-to-one relationship, and may have a one-to-many, many-to-one, or many-to-many relationship.
  • the breadboard 30 may generate data for authenticating each one by an authentication process prepared in advance.
  • MAC address information assigned to the breadboard 30 may be used as an ID.
  • the server 2 may operate so that the functions specific to the user and the breadboard 30 can be used separately.
  • the client 3 that has received the upload standby state uploads necessary data among the signal data, the arrangement data, and the circuit data to the server 2 (S302). It is not always necessary to perform this upload via the client PC 300.
  • signal data related to wiring may be transmitted from the breadboard 30 to the server 2 via the network 4.
  • the breadboard 30 may be provided with a network interface, and an upload request may be made from the client PC 300 or the server 2 to the breadboard 30 and the breadboard 30 may upload in response thereto.
  • the server 2 that has received the data stores various data in the respective storage units (S202). In this way, various data is uploaded from the client 3 to the server 2.
  • FIG. 6 is a diagram illustrating an example of an application GUI output to the output interface 304 of the client 3 at the upload timing.
  • the layout of each display area is drawn as an example, and is not limited to these layouts as long as it has an equivalent function. For the sake of explanation, the drawing on the breadboard is very simple.
  • the circuit design area 310 is displayed in the application started in the client 3 as shown in the figure.
  • the terminal attaching / detaching portion drawn in the circuit design region 310 is electrically connected in the vertical direction and insulated in the horizontal direction.
  • the user designs a circuit in the circuit design area 310.
  • a component list may be displayed, and elements may be arranged by, for example, dragging and dropping with a mouse. For each element, information regarding the element may be input to the used element display area 312.
  • a description input area 314 may be provided.
  • a category selection area 316 indicating a circuit category may be provided.
  • the category selection is not limited to selection, and an input area may be provided so that the user can freely describe.
  • the designed circuit is output to the breadboard 30 when the wiring writing button 318 is pressed, for example, and the wiring information of the breadboard 30 is updated. Thus, it can be confirmed that the elements are actually arranged and operated in the updated wiring.
  • a signal data generation button for generating signal data for generating a wiring control signal may be separately provided.
  • a signal data generation unit (not shown) may generate signal data based on the circuit information designed in the circuit design area 310 by pressing the signal data generation button.
  • the data displayed in the application is updated to the server 2 by pressing the upload button 320.
  • circuit data save button 322 By pressing the circuit data save button 322, for example, data related to the circuit is saved in the client PC 300. As another example, a memory serving as a storage area may be mounted on the breadboard 30, and data regarding the circuit may be stored in the breadboard 30. Further, after the circuit data save button 322 is pressed, the client PC 300 or the breadboard 30 may be selected as the save destination. Alternatively, the upload button 320 may be omitted, and the server 2 may be selected as the save destination after the circuit data save button 322 is pressed. In this way, the function of the upload button 320 may be provided.
  • the wiring information of the breadboard 30 at the timing of pressing may be acquired. For example, it is used when it is desired to return the information in the circuit design area 310 to the wiring information of the breadboard 30 before the wiring displayed on the breadboard 30 is synchronized while the circuit design area 310 is designed.
  • the above button examples are shown as examples only, and do not hinder the installation of other necessary buttons.
  • the application is provided with operation means corresponding to each button. Moreover, although the example which uses an application was shown, these may be operation
  • the application may be an application activated on the server side.
  • the client PC 300 may use an application that displays a GUI and transmits / receives a signal via the GUI.
  • a general web browser may be used. The same applies to the download description in FIG.
  • the data storage system 1 only needs to operate at least on the server 2 side, and various processes in the client 3 only need to be transmitted / received data in the process.
  • the main operation of the data storage system 1 is to operate the server 2 based on communication from the client 3, that is, data storage and data input / output in the server 2. The same applies to the download described below.
  • FIG. 7 is a flowchart showing the operation of the data storage system 1 when downloading data.
  • an application for downloading is activated on the client 3 side (S310). As with the upload, a connection is established.
  • the server 2 that has received the application activation signal or the server 2 that has received the connection request from the application shifts to a download standby state (S210).
  • the transition to the standby state may be transmitted to Klein 3 and notified to the user via the output interface 304. This notification may be performed by an application or may be output to a standard output.
  • the authentication is the same as in the case of uploading.
  • the client 3 that has received the download standby state shifts to a state in which the search condition is received from the user.
  • the search condition is transmitted to the server 2 (S312).
  • the search condition is determined based on explanatory text included in the circuit data, category information, or the like. Such information may be selectable by the user, or the user may be able to search in Japanese, for example.
  • the data search unit 210 of the server 2 searches for circuit data based on the search condition received from the client 3, and acquires signal data, arrangement data, and circuit data information associated with the searched circuit data.
  • the acquired data set may be a plurality of data sets instead of one set. Further, it is not always necessary to acquire all of the signal data, the arrangement data, and the circuit data, and at least the data related to the explanation of the circuit data and the arrangement data so that the user can easily select which circuit to download. You may make it acquire one.
  • the data search unit 210 of the server 2 outputs the search result to the client 3 (S214).
  • the client 3 displays the data received from the data search unit 210 to the user via the output interface 304, for example.
  • the user inputs desired data from the displayed data.
  • the client 3 that has received an input regarding selection of a search result by the user via the input interface 302 transmits to the server 2 which data is the selected data (S314).
  • the server 2 which data is the selected data (S314).
  • the user may cancel the download, or change the search condition and perform a search again.
  • the data selection unit 212 of the server 2 that has received the user's selection from the client 3 extracts the selected data from the search result, and among the signal data, arrangement data, and circuit data associated with the data. At least the signal data and the arrangement data are downloaded to the client 3 (S218).
  • positioning data may be downloaded to the client 3 in S214, and acquisition of arrangement
  • the search is performed based on the search condition desired by the user, and the signal data including the circuit information desired by the user is downloaded to the client 3 from the search result.
  • FIG. 8 is a diagram showing an example of an application GUI output to the output interface 304 of the client 3 at the download timing. Similar to FIG. 6, the layout of each display region is drawn as an example, and is not limited to these layouts as long as it has an equivalent function.
  • search result display area 330 information about one or a plurality of circuits searched in the server 2 is displayed by the search result display unit.
  • the displayed information is, for example, data such as element arrangement data and necessary element data.
  • an explanatory note and category information given at the time of upload may be displayed.
  • information related to the uploaded user for example, the handle name of the user, the uploaded date, etc. may also be displayed.
  • the search condition input area 332 is an area where search conditions are input by the user.
  • a desired circuit condition is input in words.
  • AND search may be performed
  • OR search may be performed, or the user may be switched between AND and OR.
  • a sentence may be input.
  • the data search unit 210 of the server 2 uses an algorithm for searching for sentences.
  • information such as the path of the data file and the directory where the data file exists is known, the path or directory information may be directly input.
  • a category selection area 334 may be provided. By performing a search by selecting a category, it is possible to perform a search based on the category when a category is given at the time of upload. It is to be noted that, for both upload and download, it is not essential to assign a category, and the data storage system 1 may be configured such that a category cannot be selected.
  • the search condition is transmitted to the server 2 by the transmission unit.
  • the server 2 finishes searching for data and transmits a search result, as shown in the search result display area 330, for example, element arrangement information and necessary element information are output.
  • the user selects a desired circuit from one or a plurality of search results displayed in the search result display area 330.
  • the existence confirmation result of the file may be displayed.
  • the directory is directly input, the data existing in the directory is displayed. You may make it display a file or a child directory. If the data file path is directly input and data exists, the download may be automatically started without being displayed in the search result display area 330. In this case, the user may confirm whether or not to download.
  • a request transmission unit transmits a request to the server 2 to download data for the selected circuit.
  • positioning data regarding the said circuit are downloaded from the server 2, and various data are received by the data receiving part.
  • the arrangement data may be received at the same timing as the reception of the search result. In this case, it is not necessary to download again.
  • the same timing may be a concept including latency such as communication delay and computer processing delay. That is, it is not always necessary to receive simultaneously.
  • the circuit data storage button 340 When the downloaded circuit-related data is to be stored locally, that is, in the memory in the client PC 300 or the breadboard 30, the circuit data storage button 340 is pressed. When the circuit data storage button 340 is pressed, the downloaded data regarding the circuit is stored locally by the data storage unit. Data stored locally may be reusable. As another example, locally stored data may be edited to generate a new circuit.
  • the wiring control unit controls the wiring of the breadboard 30 based on the downloaded signal data.
  • the user can produce a circuit that performs a desired function by arranging elements on the breadboard 30 based on the arrangement data.
  • buttons are not necessarily essential. It is also possible to download data and control wiring to the breadboard 30 by inputting from the command line.
  • wiring information in the programmable breadboard can be stored on a server or storage on the network, and the same wiring can be shared by a plurality of users.
  • the wiring information of the breadboard 30 of one user can be backed up without being limited to a plurality of users.
  • the data storage system 1 described above can have a login function.
  • the user may log in using the assigned ID.
  • an authentication means such as a password or biometric authentication may be used.
  • authenticating in this way the data uploaded or downloaded by the user, the search history of the user, etc. may be viewed with the user's authority.
  • the server 2 further includes a user authentication unit. Furthermore, you may provide the user authentication data storage part which stores the hash value etc. which are required in order to authenticate.
  • a user history information storage unit that stores history information or the like in association with the user ID may be provided. When there is an application on the client 3 side, the application may have a function of storing the user ID and password once entered.
  • Modification 2 You may make it authenticate for every breadboard 30 separately from a user.
  • the breadboard 30 is connected to the server 2 via the client 3, past history data such as circuit information used in the past on the breadboard 30 may be browsed.
  • authentication may be performed using an ID assigned to each breadboard 30.
  • the MAC address of the breadboard 30 may be used.
  • an identifier stored in an external chip that can be mounted on the breadboard 30 or a fixed chip mounted on the breadboard 30 may be used. The value is not limited to being stored, and a unique value unique to the chip may be used.
  • the server 2 further includes a breadboard authentication unit. Furthermore, you may provide the breadboard authentication data storage part which stores the hash value etc. which are required in order to authenticate. Moreover, you may provide the breadboard log
  • Modification 3 You may enable it to authenticate both a user and a breadboard.
  • the server 2 or the client 3 may further hold information that links the user and the breadboard.
  • the user can view the association relationship between the user and the breadboard 30 even when working with the client 3 that has worked before and another client 3. .
  • the user can control the same wiring to a plurality of breadboards 30, or conversely, wiring information associated with a certain breadboard 30 by another user Can be reproduced on other breadboards 30.
  • the server 2 may include a store unit that buys and sells data.
  • FIG. 9 is a diagram illustrating an example of the server 2 including a store unit.
  • the server 2 further includes a store unit 216.
  • the store unit 216 can set a purchase / sale amount for the data at the timing when the data is uploaded. For example, when selling uploaded data, the user may be able to specify the amount.
  • the store unit 216 may include a store data storage unit that stores the amount data in association with the data to be uploaded.
  • the user who downloads the data can be downloaded by purchasing the data with the amount associated with the data.
  • the store unit 216 performs operations relating to this purchase and download permission.
  • the store unit 216 presents the amount to the user with reference to the amount data associated with the store data storage unit.
  • the timing of presenting the amount of money may be a timing when the data search unit 210 searches and displays data, or may be a timing when data is selected by the data selection unit 212.
  • a store unit 216 is provided between the download unit 214 and the network 4, but the configuration is not limited thereto.
  • the download unit 214 may be provided between the store unit 216 and the network 4 so that the download unit 214 transmits data based on the purchase result of the store unit 216.
  • the data storage system 1 can include the store unit 216, and the store unit 216 can buy and sell data.
  • the user who uploaded the data may be given a gold wire or an incentive other than the gold wire, or the data storage system 1 may be used like a sales agent.
  • the data storage system 1 may be provided as a mere store location.
  • the exchange of money can be performed by a method of electronic commerce such as withdrawal from a user's asset account, credit card, electronic money, or the like, or a commerce method such as transfer by transfer paper.
  • the data uploaded or downloaded in the store unit 216 may be managed in association with a user ID or breadboard ID as an upload history or download history. This management data may also be stored in the store data storage unit. For example, by associating the user ID with the download history, the data purchased by the user can be downloaded in another environment. Similarly, by associating the breadboard ID with the download history, the purchased data can be downloaded (deployed) to the breadboard even when the breadboard is in another environment.
  • Modification 5 In the modified example 4 described above, it has been described that the store unit 216 that enables buying and selling of data is provided. However, the functions and the like are different between the data downloaded for a fee and the data downloaded free of charge. It is also possible. For example, data downloaded for a fee can be used without any particular restriction, but a predetermined restriction may be given to data downloaded free of charge.
  • FIG. 10 is a diagram illustrating an example of the configuration of the server 2 according to the present modification.
  • the server 2 further includes a restriction giving unit 218. Data that is purchased for free or for a fee by the store unit 216 is provided with a restriction granting unit 218.
  • the restriction giving unit 218 obtains a result indicating whether the purchase amount in the store unit 216 is free or paid, and gives a predetermined restriction to the data transmitted from the download unit 214.
  • the predetermined restriction may be specified by the user via the client 3 at the timing when data is uploaded, as indicated by a broken line. This designation may be selected by the user from a plurality of predetermined restrictions prepared in advance.
  • the data transmitted to the server 2 is restricted by the restriction assigning unit 218, and the upload unit 200 stores the data in the data storage unit 202 via the store unit 216.
  • the restriction information on the uploaded data may be stored in preparation for circuit data, for example, or may be stored after crafting the signal data.
  • the download unit 214 only needs to transmit the signal data to which the restriction is given. Therefore, it is not always necessary to send the data via the restriction assignment unit 218 when downloading.
  • the data with the restrictions may be set as search targets of the data search unit 210 and selection targets of the data selection unit 212 as separate data. Good.
  • a predetermined limit may be given to data to be downloaded without allowing the uploaded user to select it.
  • the restriction may be given at least one of the data upload timing and the data download timing.
  • the restriction providing unit 218 is provided on the downloading side, but is not limited thereto, and may be provided on the uploading side.
  • the restriction given by the consideration may be changed. For example, when purchasing for 500 yen, there is no limit, when purchasing for 250 yen, the number of times of use can be set to 10 times, and for free, the number of times of use can be set to 1 time. It may be. Further, for example, after the data is uploaded, the restriction may be changed in the restriction granting unit 218 or the store unit 216.
  • FIG. 11 is a diagram illustrating an example of the configuration of the restriction assigning unit 218.
  • the restriction providing unit 218 includes a use frequency restriction providing unit 220, a use time restriction providing unit 222, and a noise applying unit 224. In addition, it is not necessary to provide all these functions, and the restriction providing unit 218 including at least one may be mounted on the server 2.
  • the use frequency limit refers to, for example, the number of times the wiring of the breadboard 30 is updated based on the downloaded data.
  • the usage limit restriction unit 220 provides a counter for the downloaded data, and reduces the number of counters every time the breadboard 30 is updated, and uses the data when the counter becomes 0 or less. You may control by the flag which makes impossible.
  • an application when installed in the client 3, it may be controlled by the application of the client 3.
  • the client 3 may read the counter value and count the number of uses in the server 2 in synchronization with the server 2. This count value may be associated with, for example, a user ID or a breadboard ID.
  • the number of breadboards 30 on which downloaded data is deployed may be limited. For example, only one breadboard 30 may be deployed, or two or more breadboards 30 may be deployed. For example, by using only one unit, it is possible to prevent the free data from being deployed to a plurality of breadboards 30 without limitation even when the user performs a test.
  • the usage time limit refers to a period in which the wiring of the breadboard 30 can be used after being updated based on the downloaded data.
  • the usage time limit assigning unit 222 sets a timer from a state where the downloaded data is deployed on the breadboard 30 and disables the wiring after the usage time limit has come.
  • the timer may be provided in the client PC 300 or may be provided in the breadboard 30.
  • the total time of use may be used instead of the use period.
  • the breadboard 30 is provided with a timer, for example, the time during which the circuit is energized is measured and the total time used is stored.
  • a memory for storing the total time may be provided, or the timer and total time may be managed on the client PC 300 side.
  • noise such as noise that gives a predetermined amplitude to the voltage or current may be applied to the circuit.
  • the restriction by noise is executed by means for generating noise.
  • FIG. 12 is a diagram illustrating an example of noise application in the breadboard 30 when the noise application unit 224 performs restriction by applying noise.
  • the noise imparting unit 224 outputs information on the level of noise to be imparted (for example, the level of noise occurrence frequency or noise amplitude), for example, for a fee, free of charge, or consideration.
  • This noise level information is a value that determines how much noise is added to the wiring.
  • the noise level may be determined in advance or specified by the uploading user.
  • Information regarding this noise level is given to data, for example, described in signal data and downloaded to the client 3.
  • the client 3 deploys the signal data provided with the data to the breadboard 30.
  • the breadboard 30 extracts noise level information and causes the noise generator 350 to generate noise based on the noise level.
  • the generated noise is given to an input signal such as a voltage, and is output to the wiring generated by the signal data. In this way, it is also possible to limit the use of a circuit by adding noise to an input signal such as a voltage input to a wiring.
  • the user can verify the function to some extent in the downloaded wiring, but it is difficult to generate a circuit with high accuracy. If the circuit is desired by the user after a certain amount of function verification, it may be possible to purchase the circuit afterwards.
  • the present modification it is possible to give a predetermined restriction to a circuit to be downloaded. By adding such a restriction, the user can determine whether or not to purchase after conducting a test at hand as in the so-called evaluation version.
  • the restrictions are not limited to those described above, and include, for example, at least one restriction such as the range of voltage that can be applied, the frequency of the applied voltage, the amount of input current, and the frequency of input current. There may be.
  • information on a circuit that can be downloaded may be permitted by limiting the number of wires, the scale of the circuit, the number of parts that can be handled, and the like.
  • the number of wirings is the number of conductive regions connected in signal data.
  • the download unit may download circuit information of up to five wires.
  • the scale of the circuit is, for example, the size of the area where the elements of the breadboard 30 that can be handled are arranged.
  • the number of parts that can be handled is the number of elements arranged on the breadboard 30.
  • Modification 6 This modification also gives a predetermined restriction to the downloaded data.
  • the uploading user gives a restriction to the circuit according to the free user or the price as a compensation for the disclosure, but the restriction in the modified example is that the breadboard 30 on the user side to be downloaded is used. It gives a limit to protect.
  • This protection restriction gives a restriction to protect the data to be downloaded by the circuit protection restriction provision unit 226 provided in the restriction provision unit 218 shown in FIG. 11, and the protection restriction is applied to the breadboard 30 based on the data.
  • the user can set a range of parameters that can cause circuit destruction or dangerous operation in the circuit related to the data.
  • the parameter means what can be generated in a circuit such as voltage and current.
  • the set parameter is prepared in the circuit data and stored in the circuit data storage unit 208.
  • the parameter range is also downloaded based on the associated circuit data.
  • the voltage, current, etc. are controlled so as to be within the set parameter range, or the value of the parameter is monitored, and if it is out of range, the power source Control such as turning off.
  • FIG. 13 is a diagram illustrating an example of parameter monitoring in the breadboard 30 according to the present modification.
  • the wiring unit of the breadboard 30 includes a monitoring unit 352 and a system power supply unit 354, for example.
  • the monitoring unit 352 a range of parameters extracted from circuit data is set.
  • the monitoring unit 352 can be connected between arbitrary terminals, and is appropriately connected to a place where the parameter range needs to be measured.
  • the monitoring unit 352 transmits a power-off signal to the system power supply unit 354.
  • the system power supply unit 354 receives the power cut-off signal, the system power supply unit 354 turns off the device that inputs the voltage applied to the breadboard 30 or the flowing current to protect the circuit. By protecting in this way, it is possible to avoid the failure of the breadboard 30 as well as the circuit.
  • the parameter may have a range that can be safely stopped.
  • the parameter range may be automatically generated as a range smaller than the range in which the element is destroyed as soon as it is out of the range.
  • the server 2 performs a circuit simulation using a simulator or the like, and acquires a safe parameter range between the terminals. Also good.
  • the same wiring may be used at the same timing.
  • the same timing does not mean exactly the same time.
  • the timings may be the timings at which login times overlap.
  • FIG. 14 is a diagram illustrating an example of the configuration of the client 3 according to the present modification.
  • the client 3 includes two breadboards 30A and 30B.
  • the client PC 300 can change (deploy) the wiring to the two breadboards 30A and 30B at the same timing based on the same downloaded signal data. In this way, one client PC 300 can generate the same circuit on the two breadboards 30.
  • FIG. 15 is a diagram illustrating another example of the configuration of the client 3 according to the present modification.
  • the input interface 302 and the output interface 304 are not shown for simplicity.
  • the client PC 300A and the breadboard 30A are provided in the client 3A, and the client PC 300B and the breadboard 30B are provided in the client 3B.
  • the client PC 300A and the client PC 300B are, for example, peer-to-peer connected. In this state, the client PC 300A and the client PC 300B can be synchronized, and the same wiring based on the same signal data can be performed on the breadboard 30A and the breadboard 30B.
  • the client connected to the server 2 may be the client 3A or the client 3B, and both the client 3A and the client 3B may be connected to the server 2.
  • FIG. 16 is a diagram showing still another example of the configuration of the client 3 according to the present modification. Also in FIG. 16, like FIG. 15, the illustration of the input interface 302 and the output interface 304 is omitted for the sake of simplicity. Similarly, the client PC 300A and the breadboard 30A are provided in the client 3A, and the client PC 300B and the breadboard 30B are provided in the client 3B.
  • the client PC 300A and the client PC 300B are connected via the cloud server 5, for example. Also in this case, the same circuit may be generated on the breadboard 30A and the breadboard 30B as long as at least one of the clients 3A and 3B is connected to the server 2 as in the description of FIG. As another example, both clients may have to be connected to the server 2.
  • the same circuit can be formed on different breadboards 30 at the same timing in various situations via the client PC 300 or the network 4.
  • the output difference when the two circuits are input separately is observed, the operation of the same circuit in different environments is verified, or more accurate considering the individual differences of elements
  • a simple circuit can be configured.
  • the present invention is not limited to this, and the present modification can also be applied to three or more breadboards 30. Further, these processes may operate so as to be synchronized by an application installed in the client PC 300.
  • the breadboard 30 may include, for example, an operation terminal that performs remote operation, and may perform various operations from the operation terminal.
  • FIG. 17 is a diagram showing the breadboard 30 and the operation terminal according to this modification.
  • An operation terminal 6 for operating the breadboard 30 is further provided, and wiring of the breadboard 30 is operated by the operation of the operation terminal 6.
  • the breadboard 30 includes a breadboard transmission / reception unit 356, a signal input / output unit 358, and a terminal management unit 360.
  • the breadboard 30 and the operation terminal 6 are connected via, for example, at least one wireless and wired network 4. In the middle of this connection, the server 2 may be used.
  • the breadboard side transmission / reception unit 356 transmits / receives data inside / outside the breadboard 30. For example, the wiring state of the breadboard 30, the terminal usage state, and the like are transmitted to the operation terminal 6, and a control signal from the operation terminal 6 is received.
  • the signal input / output unit 358 controls wiring of the breadboard 30, signal input / output, and the like based on the control signal received by the breadboard-side transmitting / receiving unit 356.
  • a signal from the terminal management unit 360 is received, and information is transmitted to the operation terminal via the breadboard side transmission / reception unit 356.
  • the terminal management unit 360 manages the terminal status such as the terminal usage status and wiring status of the breadboard 30.
  • a signal is input / output from the signal input / output unit 358, according to the control, for example, a voltage is applied between specified terminals, a current is supplied, or a wiring state between terminals is updated. Or Further, the terminal status is transmitted to the signal input / output unit 358.
  • the operation terminal 6 includes an operation terminal side transmission / reception unit 600, a terminal state display unit 602, and a terminal state instruction unit 604.
  • the operation terminal 6 can change or monitor the state of the breadboard 30 without using the client PC 300.
  • the function of the operation terminal 6 may be specifically realized by hardware by software processing, or may be realized by hardware processing.
  • the operation terminal 6 may be, for example, a terminal such as a smart phone or a tablet terminal, but is not limited thereto.
  • the operation terminal side transmission / reception unit 600 transmits / receives data to / from the breadboard side transmission / reception unit 356 via the network 4.
  • the terminal state display unit 602 is an interface that displays to the user the terminal state, wiring state, element state, etc. of the breadboard 30 received by the operation terminal side transmitting / receiving unit 600.
  • the terminal state display unit 602 for example, in the display as in the circuit design area 310 in FIG. 6, the state of the elements of the connected breadboard 30 and the state of wiring are displayed.
  • the terminal state instruction unit 604 is an interface that transmits a user instruction to the breadboard 30 via the operation terminal side transmission / reception unit 600 by outputting a user instruction to the operation terminal side transmission / reception unit 600.
  • the operation terminal 6 may further include an operation terminal control unit (not shown) for controlling the terminal state display unit 602 and the terminal state instruction unit 604.
  • the user can perform operations such as a voltage applied between the terminals and a current flowing between the terminals in the terminal state instruction unit 604 of the operation terminal 6. Moreover, you may enable it to change the connection state between terminals. That is, the downloaded wiring may be easily edited using the operation terminal 6. For example, when a circuit as shown in the circuit design area 310 of FIG. 6 is formed, the user instructs E to apply a voltage of 5 V to E. This instruction is converted into a signal and transmitted to the breadboard 30 via the network 4, and the signal input / output unit 358 applies a voltage between the terminals in the terminal management unit 360. As a result, the LED is turned on.
  • a plurality of breadboards 30 may be operated in cooperation.
  • FIG. 18 is a diagram illustrating a connection state between breadboards according to the present modification.
  • the breadboard 30A and the breadboard 30B are connected via the client interaction unit 228.
  • the client interaction unit 228 is provided to connect the breadboard side transmission / reception units of the breadboard 30 ⁇ / b> A and the breadboard 30 ⁇ / b> B via the network 4.
  • the client interaction unit 228 may be provided in the server 2, may be provided in at least one of the client 3 ⁇ / b> A and the client 3 ⁇ / b> B, or is provided in another client 3. May be provided, or may be provided outside the server 2 and the client 3.
  • the terminal state in the terminal management unit 360A of the breadboard 30A is transmitted to the signal input / output unit 358B of the breadboard 30B via the signal input / output unit 358A.
  • the signal input / output unit 358B that has acquired the state of the terminal of the breadboard 30A notifies the terminal management unit 360B of the information of the terminal that is virtually connected, and controls to the equivalent state.
  • Information about terminals from the breadboard 30B to the breadboard 30A is also transmitted and received in the same manner.
  • information output from the breadboard 30A can be used as information input to the breadboard 30B. In this way, unidirectional signal input / output may be used.
  • the client interaction unit 228 may have a predetermined function for converting a signal as well as simply transmitting a state.
  • the predetermined function is typically filter processing.
  • the client interaction unit 228 may perform a low-pass filter process so as to remove noise from the output of the breadboard 30A and convert the signal to be input to the breadboard 30B.
  • the predetermined function is not limited to the low-pass filter, but may be a high-pass filter, a band-pass filter, a step function, or the like that performs processing in the signal frequency domain, or a parameter that changes a voltage value / current value, etc. It may be.
  • the present invention is not limited to these, and various filters having various other functions may be used.
  • FIG. 19 is a diagram illustrating an example of the configuration of the server 2 according to the present modification.
  • the server 2 further includes a circuit information data generation unit 230.
  • the circuit information data generation unit 230 includes a wiring generation unit 232 and an arrangement generation unit 234.
  • the wiring generation unit 232 of the circuit information data generation unit 230 generates signal data based on the wiring of the breadboard 30 designed by the user, that is, data indicating the electrical connection state for each region or each terminal. To do.
  • the arrangement generation unit 234 generates arrangement data based on arrangement information of elements on the breadboard arranged by software by the user.
  • This arrangement data is not limited to what the user designs on software.
  • the element data actually arranged on the breadboard 30 by the user may be taken as an image using the imaging element, and the element information may be read from the image. This reading may use a correlation function, a matched filter, or an identification model acquired by machine learning.
  • the user may be able to input the standard on software.
  • Each data generated by the circuit information data generation unit 230 is stored in the data storage unit 202 via the upload unit 200 in response to a user instruction.
  • a store unit 216 and a restriction providing unit 218 may be provided, and the functions described above may be executed.
  • signal data and arrangement data are generated by software.
  • these data are actually created by the user, there is a high possibility that the terminal position of the breadboard 30 will be mistaken in reading or inputting. In this way, it is possible to suppress human errors by using software.
  • Modification 11 A description will be given of an implementation that can perform a simulation instead of an actually created circuit. For example, it is possible to confirm by simulation whether or not the output desired by the user can be obtained before actually arranging the elements and the like on the breadboard 30.
  • the simulator is simulated on the software of the server 2, but the simulation may be performed in the client 3 in a local environment.
  • FIG. 20 is a diagram illustrating an example of the configuration of the server 2 according to the present modification.
  • the server 2 further includes a simulation unit 236.
  • the simulation unit 236 is connected to the data storage unit 202, extracts data from the data storage unit 202, and generates a simulation model in the extracted circuit.
  • the simulation unit 236 may be connected to the data selection unit 212 and may generate a simulation model based on the data selected by the data selection unit 212.
  • An existing circuit simulator may be used to generate the simulation model.
  • the simulation unit 236 may set an input signal for the generated simulation model. When the input signal is input, the user can check what output is obtained.
  • the user can confirm whether or not the data to be downloaded has a function desired by the user before the data is downloaded. .
  • a virtual test environment can be provided to the user.
  • the simulation model of the simulation unit 236, that is, the virtual circuit and the breadboard 30 may be operated in cooperation. For example, on the basis of information on a certain circuit stored in the data storage unit 202, a circuit that inputs the output of the circuit is formed on the breadboard 30.
  • the simulation unit 236 generates a simulation model of the circuit, that is, a virtual circuit.
  • the output result of inputting an input signal to this virtual circuit or the state at a certain terminal is reflected on the breadboard 30 via the network 4. In this way, the user can generate on the breadboard 30 a circuit that is connected to the circuit stored in the data storage unit 202.
  • the method of using the simulation model is not limited to the above. For example, it is also possible to compare the output result of the virtual circuit output by the simulation model and the output result of the circuit actually formed on the breadboard 30 with the same circuit. You may enable it to output this comparison result on software.
  • the user can change the standard of the element arranged in the virtual circuit on the simulator or the element arranged on the breadboard 30, for example, to increase the accuracy. It is possible to form a circuit on the breadboard 30 that is high, that is, close to the circuit desired by the user.
  • a circuit may be generated on software, and the generated circuit on the software may be simulated on the server 2 side. By doing so, for example, it is possible to perform simulation in a state that does not depend on the user's environment and upload data.
  • FIG. 21 is a diagram showing the relationship between the circuit according to this modification and the deployed breadboard 30. As shown in FIG. 21, a part of the entire circuit may be extracted and deployed on the breadboard 30. The part to be extracted may be a circuit having one function. In this case, the simulation unit 236 described above may generate a simulation model for other portions in the entire circuit.
  • FIG. 22 is a diagram showing another example in which a part of the circuit is deployed to the breadboard 30. As shown in FIG. 22, a different part may be extracted from the entire circuit and deployed to the breadboard 30A and the breadboard 30B. For example, as described above, it is also possible to divide and mount each function by using a plurality of breadboards 30.
  • the entire circuit may be divided into functions, and the functions may be deployed to the breadboard 30 for each function. By doing in this way, it becomes possible to edit a circuit separately for every function. Further, by connecting each breadboard via the network 4, it is also possible to operate the breadboards 30 at remote locations in synchronization with each other.
  • the server 2 or the cloud server 5 may be provided with the client interaction unit 228 shown in FIG.
  • a circuit can be formed without being limited to the area of the breadboard 30.
  • the virtual circuit (stub) which can set an input and an output is prepared, and the input / output of the said stub is performed.
  • a combination with the breadboard 30 is also possible. By doing so, it is possible to design only a range to be designed in detail or to modify only a part of the circuit.
  • FIG. 23 is a diagram illustrating an example of the configuration of the server 2 according to the present modification.
  • the server 2 further includes a parts ordering unit 238.
  • the component ordering unit 238 generates a component list from element information (circuit component information) about data to be downloaded or download candidates.
  • the element information is included in the arrangement data, for example.
  • the parts ordering unit 238 outputs parts information to the output interface 304 of the client 3 via the network 4.
  • the user places an order for a part via the input interface 302 based on the displayed part information.
  • the parts ordering unit 238 orders parts from an agent or the like based on a request from the user. All the displayed parts may be ordered, or a part desired by the user may be ordered based on a request from the user.
  • an element information storage unit 240 may be provided.
  • the element information storage unit 240 can store information about the elements held by the user based on the user's request.
  • the component ordering unit 238 may extract element information associated with the user and automatically extract a missing component for the circuit specified by the user.
  • a notification that prompts the user to purchase the extracted part via the client 3 may be output.
  • the data stored in the element information storage unit 240 may be automatically generated from image data or the like.
  • information on elements automatically shown in the image is automatically stored in the element information storage unit 240 by photographing the elements that the user has side by side and transmitting the captured image to the server 2.
  • Such an element information extraction unit may be provided.
  • the parts ordering unit 238 has a configuration different from that of the store unit 216, but is not limited thereto, and the part ordering unit 238 may be provided in the store unit 216.
  • FIG. 24 is a diagram illustrating an example of the configuration of the server 2 according to the present modification.
  • the server 2 includes an element information storage unit 240 and an equivalent circuit data generation unit 242.
  • the element information storage part 240 it is the same as that of the modification mentioned above.
  • the equivalent circuit data generation unit 242 determines whether or not there is a missing part in the circuit selected by the user based on the element information that the user has. If there are no missing parts, there is no need to operate.
  • a circuit that can be generated with the elements held by the user and can perform the same operation as the circuit selected by the user is automatically generated.
  • a 200 ⁇ resistor is required as an element to be arranged in the circuit, and there is no 200 ⁇ resistor in the element information storage unit 240 and two 100 ⁇ resistors as element information of the user to be downloaded.
  • the equivalent circuit data generation unit 242 connects these resistors in series to obtain the arrangement of wiring and elements so as to become a 200 ⁇ resistor, and generates signal data and arrangement data.
  • the equivalent circuit data generation unit 242 When there is no diode as component registration information in the element information storage unit 240, but there is an LED, the equivalent circuit data generation unit 242 generates signal data and arrangement data that use the LED instead of the diode.
  • a circuit equivalent to the circuit selected on the breadboard 30 can be formed.
  • the same amount as the purchase of the data that is the source of generation may be presented or the same restriction may be given.
  • FIG. 25 shows an example of the configuration of the server 2 according to another example.
  • a circuit that can be generated from a component that the user has is extracted from the data storage unit and output so as to be downloaded to the user.
  • the server 2 further includes a circuit data extraction unit 244.
  • the circuit data extraction unit 244 collates the components stored in the element information storage unit 240 by the user with the data of components stored in the data storage unit 202 and generates the circuit. Outputs data about the circuit that can be generated from the parts being processed. For example, the data may be extracted based on category information requested by the data search unit 210 or search conditions.
  • Circuit data may be automatically generated not from data arranged and wired on the breadboard 30 but from data such as actual circuits.
  • FIG. 26 shows an example of the configuration of the server 2 according to another example.
  • the server 2 further includes a circuit information data automatic generation unit 246.
  • the circuit information data automatic generation unit 246 automatically outputs the wiring information (signal data) of the breadboard 30 and the arrangement data of the elements and the like when the connection status between the terminals is input to one or a plurality of elements. . For example, it is executed by converting the connection state between the terminals into a description of a net list and changing the signal data to realize the connection state between the terminals based on the net list.
  • FIG. 27 is a diagram showing an example of data conversion according to this modification.
  • the user freely designs a circuit, not on the breadboard 30.
  • a user designs on the software a circuit in which terminals of a power source, a resistor, and an LED are connected to each other as illustrated.
  • the circuit information data automatic generation unit 246 automatically generates wiring and arrangement on the breadboard 30 and generates signal data and arrangement data. For example, a circuit diagram like the example of FIG. 27 is converted into a circuit on the breadboard 30 as shown in the circuit design area 310 of FIG.
  • each of the front and back surfaces of the printed circuit board is photographed and transmitted to the circuit information data automatic generation unit 246 of the server 2 to perform OCR processing and automatically convert it into wiring and arrangement on the breadboard 30.
  • Data may be output.
  • data that cannot be read such as element standards, may be corrected using data input by the user.
  • the circuit-related data generated by the circuit information data automatic generation unit 246 may be uploaded to the data storage unit 202 by the upload unit 200.
  • the wiring and element arrangement of the breadboard 30 can be automatically generated and output locally. Good.
  • the server 2 may further include a wiring visualization unit.
  • the wiring visualization unit may generate data that can visualize the wiring of the breadboard 30 based on the signal data stored in the signal data storage unit 204.
  • Data that can be visualized is data that is displayed using, for example, VR (Virtual Reality) or AR (Augmented Reality) technology.
  • VR Virtual Reality
  • AR Augmented Reality
  • the VR data is transmitted to a tablet terminal or the like, and is output as a VR video.
  • AR data for example, the breadboard 30 is used as an AR marker as an identifier, and wiring data can be displayed via a tablet terminal or the like so as to overlap the breadboard 30.
  • the wiring visualization unit refers to not only the signal data storage unit 204 but also the arrangement data storage unit 206 to generate data. Further, by referring to the circuit data storage unit 208, the description of the circuit and the like may be output together as VR and AR.
  • FIG. 28 is a diagram illustrating an example of the configuration of the server 2 according to the present modification.
  • the server 2 further includes a point management unit 248.
  • the point management unit 248 is connected to the store unit 216, and gives appropriate points to a user who uses the store. The given points are managed for each user.
  • 5 points when uploading circuit data For example, 5 points when uploading circuit data, 2 points when uploaded data is downloaded by other users, 1 point when downloading data uploaded by other users, or purchasing related parts, etc. For each user. You may decide the point to give based on upload frequency etc.
  • the given points can be used in the store unit 216.
  • the points can be used in cooperation with other point services.
  • the purchase amount at the time of downloading may be reduced, or the restriction may be reduced when a restriction is given. Further, it may be handled like a virtual currency, or may be transferred to another user, traded between users, and the like.
  • Users may be ranked based on points. You may make it give a title to the user who became high ranking. As described above, when the ranking or title is given, when the data is searched, the rank of the user with respect to the searched data can be output. The user who downloads can select data to be downloaded with reference to the rank of the uploaded user.
  • points may be used and granted.
  • an event such as uploading a circuit that executes XX can be held.
  • the uploaded data may be evaluated by an administrator or user by voting or the like. Points may be given based on the evaluation. Points may be used for voting. By holding such an event, the frequency of use of the data storage system 1 by the user can be improved.
  • rankings and events are related to points, etc., it is not limited to this.
  • the ranking may be performed separately from the points, and the rank may be changed in the event or the like instead of the points.
  • an incentive such as a discount of money at the time of purchasing data may be given.
  • FIG. 29 is a diagram illustrating an example of the configuration of the server 2 when ranking is performed separately from points.
  • the point management unit 248 is not an essential configuration.
  • a rank management unit 250 may be provided. If there is a rank change as described above for rank information associated with user information stored in the data storage unit 202, the rank management unit 250 manages the rank change. In this way, rank management is performed by the cooperation of the data storage unit 202 and the rank management unit 250.
  • Modification 18 In addition to the above-described search function in the data search unit 210, various functions may be provided.
  • FIG. 30 is a diagram illustrating an example of the configuration of the server 2 according to the present modification.
  • the server 2 further includes a function equivalent circuit search unit 252.
  • the function equivalent circuit search unit 252 searches for functions having the same function but different configurations. This search may be performed by the data search unit 210.
  • filter circuits and the like have many circuits having the same function but different configurations.
  • the function equivalent circuit search unit 252 extracts a circuit having an equivalent function from the result of the data search unit 210 searching. Or you may extract from the data storage part 202. FIG.
  • the result searched by the function equivalent circuit search unit 252 is displayed after the user selects a circuit, for example, “There are other circuits having an equivalent function” and the like, and the equivalent circuit is displayed to the user. You may be encouraged to do so.
  • the intention of purchasing the part may be shown in a reverse auction format.
  • it may indicate an intention to sell the part in an auction format.
  • a circuit that can be generated by adding a small number of components to the components held by the user may be searched and output.
  • the small number of parts may be, for example, a predetermined number of parts such as one or less parts and two or less parts, or parts that can be purchased within a predetermined fee such as 100 yen or 500 yen.
  • the data storage system 1 may include a mechanism for circuit protection.
  • FIG. 31 is a diagram showing an example of the configuration of the server 2 according to this modification.
  • the server 2 further includes a circuit protection unit 254.
  • the circuit protection unit 254 is provided between the network 4 and the upload unit 200, and protects the circuit that the user is trying to upload from causing failure or destruction of at least one of the breadboard 30 and the circuit element. .
  • the circuit protection unit 254 rejects uploading of data related to the circuit.
  • a circuit that may cause a failure is, for example, a circuit in which positive and negative power supplies are directly connected by wiring. Without being limited to this, a circuit that causes a failure is rejected.
  • the discrimination of the circuit to be rejected may be extracted using, for example, a simulator.
  • a predetermined rule file may be generated and the determination may be made based on whether or not the rule file is applicable.
  • ⁇ Insurance can be applied when the breadboard 30 breaks down. For example, a test signal is transmitted to the breadboard 30 to determine whether or not the test has been cleared.
  • the insurance for the breadboard 30 may be applied not only to a circuit based on the downloaded data but also to a failure caused by other factors.
  • a flag indicating whether or not the function can be safely exhibited may be given to the data to be downloaded. This flag is described in circuit data, for example.
  • a flag indicating that the failure has occurred may be added to the data.
  • the download may be temporarily stopped or the download may be frozen.
  • the data storage system 1 can also be provided with a mechanism that protects the breadboard 30 or components such as circuit elements.
  • Modification 20 For circuit information, version management may be performed.
  • FIG. 32 is a diagram illustrating an example of the configuration of the server 2 according to the present modification.
  • the server 2 further includes a version management unit 256.
  • the version management unit 256 is connected to the data storage unit 202 and can perform version management for various data stored in the data storage unit 202.
  • the version management simply means a configuration that can be shared by a plurality of people when editing data.
  • a copy of the uploaded data is created in the version management unit 256 and the copy is edited. Do.
  • the editing may be performed on software or by synchronizing the breadboard 30. As described above, by enabling data editing by a plurality of persons, it is possible to improve the function of stored data.
  • the application is not limited to the improvement of functions, but may be applied to other functions.
  • the data stored in the version management unit 256 may be configured so that the first uploading user has management authority and can commit to the data storage unit 202, or the edited user can use the data storage unit 202 as another data. You may be able to commit to When the edited user commits, the original data may be linked and referred to.
  • data may be reverted or merged.
  • the store unit 216 it is possible to inherit the attributes for the paid, free of charge, etc. uploaded first.
  • FIG. 33 is a diagram illustrating an example of the configuration of the server 2 according to the present modification.
  • the server 2 further includes a conditional data generation unit 258.
  • the conditional data generation unit 258 generates signal data such that the wiring is updated based on a predetermined condition, for example, time series.
  • the user inputs, for example, what kind of wiring is to be made in time series using a GUI or the like.
  • the data is such that it starts with the wiring A at first and becomes the wiring B after a few seconds.
  • This wiring update may be periodically updated.
  • the breadboard 30 side When generating such time-series data, the breadboard 30 side should be configured so that it can be updated in time-series. By doing in this way, it becomes possible to reproduce on the breadboard 30 a circuit whose wiring state changes.
  • the change of the wiring state is not limited to time series, and may be changed according to other predetermined conditions.
  • the predetermined condition is, for example, a case where a potential difference between certain terminals becomes a predetermined potential difference, a case where a current flowing between certain terminals becomes a predetermined amount of current, or the like. By doing so, the circuit on the breadboard 30 can be given a role like a switch.
  • Modification 20 When a circuit diagram or the like is given, it may be converted into various data.
  • FIG. 34 is a diagram illustrating an example of the configuration of the server 2 according to the present modification.
  • the server 2 further includes an other attribute data generation unit 260.
  • the other attribute data generation unit 260 generates other arbitrary data by registering a circuit diagram, an actual wiring diagram, a breadboard wiring diagram, a printed circuit board wiring diagram, and the like.
  • the attribute indicates a class to which a diagram, such as a circuit diagram or an entity wiring diagram, belongs.
  • the function may be used independently from the client 3 connected to the server 2 without using the upload unit 200.
  • the data storage system 1 may convert various information to each other.
  • a plurality of users may be simultaneously connected to the data storage system 1 according to the above-described embodiment. Further, the same or different signal data or the like may be downloaded to a plurality of clients 3 at the same timing. A plurality of users may be able to upload at the same timing. It may be implemented on the cloud, and when distributed management is performed, data may be synchronized at an appropriate timing. Moreover, it is good also as a closed environment instead of an open environment. In other words, access may be made to only a specific small number or a specific large number of users. Of course, it may be made available to an unspecified small number or an unspecified large number of users.
  • the case where various interfaces are provided has been described. However, these interfaces do not have to be provided by each unit, and are provided by an interface management unit (not shown), and necessary interfaces as necessary. May be output to the client 3. That is, the interface management unit may be provided in at least one of the server 2 and the client 3.
  • the client PC 300 does not need to be a computer, and may be a device provided with means necessary for operation.
  • the connection interface between the client PC 300 and the breadboard 30 may be a wired or wireless network.
  • Data storage system 2 Server 200: Upload unit 202: Data storage unit 204: Signal data storage unit 206: Arrangement data storage unit 208: Circuit data storage unit 210: Data search unit 212: Data selection unit 214: Download unit 216 : Store unit 218: Restriction grant unit 220: Use frequency limit grant unit 222: Use time limit grant unit 224: Noise grant unit 226: Circuit protection limit grant unit 228: Client interaction unit 230: Circuit information data generation unit 232: Wiring Generation unit 234: Placement generation unit 236: Simulation unit 238: Part ordering unit 240: Element information storage unit 242: Equivalent circuit data generation unit 244: Circuit data extraction unit 246: Automatic circuit information data generation unit 248: Point management unit 250: Rank management unit 252: function equivalent circuit search unit 254: circuit protection Part 256: Version Control section 258: conditional data generation unit 260: other attribute data generator 3, 3A, 3B: the client 30, 30A, 30B: breadboard 300, 300A, 300B: a client PC 302: input interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

回路作成時における回路情報を格納する情報格納システム、情報格納方法及びプログラムを実現する。データ格納システムは、データ格納部と、アップロード部と、ダウンロード部と、を備える。データ格納部は、外部からの信号により回路構成要素の端子同士の接続状況の変更が制御可能なブレッドボードの配線を変更する信号データ、及び、当該信号データを用いる場合におけるブレッドボード上の回路構成要素の配置を示す配置データ、を紐付けて格納する。アップロード部は、前記データ格納部に前記信号データ及び前記配置データをアップロードする。ダウンロード部は、前記データ格納部に格納されている少なくとも1つの前記信号データ及び前記配置データのうち、少なくとも前記信号データをダウンロードする。

Description

データ格納システム、データ格納システムの制御方法及びプログラム
 本発明の実施形態は、情報格納システム、情報格納方法及びプログラムに関する。
 IoT(Internet of Things)をはじめとするネットワーク技術の発展に伴い、様々な情報がネットワーク内のサーバ等に集約し、又は、分散して格納され、必要とするユーザに使用可能となるように開示されるようになっている。例えば、3Dプリンタ用のCAD(Computer Aided Design)データ等を、あるユーザがクラウド上にアップロードし、他のユーザが当該データをダウンロードすることにより、データの共有をするシステムがある。
 電子回路を作成する際には、プロトタイピングを行うことが多く、このプロトタイピングには、ソルダレスブレッドボード(以下、単にブレッドボードと記載する。)が使用されることが多い。ブレッドボードは、回路の構成要素の着脱が可能であり、様々な状況における回路の作成を手軽に行うことが可能である。しかしながら、構成要素の端子同士を電気的に接続するためには、ジャンパ線といった線材が必要となり、回路の見通しが悪くなり、また、一度作成した回路を再度作成する場合にその再現が不便なこともある。そこで、外部からの情報により配線情報を自由に変更できるブレッドボードが開発されているが、当該配線情報を共有する場が今日提供されていない。
 本実施形態が解決しようとする課題は、回路作成時における回路情報を格納する情報格納システム、情報格納方法及びプログラムを提供することにある。
 一実施形態による情報格納システムは、データ格納部と、アップロード部と、ダウンロード部と、を備える。データ格納部は、外部からの信号により回路構成要素の端子同士の接続状況の変更が制御可能なブレッドボードの配線を変更する信号データ、及び、当該信号データを用いる場合におけるブレッドボード上の回路構成要素の配置を示す配置データ、を紐付けて格納する。アップロード部は、前記データ格納部に前記信号データ及び前記配置データをアップロードする。ダウンロード部は、前記データ格納部に格納されている少なくとも1つの前記信号データ及び前記配置データのうち、少なくとも前記信号データをダウンロードする。
一実施形態におけるブレッドボードの概略を示す図。 一実施形態に係るデータ格納システムの概略を示す図。 一実施形態に係るサーバの一例を示す図。 一実施形態に係るクライアントの一例を示す図。 一実施形態に係るアップロード動作の一例を示すフローチャート。 一実施形態に係るアップロード中のクライアント3における表示例。 一実施形態に係るダウンロード動作の一例を示すフローチャート。 一実施形態に係るダウンロード中のクライアント3における表示例。 一実施形態に係るサーバの一例を示す図。 一実施形態に係るサーバの一例を示す図。 一実施形態に係る制限付与部の一例を示す図。 一実施形態に係るノイズ付与の一例を示す図。 一実施形態に係る回路保護の位置例を示す図。 一実施形態に係る複数ブレッドボード制御の一例を示す図。 一実施形態に係る複数ブレッドボード制御の一例を示す図。 一実施形態に係る複数ブレッドボード制御の一例を示す図。 一実施形態に係るブレッドボード操作の一例を示す図。 一実施形態に係るブレッドボード操作の一例を示す図。 一実施形態に係るサーバの一例を示す図。 一実施形態に係るサーバの一例を示す図。 一実施形態に係るブレッドボードにデプロイする回路の一例を示す図。 一実施形態に係るブレッドボードにデプロイする回路の一例を示す図。 一実施形態に係るサーバの一例を示す図。 一実施形態に係るサーバの一例を示す図。 一実施形態に係るサーバの一例を示す図。 一実施形態に係るサーバの一例を示す図。 一実施形態に係る回路データへの変換例を示す図。 一実施形態に係る回路データへの変換例を示す図。 一実施形態に係る回路データへの変換例を示す図。 一実施形態に係る回路データへの変換例を示す図。 一実施形態に係る回路データへの変換例を示す図。 一実施形態に係る回路データへの変換例を示す図。 一実施形態に係る回路データへの変換例を示す図。 一実施形態に係る回路データへの変換例を示す図。
 以下、図面を参照しながら本実施形態について詳細に説明する。本実施形態は、本発明を限定するものではない。なお、特に明記しない限り各図において同一の符号は同一のものを示し、説明を省略することがある。
 説明において、「ソフトウェア」と記載されている箇所は、ソフトウェアによる情報処理がハードウェア資源を用いて具体的に実現されるものを一般的に示す。このソフトウェアは、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、又は、当該ソフトウェアの動作を行うための基板及び回路構成要素により生成された回路等の回路により同等の動作が行ってもよい。また、ソフトウェアは、Web上のアプリケーション、ローカルで動作するアプリケーション、又は、サーバサイドで動作するアプリケーションにおいて機能するものであってもよい。
 図1は、本実施形態において最終的なクライアントとなるブレッドボード30の概略を示す図である。このブレッドボード30は、外部からの信号を受信し、当該信号に基づいて、各端子同士の接続状況を変更することが可能であるプログラマブルブレッドボードである。
 ブレッドボードは、一般的に、図1における領域R01内の各端子着脱部が電気的に接続され、他の領域に属する端子着脱部とは絶縁される。絶縁されている領域同士を回路構成要素(素子)や線材を用いて電気的に接続することにより、回路における配線を実現する。電気的な接続は、例えば、制御信号がスイッチの制御をすることにより行われる。
 プログラマブルブレッドボードは、外部からの信号によりソフトウェア又はハードウェアにおいてこの配線を制御するものである。例えば、外部からの信号により、領域R01と領域R03とを接続し、領域R04と領域R05とを接続し、領域R09と領域R11とを接続するように制御する。この結果、電源、LED及び抵抗が直列に接続され、LEDを点灯させることが可能となる。さらに粒度を高め、領域ではなく、各端子着脱部同士を電気的に接続するように制御されるものであってもよい。
 ブレッドボード30は、電源又は各種測定器をその配線に接続されるように備えていてもよい。このように電源又は測定器を備えることにより、外部からの制御に基づいて、任意の領域間に電位差を印加したり、任意の領域間の電圧、電流等の計測を行ったりすることが可能となる。これらの制御は、ブレッドボード30において行ってもよいし、ブレッドボード30が接続されるクライアント又はサーバが行ってもよい。例えば、上記の例においては、電源は外部に備えられているが、ブレッドボード30の電源を用いることにより、LEDを点灯させてもよい。
 本実施形態に係るデータ格納システム1は、このような配線の制御を行う信号データと、ブレッドボード30上に配置する素子のデータとを紐付けて格納するシステムである。
 図2は、本実施形態に係るデータ格納システム1の概略を示す図である。データ格納システム1は、ブレッドボード30を用いて生成した回路を他のユーザに公開、又は、他のユーザと共有することを可能とする。データ格納システム1は、サーバ2を備える。また、別の観点からすると、クライアント3を含む概念であってもよい。
 サーバ2は、データ格納システム1のデータの格納、データのアップロード又はダウンロード等をするサーバである。格納されるデータは、上述したように、ブレッドボードにおける配線を制御する信号データである。さらに、各信号データについて、ブレッドボード上に配置する素子の配置データを紐付けて格納してもよい。サーバ2は、クライアント3とネットワーク4を介して接続される。また、サーバ2は、その機能及びストレージ等は、集中型であってもよいし、クラウド上に実装された分散型であってもよい。
 信号データは、例えば、領域同士の接続状況が記載されたテキストデータ又はバイナリデータである。領域同士の接続状況とは、領域R01と領域R03、領域R04と領域R05、領域R09と領域R11がそれぞれ接続されていることを示すデータである。例えば、次の段落に記載しているように接続される領域同士を一行で表すテキストデータであってもよい。以下の例では、2つの領域ごとに接続状況が記載されているが、3つ以上の領域同士が接続される場合には、3つ以上を羅列するようにしてもよい。
R01 R03
R04 R05
R09 R11
 なお、表記例又はファイルの格納例は、上記には限られない。例えば、各接続が何の接続をしているのかを示すコメントが付与され、編集しやすいようにしてもよい。また、例えば、動的に配線を変更する場合に備え、上記の3行の接続状態の前に、initialize命令、3行の接続状態の後にconnect命令等の命令文を付与し、接続状態を示すのみならず、制御信号を示すファイルとしてもよい。3行まとめて接続命令を出すのではなく、1行ごとに、connect R01 R03、・・・等と命令文を示すファイルとしてもよい。また、HDL(Hardware Description Language)等により記載されたものであってもよい。このように、配線についての制御を適切に記述でき、ブレッドボード30において制御信号へと変換可能なものであれば、どのような形式をとってもよい。
 配置データは、例えば、素子の種類、規格等、及び、各素子の端子の配置状態が記載されたテキストデータ又はバイナリデータである。バイナリデータは、画像データを含むデータであってもよい。ここで、素子の種類とは、例えば、レジスタ、キャパシタ、といった回路構成要素の種類のことであり、素子の規格とは、例えば、1Ω、10pF、といった回路構成要素それぞれの種類に応じた抵抗値、静電容量といったものである。配置データには、必要となる素子のデータを備えていてもよい。また、別途必要となる素子のデータである、回路構成要素データを配置データとは別に備えるものであってもよい。
 クライアント3は、主にユーザにより用いられる機器である。例えば、コンピュータを備え、コンピュータを介してブレッドボード30を制御するものであってもよい。ユーザは、クライアント3から、信号データ及び配置データをアップロードしたり、ダウンロードしたりする。
 ネットワーク4は、例えば、インターネット回線であってもよい。使用するプロトコル、ネットワークの回線の方式等は特に限定されるものではない。例えば、プロトコルとしては、TCP/IP、UDP、あるいは、FTP等が用いられてもよい。
 図3は、データ格納システム1を構成するサーバ2について模式的に示す図である。なお、以下の説明において、サーバ2の構成は、ソフトウェアにより実現されるものであってもよいし、ハードウェアにより実現されるものであってもよい。また、一部の処理をソフトウェアで行い、他の処理をハードウェアで行うものであってもよい。ソフトウェアによる実装は、サーバサイドで稼働するアプリケーション(例えば、ウェブアプリケーション)であってもよいし、一部の機能がクライアント3側で起動するネイティブなアプリケーションであってもよい。
 サーバ2は、アップロード部200と、データ格納部202と、データ検索部210と、データ選択部212と、ダウンロード部214と、を備える。なお、データ検索部210及びデータ選択部212は、必須の構成ではない。
 アップロード部200は、クライアント3とネットワーク4を介して接続され、ユーザからの要求に基づいて、信号データ及び配置データをデータ格納部202へとアップロードする。ユーザは、配線を設定し、素子を配置して生成したブレッドボード上の回路の全てのデータ、又は、必要に応じてその一部のデータを、アップロード部200を介してアップロードすることが可能である。
 アップロード部200は、クライアント3に出力(表示)され、信号データ及び配置データをアップデートするためのインターフェースを備えていてもよい。インターフェースには、例えば、どのような回路であるかをチェックボックス形式で入力できるインターフェース、カテゴリを選択できるインターフェース、及び、回路についての説明文の入力ができるインターフェース等のうち少なくとも1つがさらに備えられていてもよい。
 データ格納部202は、少なくとも信号データ格納部204と、配置データ格納部206と、を備える。信号データ格納部204は、上述した、配線の制御を行うための信号を備えるデータである信号データを格納する。配置データ格納部206は、上述した、素子の配置情報を備えるデータである配置データを格納する。対応する信号データと配置データは、紐付けられて格納される。この他にデータ格納システムがユーザ認証を行っている場合、システムにログインすることができる登録ユーザ、登録待機状態である登録待ちユーザ等の情報を格納する、ユーザ情報格納部を備えていてもよい。
 データ格納部202はまた、回路データ格納部208を備えていてもよい。回路データ格納部208は、信号データ格納部204及び配置データ格納部206に格納されているデータそれぞれについての紐付け情報を格納してもよい。さらに、信号データ及び配置データの組み合わせで実現される回路についての説明、カテゴリ等を備えているデータを格納してもよい。これらのデータは、主キーを有するデータベースで管理されるデータであってもよいし、XML等の記述により管理されるデータであってもよい。
 回路についての説明とは、例えば、信号データ及び配置データの組み合わせで実現される回路がどのような機能を果たすのか、どのような動作を行うのかを示す説明である。カテゴリとは、例えば、LED点灯回路、電圧測定回路、等の説明ほど詳しくはないが、当該回路が有する機能等における上位概念を示す情報である。
 データ検索部210は、ユーザから検索を受け付けるインターフェースを備え、ユーザの検索指令に応じて、データ格納部202に存在するデータの検索を行う。インターフェースは、クライアント3に出力されるようにし、ユーザは、クライアント3に表示されたインターフェースを介してデータ検索部210へと検索条件を入力する。
 データ検索部210は、入力された検索条件に基づいて、信号データ格納部204及び配置データ格納部206に格納されているデータの検索を行う。回路データ格納部208を備える場合、回路データ格納部208に格納されている説明又はカテゴリの情報等をもとに検索を行うようにしてもよい。回路データに基づいて検索を行うことにより、例えば、カテゴリでの検索、又は、より詳細な回路の機能、動作での検索を行うことが可能となる。単語又は文章の入力に対して、類義語検索(シソーラス検索)を行うようにしてもよい。さらに、文章の入力に対しては、ニューラルネットワーク等により機械学習されたモデルを用いて検索を行うようにしてもよい。検索された各データには、当該データをアップロードしたユーザの情報が付与され、当該ユーザの情報も出力されてもよい。
 データ選択部212は、データ検索部210により検索されたデータを、信号データ格納部204及び配置データ格納部206から選択し、ダウンロードの準備をする。データ選択部212は、クライアント3に出力するためのインターフェースを有していてもよい。このインターフェースには、ユーザに、当該信号データ及び当該配置データをダウンロードするか否か、又は、別の検索を続けておこうか否か等の情報を出力するようにしてもよい。また、選択されたデータについて、後述するように何らかの制限が課されている場合には、インターフェースを介して当該制限をユーザに対して出力するようにしてもよい。ユーザがインターフェースを介してダウンロード又は再検索等の入力を行った場合、データ格納システム1は、当該入力に対応する動作を行う。
 ダウンロード部214は、クライアント3とネットワーク4を介して接続され、データ選択部212が選択したデータをクライアント3へと転送する。ユーザはこのダウンロード部214を介して望んでいる信号データ及び配置データを取得することが可能となる。クライアント3は、ユーザが望んでいる回路に対し、当該回路の全てのデータ、又は、必要に応じてその一部のデータを、ダウンロード部214を介してダウンロードすることが可能である。
 なお、ダウンロード部214は、クライアント3から直接に指定されたディレクトリ内にあるデータ又は直接パスが指定されたデータ等をダウンロードするようにしてもよい。この場合、上述したように、データ検索部210及びデータ選択部212は、必ずしも備えられている必要は無い。
 アップロード部200及びダウンロード部214は、それぞれに異なるネットワークインターフェースを備えていてもよいし、サーバ2に備えられているネットワークインターフェースを介して通信を行ってもよい。また、各部がユーザに出力するためのインターフェースを備える場合、各インターフェースは、ネットワークインターフェースを介してクライアント3へと送信されてもよい。
 図4は、クライアント3の一例の概略を示す図である。クライアント3は、例えば、クライアントPC 300と、入力インターフェース302と、出力インターフェース304と、ブレッドボード30と、を備える。上述したように、クライアント3は、データ格納システム1に構成要素として組み込まれているものであってもよいし、データ格納システム1の構成要素としてではなくデータ格納システム1へデータを送受信可能な独立したシステム又はデバイス等であってもよい。
 クライアントPC 300は、例えば、CPU、メモリ等を搭載し、ネットワーク4を介してデータのやりとりを行う。また、ブレッドボード30における配線等の制御をクライアントPC 300が行ってもよい。クライアントPC 300は、入力インターフェース302及び出力インターフェース304を備える構成であってもよい。さらに、クライアントPC 300においてブレッドボード30の配線を設計してもよい。この設計は、ソフトウェア上でGUI(Graphical User Interface)等によりソフトウェア上で行われてもよいし、ソフトウェアで行われるものではなく単純にテキストファイル等の編集で行うものであってもよい。本実施形態に限られず、後述する各種変形例についても同様である。
 入力インターフェース302は、例えば、キーボード、マウス、マイク等のユーザの入力を受け付けるデバイスを備える高レベルのインターフェース(マンマシンインターフェース)、又は、当該デバイス等のデータを受信するUSB(Universal Serial Bus)等の低レベルのインターフェースである。ユーザは、入力インターフェース302を介してクライアントPC 300に対する入力を行う。また、ブレッドボード30が配線をされている状態において、当該配線に関するデータを、入力インターフェース302を介してクライアントPC 300に入力するようにしてもよい。
 出力インターフェース304は、例えば、モニタ、スピーカ等のユーザへ情報を出力するデバイスを備える高レベルのインターフェース(マンマシンインターフェース)、又は、当該デバイス等へデータを送信するUSB等の低レベルのインターフェースである。例えば、ユーザがデータのダウンロードを行う場合に、ダウンロードするデータに関する情報、説明等を出力する。また、クライアントPC 300で生成した配線データ、当該配線データに基づく制御信号、ダウンロードした信号データ、又は、ダウンロードした信号データに基づいた制御信号を、ブレッドボード30へと送信するインターフェースであってもよい。
 入力インターフェース302と、出力インターフェース304は、必ずしも別々のインターフェースでなくてもよい。例えば、USBに代表されるデータ入出力のインターフェースである場合、USBは、入力インターフェース302と、出力インターフェース304との機能を兼ねるものである。別の例として、タッチパネル付モニタ等も双方の機能を兼ねるものである。
 ブレッドボード30は、上述したように、信号によりその配線状態を変更することができるプログラマブルブレッドボードである。ブレッドボード30は、例えば、USB等のインターフェースを備え、クライアントPC 300から信号データ又は制御信号を受信し、その配線を変更することが可能である。また、配線状態をクライアントPC 300に出力することも可能である。このデータの入出力は、クライアントPC 300が主導で行ってもよいし、ブレッドボード30が主導で行ってもよい。
 次に、アップロード及びダウンロードにおけるデータ格納システム1の動作についてフローチャートを用いて説明する。
 図5は、データをアップロードする場合のデータ格納システム1の動作を示すフローチャートである。
 まず、クライアント3側で、アップロードするためのアプリケーションが起動される(S300)。起動されたアプリケーションにより、例えば、サーバ2とクライアント3との間で接続が確立される。なお、アプリケーションを立ち上げるには限られず、コマンドライン上でコマンドを打ち込むことにより、サーバ2と接続を確立し、アップロードの準備をするようにしてもよい。この場合、例えば、サーバ2とクライアント3との間で使用するポート、プロトコルを予め決めておき、当該ポート、プロトコルにより通信を行うようにしてもよい。
 次に、アプリケーションの起動信号を受信したサーバ2、又は、アプリケーションからの接続要求を受信したサーバ2は、アップロードの待機状態へと移行する(S200)。待機状態へと移行したことをクライアント3へと送信し、出力インターフェース304を介してユーザに通知するようにしてもよい。この通知は、アプリケーションが行ってもよいし、標準出力へと出力されてもよい。
 接続をする際、所定の認証プロセスを介し、クライアント3又はクライアント3を使用するユーザが認証されているユーザであるか否かを判断して、ログインするようにしてもよい。認証には、例えば、クライアント3又はユーザに一意的に割り振られたIDと、当該IDに対応するパスワードとを用いてもよい。また、別の例として、クライアント3に接続されているブレッドボード30に一意的に割り振られたID等を用いて認証を行ってもよい。
 さらには、ユーザに割り振られたIDと、ブレッドボード30に割り振られたIDとを別々に管理し、ユーザのログイン情報と、ブレッドボード30の認識とを別々に行うようにしてもよい。すなわち、ユーザとブレッドボード30とは必ずしも1対1の関係ではなく、1対多、多対1、又は、多対多の関係であってもよい。ブレッドボード30は、あらかじめ準備された認証プロセスにより1台1台認証するようなデータを生成するものであってもよい。または、ブレッドボード30に割り振られているMACアドレスの情報をIDとして用いるようにしてもよい。このように認証することにより、ユーザ固有及びブレッドボード30固有の機能をそれぞれ別に使用できるようにサーバ2が動作してもよい。
 次に、アップロード待機状態となったことを受け付けたクライアント3は、信号データ、配置データ及び回路データのうち必要となる各種データをサーバ2へとアップロードする(S302)。なお、このアップロードは、必ずしもクライアントPC 300を介して行う必要は無い。特に、配線に関する信号データについては、ブレッドボード30からネットワーク4を介してサーバ2へとデータ送信されるものであってもよい。この場合、ブレッドボード30がネットワークインターフェースを備えていてもよく、クライアントPC 300又はサーバ2からブレッドボード30へとアップロード要求を行い、それに対してブレッドボード30がアップロードをするようにしてもよい。
 次に、データを受信したサーバ2は、各種データをそれぞれの格納部へと格納する(S202)。このように、クライアント3からサーバ2へと各種データがアップロードされる。
 図6は、アップロードのタイミングにおいて、クライアント3の出力インターフェース304に出力されるアプリケーションのGUIの一例を示す図である。以下の図において、各表示領域のレイアウト等は一例として描画したものであり、これらのレイアウトに限定されるものではなく、同等の機能を有するものであればよい。また、説明のため、ブレッドボードの描画は、非常に単純なものとしている。
 例えば、クライアント3において起動されるアプリケーションには、図のように回路設計領域310が表示される。一例として、回路設計領域310に描画されている端子着脱部は、上下方向に電気的に接続され、左右方向に絶縁されているものとする。ユーザは、回路設計領域310において回路の設計を行う。部品一覧を表示させておき、例えば、マウスのドラッグ&ドロップ等により素子を配置できるようにしてもよい。各素子について、使用素子表示領域312にその素子に関する情報を入力できるようにしてもよい。
 回路データに説明を付与するために、説明入力領域314を備えていてもよい。さらに、回路のカテゴリを示すカテゴリ選択領域316を備えていてもよい。カテゴリ選択は、選択するだけには限られず、ユーザが自由に記載できるように入力領域を備えていてもよい。これらの説明データ、カテゴリデータは、アップロードする際に、回路データとして信号データ、配線データとともに紐付けられて格納されるものであってもよい。
 設計した回路は、例えば、配線書込ボタン318を押下することによりブレッドボード30へと出力され、ブレッドボード30の配線情報が更新される。このように、更新された配線において、実際に素子を配置し、動作することを確認できる。配線書込ボタン318の他に、配線の制御信号を生成するための信号データを生成する、信号データ生成ボタンが別途備えられてもよい。この場合、信号データ生成ボタンを押下することにより、回路設計領域310において設計された回路情報に基づいて、図示しない信号データ生成部が信号データを生成するようにしてもよい。
 アップロードボタン320を押下することにより、アプリケーションに表示されているデータをサーバ2へとアップデートする。
 回路データ保存ボタン322を押下することにより、例えば、クライアントPC 300に当該回路に関するデータを保存する。別の例として、ブレッドボード30に記憶領域となるメモリが搭載されていてもよく、ブレッドボード30に当該回路に関するデータ保存されてもよい。さらに、回路データ保存ボタン322を押下した後に、保存先を、クライアントPC 300又はブレッドボード30を選択できるようにしてもよい。或いは、アップロードボタン320を省略し、回路データ保存ボタン322を押下した後に、保存先としてサーバ2を選択できるようにしてもよい。このようにすることで、アップロードボタン320の機能を兼ね備えてもよい。
 ボード情報取込ボタン324を押下することにより、押下するタイミングにおけるブレッドボード30の配線情報を取り込んでもよい。例えば、回路設計領域310で設計している間、ブレッドボード30に表示されている配線を同期する前において、ブレッドボード30の配線情報に回路設計領域310の情報を戻したい場合等に使用する。
 上記のボタン例は、あくまで一例として示したものであり、他に必要なボタンの設置を妨げるものではない。アプリケーションである場合、各ボタンに対応する動作手段がアプリケーションに備えられている。また、アプリケーションを用いる例を示したが、これらは上述したようにコマンドラインを介して行うことが可能な動作であってもよい。アプリケーションは、サーバサイドで起動しているアプリケーションでもよく、この場合、クライアントPC 300においては、GUIを表示し、GUIを介して信号を送受信するアプリケーションを用いることとしてもよい。例えば、一般的なウェブブラウザであってもよい。図8におけるダウンロードの説明においても同様である。
 なお、上述したようにデータ格納システム1としては、少なくともサーバ2側で動作すればよく、クライアント3における種々の処理は、当該処理における送受信データさえあればよい。クライアント3からの通信に基づいてサーバ2を動作させること、すなわち、サーバ2におけるデータの格納、データの入出力がデータ格納システム1の主たる動作である。以下に説明するダウンロードの場合においても同様である。
 次に、データをダウンロードする場合のデータ格納システム1の動作を、フローチャートを用いて説明する。
 図7は、データをダウンロードする場合のデータ格納システム1の動作を示すフローチャートである。
 まず、クライアント3側で、ダウンロードするためのアプリケーションが起動される(S310)。アップロードの場合と同様に、接続が確立される。
 次に、アプリケーションの起動信号を受信したサーバ2、又は、アプリケーションからの接続要求を受信したサーバ2は、ダウンロード待機状態へと移行する(S210)。待機状態へと移行したことをクラインと3へと送信し、出力インターフェース304を介してユーザに通知するようにしてもよい。この通知は、アプリケーションが行ってもよいし、標準出力へと出力されてもよい。認証に関しても、アップロードの場合と同様である。
 次に、ダウンロード待機状態となったことを受け付けたクライアント3は、検索条件をユーザから受け付ける状態へと移行する。ユーザから検索条件を受け付けると、当該検索条件をサーバ2へと送信する(S312)。検索条件は、回路データに含まれる説明文、又は、カテゴリ情報等に基づいて決定する。これらの情報は、ユーザが選択できるようにしてもよいし、ユーザが、例えば、日本語で検索できるようにしてもよい。
 次に、サーバ2のデータ検索部210は、クライアント3から受信した検索条件に基づいて、回路データを検索し、検索された回路データに紐付いている信号データ、配置データ及び回路データの情報を取得する(S212)。取得されるデータセットは、1組ではなく、複数のデータセットであってもよい。また、必ずしも、信号データ、配置データ及び回路データの全てを取得する必要は無く、ユーザがいずれの回路をダウンロードするかを選択しやすいように、回路データの内説明に関するデータ及び配置データの内少なくとも1つを取得するようにしてもよい。
 次に、サーバ2のデータ検索部210は、クライアント3へと検索された結果を出力する(S214)。クライアント3は、データ検索部210から受信したデータを、例えば、出力インターフェース304を介してユーザへと表示する。ユーザは、表示されたデータから望んでいるデータを入力する。
 次に、入力インターフェース302を介してユーザによる検索結果の選択についての入力を受け付けたクライアント3は、選択されたデータがどのデータであるかをサーバ2へと送信する(S314)。なお、このタイミングにおいてユーザは、自分が望んでいるデータが検索されなかった場合、ダウンロードを中止してもよいし、検索条件を変更して再検索を行うようにしてもよい。
 次に、クライアント3からユーザの選択を受信したサーバ2のデータ選択部212は、検索結果から選択されたデータを抽出し、当該データと紐付けられている信号データ、配置データ及び回路データのうち、少なくとも信号データと配置データをクライアント3へとダウンロードする(S218)。なお、配置データは、S214においてクライアント3にダウンロードされていてもよく、この場合、S218における配置データの取得は必須ではない。
 このように、ユーザが望む検索条件に基づいて、検索を行い、当該検索結果からユーザが望む回路情報を含む信号データ等がクライアント3へとダウンロードされる。
 図8は、ダウンロードのタイミングにおいて、クライアント3の出力インターフェース304に出力されるアプリケーションのGUIの一例を示す図である。図6と同様に、各表示領域のレイアウト等は一例として描画したものであり、これらのレイアウトに限定されるものではなく、同等の機能を有するものであればよい。
 検索結果表示領域330には、サーバ2において検索された1又は複数の回路についての情報が検索結果表示部により表示される。表示される情報は、例えば、素子の配置データ、必要となる素子データ等のデータである。さらに、アップロード時に付与された説明文、カテゴリ情報が表示されるものであってもよい。さらにまた、アップロードしたユーザに関する情報、例えば、ユーザのハンドルネーム等、また、アップロードされた日付等も表示されてもよい。
 なお、アプリケーションが立ち上げられた際には、何も表示されて無くてもよい。別の例として、アプリケーションが立ち上げられた際には、キャッシュ情報を取得し、直近の検索で得られた結果が表示されるようにしてもよい。
 検索条件入力領域332は、ユーザにより検索の条件が入力される領域である。検索条件入力領域332には、例えば、望んでいる回路の条件を単語で入力する。複数の単語が入力された場合には、アンド検索を行ってもよいし、オア検索を行ってもよいし、アンドかオアかをユーザが切り替えられるようにしてもよい。また、文章が入力されてもよい。この場合、サーバ2のデータ検索部210は、文章を検索するアルゴリズムを使用する。データファイルのパス、データファイルの存在するディレクトリ等の情報が分かっている場合には、パス又はディレクトリの情報を直接的に入力できるようにしてもよい。
 カテゴリ選択領域334が備えられていてもよい。カテゴリ選択をおこなって検索を行うことにより、アップロード時にカテゴリが付与された場合には、カテゴリに基づいて検索することが可能となる。なお、アップロード、ダウンロードともに、カテゴリの付与は必須ではなく、カテゴリの選択ができないようなデータ格納システム1の構成であってもよい。
 検索ボタン336が押下されると、検索条件がサーバ2へと送信部により送信される。サーバ2においてデータの検索が終了し、検索結果が送信されてくると、検索結果表示領域330に図示するように、例えば、素子の配置情報及び必要となる素子の情報が出力される。ユーザは、この検索結果表示領域330に表示された1又は複数の検索結果から自分が望んでいる回路を選択する。
 検索条件入力領域332に、データファイルのパスが直接入力された場合には、当該ファイルの存在確認結果を表示してもよいし、ディレクトリが直接入力された場合には、当該ディレクトリに存在するデータファイル又は子ディレクトリ等を表示するようにしてもよい。なお、データファイルのパスが直接入力され、データが存在している場合には、検索結果表示領域330に表示することなく、自動的にダウンロード開始されるようにしてもよい。この場合、ダウンロードするか否かをユーザに確認させるようにしてもよい。
 回路を選択した後、ダウンロードボタン338を押下すると、リクエスト送信部により、選択した回路についてデータをダウンロードするようにサーバ2へとリクエストが送信される。そして、当該回路に関する信号データ及び配置データがサーバ2からダウンロードされ、データ受信部により、各種データが受信される。なお、配置データに関しては検索結果の受信と同じタイミングで受信しているものであってもよい。この場合、再度ダウンロードする必要はない。なお、同じタイミングとは、通信遅延、コンピュータの処理遅延等のレイテンシを含む概念であってもよい。すなわち、必ずしも同時に受信する必要は無い。
 ダウンロードした回路に関するデータをローカル、すなわち、クライアントPC 300又はブレッドボード30内のメモリ等に保存したい場合、回路データ保存ボタン340を押下する。回路データ保存ボタン340が押下されると、ダウンロードした回路に関するデータがデータ保存部によりローカルに保存される。ローカルに保存されるデータは、再利用できるようにしてもよい。別の例として、ローカルに保存されたデータを編集し、新たな回路を生成できるようにしてもよい。
 配線情報書込ボタン342が押下されると、ダウンロードした回路情報がブレッドボード30へと反映(デプロイ)される。すなわち、ダウンロードした信号データに基づいて、配線制御部が、ブレッドボード30の配線の制御を行う。
 ユーザは、ブレッドボード30上において配置データに基づいて素子を配置することにより、望んだ機能を発揮する回路を製作することが可能となる。
 上述した図6の説明と同様にこれらの領域又はボタンは必ずしも全て必須というわけではない。また、コマンドラインからの入力によりデータをダウンロード及びブレッドボード30への配線の制御を行うことも可能である。
 以上のように、本実施形態によれば、プログラマブルブレッドボードにおける配線情報をネットワーク上のサーバ又はストレージ上に格納することができ、複数のユーザで同じ配線を共有することが可能となる。複数のユーザには限られず、1人のユーザのブレッドボード30の配線情報をバックアップすることも可能となる。
 以下、種々の変形例について説明する。
 (変形例1)
 上述したデータ格納システム1は、ログイン機能を備えることが可能である。ユーザは、割り振られたIDを用いてログインするようにしてもよい。ログインする際には、パスワード、生体認証等の認証手段を用いてもよい。このように認証することにより、ユーザがアップロード又はダウンロードしたデータ、及び、ユーザの検索履歴等がユーザの権限で閲覧できるようにしてもよい。
 本変形例において、サーバ2はさらに、ユーザ認証部を備える。さらに、認証をするために必要となるハッシュ値等を格納する、ユーザ認証データ格納部を備えていてもよい。また、履歴情報等をユーザIDと紐付けて格納する、ユーザ履歴情報格納部を備えていてもよい。クライアント3側にアプリケーションがある場合、当該アプリケーションは、一度記入されたユーザID及びパスワードを記憶する機能を有していてもよい。
 本変形例によれば、ユーザが以前に使用したクライアント3とは別のクライアント3からログインした場合にも、ユーザの履歴情報等を参照することが可能となる。
 (変形例2)
 ユーザとは別にブレッドボード30ごとに認証を行うようにしてもよい。ブレッドボード30がクライアント3を介してサーバ2に接続されると、当該ブレッドボード30において過去に使用した回路情報等の過去の履歴データを閲覧できるようにしてもよい。上述したように、ブレッドボード30ごとに割り振られたIDを用いて認証するようにしてもよい。認証には、ブレッドボード30のMACアドレスを用いてもよい。別の例として、ブレッドボード30に装着することが可能な外部のチップ、又は、ブレッドボード30に搭載されている固定のチップに格納されている識別子を用いてもよい。格納されているだけには限られず、チップに固有の一意的な値を用いてもよい。
 本変形例において、サーバ2はさらに、ブレッドボード認証部を備える。さらに、認証をするために必要となるハッシュ値等を格納する、ブレッドボード認証データ格納部を備えていてもよい。また、履歴情報等をブレッドボードIDと紐付けて格納する、ブレッドボード履歴情報格納部を備えていてもよい。
 本変形例によれば、複数のユーザが同一のブレッドボード30を用いる場合に、クライアント3から当該ブレッドボード30における配線状況を再現することも可能である。すなわち、別の環境において、同一の配線を再現することができるようになる。
 (変形例3)
 ユーザとブレッドボード双方の認証を行えるようにしてもよい。この場合、さらに、ユーザとブレッドボードとを紐付ける情報をサーバ2又はクライアント3において保持しておいてもよい。サーバ2に保持される場合、以前作業を行ったクライアント3と別のクライアント3を用いて作業をする場合においても、ユーザとブレッドボード30との紐付け関係をユーザは閲覧することが可能となる。
 このように、双方の認証をすることにより、ユーザが複数のブレッドボード30に同一の配線をするように制御したり、逆に、他のユーザにより、あるブレッドボード30に紐付けられた配線情報を他のブレッドボード30へと再現したりすることが可能となる。
 本変形例によれば、ユーザ、ブレッドボード30の双方との紐付け情報から、さらなるユーザの利便性を向上することが可能となる。
 (変形例4)
 サーバ2は、データの売買を行うストア部を備えていてもよい。
 図9は、ストア部を備えるサーバ2の一例を示す図である。サーバ2は、ストア部216をさらに備える。ストア部216は、データがアップロードされるタイミングで当該データに対する売買金額を設定することができる。例えば、アップロードされたデータを販売したい場合、ユーザが金額を指定できるようにしてもよい。
 別の例として、システムの管理権限を有する者が金額を指定できるようにしてもよい。この金額は有償であるとは限られず、無償、すなわち、0円であってもよい。ストア部216は、この金額データをアップロードするデータと紐付けて格納するストアデータ格納部を備えていてもよい。
 一方、データをダウンロードするタイミングにおいて、データをダウンロードするユーザは、データに紐付けられた金額でデータを購買することによりダウンロード可能な状態となる。ストア部216は、この購買及びダウンロード許可についての動作を行う。ストデータ格納部が備えられている場合、ストアデータ格納部において紐付けられている金額データを参照し、ストア部216は、ユーザへと金額を提示する。金額の提示のタイミングは、データ検索部210がデータを検索し、表示するタイミングであってもよいし、データ選択部212によりデータが選択されたタイミングであってもよい。
 なお、図9においては、ダウンロード部214とネットワーク4との間にストア部216が備えられているがこの構成には限られない。ストア部216の購買結果に基づいてダウンロード部214がデータを送信するように、ストア部216とネットワーク4との間にダウンロード部214が備えら得ていてもよい。
 本変形例によれば、データ格納システム1は、ストア部216を備えることが可能であり、ストア部216により、データの売買を行うことを可能とする。データが売れた場合には、当該データをアップロードしたユーザに、金線又は金線以外のインセンティブを与えるようにしてもよいし、データ格納システム1を販売代理店のように利用できるようにしてもよいし、データ格納システム1を単なる店舗用の場所として提供するようにしてもよい。なお、金銭のやりとりは、ユーザの資産口座からの引き落とし、クレジットカード、電子マネー等、電子的に商取引できる方法、又は、振込用紙等で振り込むと言った商取引方法で行うことができる。
 ストア部216においてアップロード又はダウンロードしたデータは、アップロード履歴又はダウンロード履歴としてユーザID又はブレッドボードIDと紐付けて管理してもよい。この管理データもストアデータ格納部が格納してもよい。例えば、ユーザIDとダウンロード履歴を紐付けることにより、ユーザが購入したデータについて別の環境においてもダウンロード可能となる。同様に、ブレッドボードIDとダウンロード履歴を紐付けることにより、ブレッドボードが別の環境にある場合においても購入したデータを当該ブレッドボードにダウンロード(デプロイ)可能となる。
 (変形例5)
 前述した変形例4においては、データを売買することを可能とするストア部216を備えることを説明したが、有償でダウンロードしたデータと、無償でダウンロードしたデータとでその機能等に相違を持たせることも可能である。例えば、有償でダウンロードしたデータについては、特に制限が無く使用できるが、無償でダウンロードしたデータについては、所定の制限を付与してもよい。
 図10は、本変形例に係るサーバ2の構成の一例を示す図である。サーバ2は、制限付与部218をさらに備える。ストア部216により無償又は有償で購入されたデータは、制限付与部218が備えられる。制限付与部218は、ストア部216における購入金額が無償であるか有償であるかという結果を取得し、ダウンロード部214から送信するデータに所定の制限を付与する。
 所定の制限は、破線で示すように、データがアップロードされるタイミングにおいてクライアント3を介してユーザが指定するものであってもよい。この指定は、あらかじめ準備された複数の所定の制限からユーザが選択できるようにしてもよい。この場合、サーバ2に送信されたデータは、制限付与部218において制限が付与され、ストア部216を介しアップロード部200がデータ格納部202へと格納する。
 アップロードされたデータの制限情報は、例えば、回路データに備えて格納しておいてもよいし、信号データに細工をして格納しておいてもよい。信号データに制限を加える場合には、制限が付与された信号データそのものをダウンロード部214が送信すればよいので、ダウンロードする際に必ずしも制限付与部218を介してデータを送信する必要は無い。制限が付与されたデータをデータ格納部202に格納する場合、それぞれの制限が付与されたデータを別々のデータとしてデータ検索部210の検索対象及びデータ選択部212の選択対象とするようにしてもよい。
 別の例として、ダウンロードするデータに対してあらかじめ決められた制限を、アップロードしたユーザに選択させることなく付与するようにしてもよい。
 すなわち、制限の付与は、データのアップロードのタイミング、又は、データのダウンロードのタイミングの少なくとも一方のタイミングで行われればよい。図10において、制限付与部218は、ダウンロードするサイドに備えられているが、これには限られず、アップロードするサイドに備えられていてもよい。
 これらの制限は、有償、無償の2択である必要は無い。有償の場合であっても、その対価によって付与する制限を変更するようにしてもよい。例えば、500円で購入した場合には、制限なし、250円で購入した場合には、使用回数が10回の制限、無償の場合には、使用回数が1回の制限、等と設定できるようにしてもよい。また、例えば、データがアップロードされた後に制限付与部218又はストア部216等においてこれらの制限を変更できるようにしてもよい。
 図11は、制限付与部218の構成の一例を示す図である。制限付与部218は、使用回数制限付与部220と、使用時間制限付与部222と、ノイズ付与部224と、を備える。なお、これらの機能全てを備えている必要は無く、少なくとも1つを備える制限付与部218がサーバ2に実装されていてもよい。
 (制限例1)
 制限として、ダウンロードした配線について、使用回数制限を付与する。使用回数制限は、例えば、ブレッドボード30の配線を当該ダウンロードしたデータに基づいて更新する回数のことを言う。使用回数制限付与部220は、例えば、ダウンロードしたデータにカウンタを設け、ブレッドボード30の更新作業を行う度にカウンタの数を減らしていき、カウンタが0以下となった場合には、データを使用不可とするようなフラグで制御してもよい。
 また、クライアント3にアプリケーションがインストールされている場合には、クライアント3のアプリケーションで制御してもよい。クライアント3は、カウンタ値を読み取り、サーバ2と同期して、サーバ2においても使用回数をカウントするようにしてもよい。このカウント値は、例えば、ユーザID又はブレッドボードIDと紐付けられてもよい。
 一例として、無償である場合には、1回だけ使用可能であるように設定する。このように設定することにより、ユーザは、ダウンロードしたデータを用いて自分の望む回路が生成できるかをテストし、テスト後に購入するような形態をとることも可能となる。
 なお、別の例として、ダウンロードしたデータをデプロイするブレッドボード30の数を制限するようにしてもよい。例えば、1台のブレッドボード30にのみデプロイできるようにしてもよいし、2台以上のブレッドボード30にデプロイできるようにしてもよい。例えば、1台のみとすることにより、ユーザがテストを行う場合においても、無償データを無制限で複数台のブレッドボード30にデプロイすることを防止できる。
 (制限例2)
 制限として、使用時間制限を付与するようにしてもよい。使用時間制限は、例えば、ブレッドボード30の配線を当該ダウンロードしたデータに基づいて更新した後、使用できる期間のことを言う。使用時間制限付与部222は、例えば、ダウンロードしたデータをブレッドボード30にデプロイした状態からタイマーをセットし、使用期限が来た後には当該配線を使用不可とするようにする。タイマーは、例えば、クライアントPC 300に備えられていてもよいし、ブレッドボード30に備えられていてもよい。また、これらに備えられている時計機能を用いて制限を付与してもよい。
 別の例としては、使用期間ではなく、使用している延べ時間としてもよい。この場合、ブレッドボード30にタイマーを備えておき、例えば、回路に通電されている時間を計測し、使用している延べ時間を記憶する。この延べ時間を記憶するメモリを備えておいてもよいし、クライアントPC 300側でタイマー及び延べ時間の管理をするようにしてもよい。
 一例として、無償である場合には、1日だけ使用可能であるように設定する。このように設定することにより、ユーザは、ダウンロードしたデータを用いて自分の望む回路が生成できるかをテストし、テスト後に購入するような形態をとることも可能となる。
 (制限例3)
 制限として、使用する配線において、回路にノイズ、例えば、電圧又は電流に所定の振幅を持たせるようなノイズを付与するようにしてもよい。ノイズによる制限は、ノイズを発生させる手段により実行される。
 図12は、ノイズ付与部224によりノイズ付与による制限が行われた場合におけるブレッドボード30におけるノイズ付与の一例を示す図である。ノイズ付与部224は、例えば、有償、無償、或いは、対価により、付与するノイズのレベル(ノイズ発生頻度又はノイズ振幅等のレベル)の情報を出力する。このノイズレベルの情報は、配線に対してどの程度のノイズを加えるかを決める値である。ノイズレベルについては、あらかじめ決められているものでもよいし、アップロードするユーザが指定するものであってもよい。
 このノイズレベルに関する情報は、データに付与、例えば、信号データに記述され、クライアント3へとダウンロードされる。クライアント3は、当該データが付与された信号データをブレッドボード30へとデプロイする。
 ブレッドボード30は、ノイズレベル情報を抽出し、ノイズレベルに基づいたノイズをノイズ発生部350において発生させる。発生したノイズは、電圧等の入力信号に付与され、信号データにより生成された配線へと出力される。このように、配線に入力される電圧等の入力信号にノイズを加えることにより、回路の使用制限を行うことも可能である。
 このように、ノイズが加えられると、ユーザは、ダウンロードした配線において、ある程度の機能の検証を行うことが可能であるが、精度の高い回路の生成をすることが困難となる。ある程度の機能の検証により、ユーザが望む回路である場合には、その後、購入するような形態をとることも可能となる。
 以上のように、本変形例によれば、ダウンロードする回路に所定の制限を付与することが可能となる。このような制限を加えることにより、所謂評価版のように、ユーザは手元でテストを行った後に購入するか否かを決定することが可能となる。なお、制限事項は、上述には限られず、例えば、印加可能な電圧の範囲、印加する電圧の周波数、入力する電流の量、及び、入力する電流の周波数等の少なくとも1つの制限を加えるものであってもよい。
 他の例としては、例えば、配線数、回路の規模、扱える部品の個数等を制限してダウンロードできる回路についての情報を許可するようにしてもよい。配線数とは、信号データにおいて導電領域が接続される数のことである。ダウンロード部は、例えば、配線が5本までの回路情報をダウンロードできるようにしてもよい。回路の規模とは、例えば、扱えるブレッドボード30の素子を配置する領域の広さのことである。扱える部品の個数とは、ブレッドボード30上に配置する素子の個数のことである。このような制限を加えることにより、無償、有償等の差別化を図ってもよい。さらに、扱える部品の種類を制限として加えてもよい。
 (変形例6)
 本変形例も、ダウンロードしたデータに対して所定の制限を付与するものである。前述した変形例5においては、アップロードするユーザが公開の代償として無償ユーザ或いは対価に応じて回路に制限を与えるものであったが、本変形例における制限は、ダウンロードするユーザ側のブレッドボード30を保護する制限を付与するものである。この保護制限は、図11に示す制限付与部218に備えられる回路保護制限付与部226がダウンロードするデータに保護する制限を付与し、当該データに基づいて、ブレッドボード30において保護制限が加えられる。
 データをアップロードするタイミングで、ユーザは、当該データに係る回路において回路の破壊や、危険な動作となり得るパラメータの範囲を設定することが可能である。ここで、パラメータとは、電圧、電流等の回路において発生しうるもののことを言う。例えば、この設定されたパラメータを回路データに備えておき、回路データ格納部208に格納しておく。他のユーザ、若しくは、同一のユーザが当該回路に関するデータをダウンロードするタイミングにおいて、紐付けられた回路データに基づいてパラメータの範囲もダウンロードされる。
 クライアント3において、ダウンロードされた配線において、設定されたパラメータの範囲となるように電圧、電流等を制御するか、又は、当該パラメータの値をモニタリングしておき、範囲外になりそうであれば電源を切る等の制御をする。
 図13は、本変形例に係るブレッドボード30におけるパラメータモニタリングの一例を示す図である。本変形例において、ブレッドボード30の配線部には、例えば、モニタリング部352と、システム電源部354と、を備える。モニタリング部352には、回路データから抽出されたパラメータの範囲が設定される。
 このモニタリング部352は、任意の端子間に接続することが可能であり、パラメータの範囲を測定する必要がある箇所に適切に接続される。モニタリング部352は、設定されたパラメータの範囲からパラメータの値が外れると、システム電源部354へと電源遮断信号を送信する。システム電源部354は、電源遮断信号を受信すると、ブレッドボード30に印加されている電圧、又は、流れている電流等を入力するデバイスの電源を切り、回路を保護する。このように保護することにより、回路はもとより、ブレッドボード30が故障することも回避することが可能である。
 本変形例によれば、制限を付与することに、回路を構成する素子、回路自体、又は、ブレッドボード30等が故障するリスクを低減させることが可能である。なお、パラメータには、安全に停止できるような範囲を定めておいてもよい。すなわち、当該範囲を外れるとすぐに素子が破壊される等の範囲よりも小さい範囲としてパラメータ範囲を自動的に生成するようにしてもよい。また、アップデートするユーザがパラメータ範囲を設定することについて説明したが、それには限られず、例えば、サーバ2においてシミュレータ等により回路のシミュレーションを行い、各端子間における安全なパラメータ範囲を取得するようにしてもよい。
 (変形例7)
 複数のブレッドボード30において、同じタイミングで同じ配線を用いることができるようにしてもよい。ここでも、同じタイミングとは、厳密に同時という意味ではなく、例えば、アクセスするタイミングは異なるタイミングであっても、ログインしている時間が重なるようなタイミングであればよい。
 図14は、本変形例に係るクライアント3の構成の一例を示す図である。クライアント3は、2つのブレッドボード30A、30Bを備える。クライアントPC 300は、これら2つのブレッドボード30A、30Bに同じタイミングにおいて、ダウンロードした同一の信号データに基づいて配線を変更する(デプロイ)することが可能である。このようにすることにより、1つのクライアントPC 300が、2つのブレッドボード30に同じ回路を生成することが可能となる。
 図15は、本変形例に係るクライアント3の構成の別の例を示す図である。この図15では、簡単のため、入力インターフェース302及び出力インターフェース304の図示を省略している。クライアントPC 300A及びブレッドボード30Aは、クライアント3Aに備えられ、クライアントPC 300B及びブレッドボード30Bは、クライアント3Bに備えられる。
 クライアントPC 300Aと、クライアントPC 300Bとは、例えば、ピアツーピア接続されている。このような状態で、クライアントPC 300Aと、クライアントPC 300Bとを同期させ、ブレッドボード30Aとブレッドボード30Bとに同じ信号データに基づいた同一の配線を行うことも可能である。
 なお、サーバ2と接続されるクライアントは、クライアント3Aであってもクライアント3Bであってもよく、さらには、クライアント3Aとクライアント3Bの双方がサーバ2と接続されていてもよい。データのダウンロードについても同様であり、クライアント3A及びクライアント3Bの内、少なくとも1つのクライアントにダウンロードされ、同期されてもよい。すなわち、このような構成の場合、クライアント同士で信号データ等の送受信を行ってもよい。クライアント同士で信号データ等の送受信を行う場合、双方のクライアントがサーバ2にログインした状態である制限を課してもよい。
 図16は、本変形例に係るクライアント3の構成のさらに別の例を示す図である。この図16においても、図15と同様に、簡単のため、入力インターフェース302及び出力インターフェース304の図示を省略している。また、同様に、クライアントPC 300A及びブレッドボード30Aは、クライアント3Aに備えられ、クライアントPC 300B及びブレッドボード30Bは、クライアント3Bに備えられる。
 クライアントPC 300Aと、クライアントPC 300Bとは、例えば、クラウドサーバ5を介して接続される。この場合も、図15の説明と同様にクライアント3A及びクライアント3Bの内少なくとも1つのクライアントがサーバ2と接続されていればブレッドボード30A及びブレッドボード30Bに同じ回路を生成できるようにしてもよい。別の例としては、双方のクライアントがサーバ2と接続されていなければいけないようにしてもよい。
 なお、クラウドサーバ5ではなく、サーバ2を介して接続された2つのクライアント3により上記の構成とすることも可能である。
 このように、本変形例によれば、クライアントPC 300、又は、ネットワーク4を介して、様々な状況において同じタイミングで同一の回路を別々のブレッドボード30に形成することも可能である。このようにすることで、2つの回路に別の入力をした場合の出力差を観測したり、異なる環境における同一の回路の動作を検証したり、又は、素子の個体差を考慮したより高精度な回路を構成したりすることが可能となる。なお、ブレッドボード30が2つである場合について説明したが、これには限られず、3つ以上のブレッドボード30について、本変形例を適用することも可能である。また、これらの処理は、クライアントPC 300にインストールされたアプリケーションにより同期がとられるように動作してもよい。
 (変形例8)
 ブレッドボード30は、例えば、遠隔操作行う操作端末を備えてもよく、当該操作端末から種々の操作を行ってもよい。
 図17は、本変形例に係るブレッドボード30及び操作端末について示す図である。ブレッドボード30を操作するための操作端末6をさらに備え、操作端末6による操作で、ブレッドボード30の配線等を操作する。
 ブレッドボード30は、ブレッドボード側送受信部356と、信号入出力部358と、端子管理部360と、を備える。ブレッドボード30と、操作端末6とは、例えば、無線及び有線の少なくとも1つのネットワーク4を介して接続される。この接続途中には、サーバ2を介するようにしてもよい。
 ブレッドボード側送受信部356は、ブレッドボード30の内外におけるデータの送受信を行う。例えば、ブレッドボード30の配線状態、端子の使用状態等を操作端末6へと送信し、操作端末6からの制御するための信号を受信する。
 信号入出力部358は、ブレッドボード側送受信部356が受信した制御するための信号に基づいて、ブレッドボード30の配線、信号の入出力等の制御を行う。また、端子管理部360からの信号を受信し、ブレッドボード側送受信部356を介して操作端末へと情報を送信する。
 端子管理部360は、ブレッドボード30における端子の使用状況、配線の状態等、端子における状態を管理する。信号入出力部358から信号の入出力があった場合には、制御にしたがい、例えば、指定された端子間に電圧を印加したり、電流を流したり、又は、端子間の配線状態を更新したりする。また、信号入出力部358へと、端子の状態を送信する。
 操作端末6は、操作端末側送受信部600と、端子状態表示部602と、端子状態指示部604と、を備える。この操作端末6は、ブレッドボード30の状態を、クライアントPC 300を介さずに変更したり、モニタリングしたりすることができる。操作端末6の機能は、ソフトウェアによる処理でハードウェアにより具体的に実現されるものでもよいし、ハードウェアによる処理で実現されるものでもよい。操作端末6は、例えば、スマートホン、タブレット端末等の端末等であってもよいが、これには限られない。
 操作端末側送受信部600は、ネットワーク4を介してブレッドボード側送受信部356とデータの送受信を行う。
 端子状態表示部602は、操作端末側送受信部600が受信したブレッドボード30の端子状態、配線状態、又は、素子の状態等をユーザへと表示するインターフェースである。端子状態表示部602には、例えば、図6における回路設計領域310のような表示において、接続されているブレッドボード30の素子の状態及び配線の状態が表示される。
 端子状態指示部604は、操作端末側送受信部600へとユーザの指示を出力することにより操作端末側送受信部600を介してブレッドボード30へとユーザの指示を送信するインターフェースである。なお、操作端末6は、端子状態表示部602及び端子状態指示部604を制御するための操作端末制御部(図示しない)をさらに備えていてもよい。
 ユーザは、操作端末6の端子状態指示部604において、端子間に印加する電圧、端子間に流す電流等の操作をすることができる。また、端子間の接続状態を変更できるようにしてもよい。すなわち、ダウンロードした配線について、操作端末6を用いて、簡易的に編集できるようにしてもよい。例えば、図6の回路設計領域310に示すような回路が形成されている場合、ユーザは、Eに5Vの電圧を印加する、というように指示する。この指示は、信号へと変換され、ネットワーク4を介してブレッドボード30へと送信され、信号入出力部358が端子管理部360において端子間に電圧を印加する。その結果、LEDが点灯する。
 このように、本変形例によれば、操作端末6から遠隔操作で回路の状態等を制御することが可能となる。
 (変形例9)
 複数のブレッドボード30同士を連携させて動作させてもよい。
 図18は、本変形例に係るブレッドボード同士の接続状態を示す図である。ブレッドボード30A及びブレッドボード30Bは、クライアント相互動作部228を介して接続される。クライアント相互動作部228は、ブレッドボード30A及びブレッドボード30Bのそれぞれのブレッドボード側送受信部を、ネットワーク4を介して接続するように備えられる。
 このクライアント相互動作部228は、サーバ2内に備えられるものであってもよいし、クライアント3A及びクライアント3Bのうち少なくとも一方に備えら得るものであってもよいし、他のクライアント3に備えられるものでもよいし、サーバ2及びクライアント3の外部に備えられるものであってもよい。
 ブレッドボード30A及びブレッドボード30Bには、1つの連続した回路が形成されて、2つのブレッドボードが協働して1つの機能を果たすものであるとする。例えば、ブレッドボード30Aにおけるある端子と、ブレッドボード30Bのある端子とが仮想的に接続されている場合を想定する。
 このような場合、ブレッドボード30Aの端子管理部360Aにおける端子の状態を、信号入出力部358Aを介してブレッドボード30Bの信号入出力部358Bへと送信する。ブレッドボード30Aの端子の状態を取得した信号入出力部358Bは、端子管理部360Bに仮想的に接続されている端子の情報を通知し、同等の状態へと制御する。ブレッドボード30Bからブレッドボード30Aへの端子についての情報も同様に送受信される。
 このようにブレッドボード30における端子の状態を相互に送受信し、相互の状態を反映することにより、仮想的に接続された回路を構成することが可能となる。ブレッドボード30において回路を形成できる領域は、限られたものであるが、このように協働して動作することにより、より広い範囲における回路を形成することも可能となる。
 上記では、互いに送受信するものであるとしたが、これには限られない。例えば、ブレッドボード30Aの出力する情報を、ブレッドボード30Bの入力する情報として利用することも可能である。このように、一方向の信号の入出力であっても構わない。
 また、クライアント相互動作部228は、単純に状態を伝達するだけではなく、信号を変換する所定の機能を有していてもよい。所定の機能とは、代表的にはフィルタ処理である。例えば、クライアント相互動作部228は、ブレッドボード30Aの出力からノイズを取り除くように、ローパスフィルタ処理を行って、ブレッドボード30Bの入力とするように信号を変換してもよい。
 所定の機能は、ローパスフィルタには限られず、ハイパスフィルタ、バンドパスフィルタ、ステップ関数化等信号の周波数領域において処理を加えるものでもよいし、電圧値・電流値の変更等のパラメータを変換するものであってもよい。これらには限られず、他の様々な機能を有する種々のフィルタであっても構わない。
 なお、上記では、2つのブレッドボード30を用いて説明したが、これには限られず、3つ以上のブレッドボード30が協働するようにしてもよい。
 (変形例10)
 図6に示した回路配置、回線接続状況の実装について、サーバ2の構成とともに詳しく説明する。信号データ及び配置データは、サーバ2のソフトウェア上で生成されるものとするが、当該ソフトウェアは、クライアント3で動作するネイティブなアプリケーションであってもよい。
 図19は、本変形例に係るサーバ2の構成の一例を示す図である。サーバ2はさらに、回路情報データ生成部230を備える。回路情報データ生成部230は、配線生成部232と、配置生成部234と、を備える。
 図6の回路設計領域310のようなインターフェースを用いてユーザが回路の設計をソフトウェア上で実行すると、その情報は、回路情報データ生成部230へと通知される。回路情報データ生成部230の配線生成部232は、ユーザにより設計されたブレッドボード30の配線、すなわち、領域ごと、或いは、端子ごとの電気的な接続状態を示すデータに基づいて、信号データを生成する。
 一方、配置生成部234は、ユーザによりソフトウェアで配置されたブレッドボード上の素子の配置情報に基づいて、配置データを生成する。この配置データは、ソフトウェア上でユーザが設計するものには限られない。例えば、ユーザがブレッドボード30上において実際に配置した素子データを、撮像素子を用いて画像として撮影し、当該画像から素子の情報を読み取るようにしてもよい。この読み取りは、相関関数、マッチトフィルタ、又は、機械学習により取得された識別モデルを用いてもよい。素子の規格までを読み取れない場合には、その規格をユーザがソフトウェア上で入力できるようにしてもよい。
 回路情報データ生成部230により生成された各データは、ユーザの指令により、アップロード部200を介してデータ格納部202へと格納される。図では省略しているが、ストア部216、制限付与部218が備えられ、前述した機能を実行してもよい。
 以上のように、ソフトウェアで信号データ及び配置データを生成する。これらのデータは、ユーザが実際に作成する場合、ブレッドボード30の端子位置の読み取り又は入力等において間違える可能性が大きい。このようにソフトウェアを用いることによりヒューマンエラーを抑制することが可能となる。
 (変形例11)
 実際に作成した回路ではなく、シミュレーションが行える実装について説明する。例えば、ブレッドボード30において実際に素子等の配置を行う前に、ユーザが望んでいる出力を得られるか否かをシミュレーションにより確かめることが可能となる。以下、シミュレータは、サーバ2のソフトウェア上でシミュレーションするものとするが、クライアント3においてローカルな環境でシミュレーションするようにしてもよい。
 図20は、本変形例に係るサーバ2の構成の一例を示す図である。サーバ2は、シミュレーション部236をさらに備える。シミュレーション部236は、例えば、データ格納部202と接続され、データ格納部202からデータを抽出し、抽出した回路におけるシミュレーションモデルを生成する。なお、シミュレーション部236は、データ選択部212と接続されていてもよく、データ選択部212の選択したデータに基づいてシミュレーションモデルを生成してもよい。シミュレーションモデルの生成は、既存の回路シミュレータを用いてもよい。
 シミュレーション部236は、生成されたシミュレーションモデルに対して、入力信号を設定するようにしてもよい。当該入力信号が入力された場合に、どのような出力が得られるかをユーザは確認することが可能となる。
 このように、シミュレーション部236をサーバ2に備えることにより、データのダウンロード前に、ユーザは、当該ダウンロードしようとしているデータがユーザの望む機能を有しているか否かを確認することが可能となる。特に、有償のデータを購買しようとする場合には、ユーザに仮想的なテスト環境を提供することが可能となる。また、ダウンロードするデータがどのような動作を行うかをシミュレートすることもでき、回路データに説明がある場合には、この回路データの説明が適切であるか否かを判断することも可能である。
 シミュレーション部236のシミュレーションモデル、すなわち、仮想的な回路と、ブレッドボード30とを協働して動作させてもよい。例えば、データ格納部202に格納されているある回路の情報に基づいて、当該回路の出力を入力とするような回路をブレッドボード30に形成しておく。シミュレーション部236において、当該回路のシミュレーションモデル、すなわち、仮想的な回路を生成する。
 この仮想的な回路に入力信号を入力した出力結果、又は、ある端子における状態を、ネットワーク4を介してブレッドボード30へと反映する。このようにすることにより、ユーザは、データ格納部202に格納されている回路について、当該回路と接続されるような回路をブレッドボード30上で生成することが可能となる。
 シミュレーションモデルの使用方法は、上記だけには限られない。例えば、シミュレーションモデルによる仮想的な回路の出力と、同一の回路を実際にブレッドボード30上で形成した回路との出力結果を比較することも可能である。ソフトウェア上でこの比較結果を出力できるようにしてもよい。
 このような比較結果が出力されることにより、ユーザは、例えば、シミュレータ上の仮想回路に配置されている素子又はブレッドボード30上に配置されている素子の規格を変更等することにより、より精度の高い、すなわち、ユーザが望んでいる回路に近い回路をブレッドボード30上に形成することが可能となる。
 なお、シミュレーションモデルに入力した信号を外部へと反映する場合には、図示しないストア部216により管理された情報に基づいて、制限を与えることも可能である。例えば、ユーザが購買していないデータについては、外部出力しないようにしてもよい。
 なお、データのダウンロードのタイミングでデータ格納部202に格納されているデータについてシミュレーションを行うものとして説明したが、これには限られない。すなわち、データをアップロードするタイミングにおいて、ソフトウェア上で回路の生成を行い、当該生成したソフトウェア上の回路のシミュレーションをサーバ2側で行えるようにしてもよい。このようにすることにより、例えば、ユーザ側の環境に依存しない状態におけるシミュレーションを行い、データをアップロードすることが可能となる。
 (変形例12)
 回路の一部をブレッドボード30に実装する場合について詳しく説明する。
 図21は、本変形例に係る回路と、デプロイしたブレッドボード30との関係を示す図である。図21に示すように、回路全体から一部を抜き出してブレッドボード30にデプロイするようにしてもよい。抜き出す一部は、一機能を有する回路であってもよい。この場合、回路全体における他の部分は、上述したシミュレーション部236がシミュレーションモデルを生成してもよい。
 図22は、回路の一部をブレッドボード30へとデプロイする別の例を示す図である。図22に示すように、回路全体から異なる一部を抜き出してブレッドボード30A及びブレッドボード30Bにデプロイするようにしてもよい。例えば、このように、複数のブレッドボード30を用いて機能ごとに細分化して実装することも可能である。
 さらに、回路全体を機能ごとにわけ、機能ごとにブレッドボード30へとデプロイするようにしてもよい。このようにすることにより、機能ごとに別々に回路の編集をすることも可能となる。また、ネットワーク4を介して各ブレッドボードを接続することにより、遠隔地にあるブレッドボード30同士についても同期して動作させることも可能である。遠隔地にある場合、図18に示すクライアント相互動作部228をサーバ2又はクラウドサーバ5等に備えていてもよい。
 本変形例によれば、ブレッドボード30の領域に制限されずに回路を形成することが可能となる。なお、データ格納部202に格納されている回路の一部としたが、これには限られず、入力と出力を設定できる仮想的な回路(スタブ)を準備しておき、当該スタブの入出力をブレッドボード30と組み合わせて使用することも可能である。このようにすることにより、詳細に設計したい範囲だけ設計したり、回路内の一部だけを修正したりすることも可能となる。
 (変形例13)
 ストア部216において、ダウンロード部214がダウンロードするデータに必要となる素子を購買することが可能な例について説明する。
 図23は、本変形例に係るサーバ2の構成の一例を示す図である。サーバ2はさらに、部品発注部238を備える。部品発注部238は、ダウンロード対象又はダウンロード候補となっているデータについての素子情報(回路構成要素情報)から、部品一覧を生成する。素子情報は、例えば、配置データに備えられている。
 部品発注部238は、ネットワーク4を介して、クライアント3の出力インターフェース304に、部品情報を出力する。ユーザは、表示された部品情報に基づいて、入力インターフェース302を介して部品の発注をする。部品発注部238は、ユーザからのリクエストに基づいて、代理店等に部品の発注をする。表示された部品の全てを発注するようにしてもよいし、ユーザからのリクエストに基づいて、ユーザが望んでいる部品について発注するようにしてもよい。
 さらに、図23に示すように、素子情報格納部240を備えていてもよい。素子情報格納部240には、ユーザのリクエストに基づいて、ユーザの保持している素子についての情報を格納することができる。部品発注部238は、ユーザと紐付けられた素子情報を抽出し、ユーザが指定した回路について、足りない部品を自動的に抽出するようにしてもよい。抽出した部品について、ユーザに対してクライアント3を介して購入することを促す通知を出力してもよい。
 さらに、素子情報格納部240に格納されるデータを画像データ等から自動的に生成するようにしてもよい。例えば、ユーザが自らが有している素子を並べて撮影し、撮影された画像をサーバ2へと送信することにより、自動的に画像に写っている素子の情報を素子情報格納部240へと格納するような、素子情報抽出部を備えていてもよい。
 本変形例によれば、ダウンロードするデータに基づいた素子の発注をデータ格納システム1において行うことが可能となる。なお、購入できる部品は、同じ素子に対して複数出力するようにしてもよい。例えば、メーカーが異なるもの、現在購入困難である部品の代替品、1つの部品を複数の部品で構成するような代替品を出力してもよい。代替品の情報は、例えば、ストア部216、素子情報格納部240等が保持していてもよい。上記において部品発注部238は、ストア部216とは別の構成としていたが、これには限られず、ストア部216内に、部品発注部238が備えられていてもよい。
 (変形例14)
 ユーザが有している素子の情報を格納することによる他の例について説明する。
 ユーザが有している素子の情報をサーバ2等に格納しておくことにより、ダウンロードしようとしているデータについて足りない部品がある場合に、ユーザが有している部品を用いて等価な回路データを生成することも可能である。
 図24は、本変形例に係るサーバ2の構成の一例を示す図である。サーバ2は、素子情報格納部240と、さらに、等価回路データ生成部242と、を備える。素子情報格納部240については、前述した変形例と同様である。
 等価回路データ生成部242は、ユーザが選択した回路について、ユーザが有している素子情報を元に足りない部品があるか否かを判断する。足りない部品が無い場合には、特に動作しなくてもよい。
 足りない部品が存在する場合、ユーザが保持している素子で生成でき、ユーザが選択した回路と同等の動作を行うことが可能な回路を自動的に生成する。例えば、回路に配置する素子として、200Ωの抵抗が必要となり、ダウンロードしようとするユーザの素子情報として、素子情報格納部240に200Ωの抵抗が無く、100Ωの抵抗が2つあるとする。このような場合、等価回路データ生成部242は、これらの抵抗を直列に接続して200Ωの抵抗となるような配線及び素子の配置を演算により求め、信号データ及び配置データを生成する。
 別の例としては、プルアップされた端子をGNDにショートするボタンAとボタンBとがあり、AとBとを同時にオンにするスイッチをダイオードで実現するという回路があるとする。素子情報格納部240における部品の登録情報として、ダイオードがないが、LEDがある場合、等価回路データ生成部242は、ダイオードの代わりにLEDを使用するような信号データ及び配置データを生成する。
 等価回路データ生成部242が生成したデータをダウンロードすることにより、ブレッドボード30上に選択された回路と同等の回路を形成することが可能となる。この際、ストア部216が備えられている場合には、生成する元となったデータについての購買と同じ金額を提示し、又は、同じ制限を付与するようにしてもよい。
 図25は、別の例に係るサーバ2の構成の一例を示すものである。この例では、ユーザが有する部品から生成することが可能な回路をデータ格納部から抽出し、ユーザへとダウンロードするように出力する。
 サーバ2はさらに、回路データ抽出部244を備える。回路データ抽出部244は、素子情報格納部240に格納されているユーザが有している部品と、データ格納部202に格納されている回路を生成する部品のデータとを照合し、ユーザが有している部品から生成することのできる回路についてのデータを出力する。このデータの抽出は、例えば、データ検索部210にリクエストされたカテゴリ情報又は検索条件に基づいて抽出されるようにしてもよい。
 このようにすることで、ユーザが望んでいる回路について、ユーザが現在有している部品を用いて生成できる回路の候補を出力することが可能となる。
 (変形例15)
 ブレッドボード30上に配置、配線されたデータではなく、実際の回路等のデータから、回路データを自動的に生成するようにしてもよい。
 図26は、別の例に係るサーバ2の構成の一例を示すものである。この例では、ブレッドボード30上に配置し、配線された回路ではなく、端子同士の接続情報から配線を自動的に生成することが可能となる。サーバ2はさらに、回路情報データ自動生成部246を備える。
 回路情報データ自動生成部246は、1又は複数の素子に対して、各端子同士の接続状況を入力すると、自動的にブレッドボード30の配線情報(信号データ)及び素子等の配置データを出力する。例えば、各端子同士の接続状態をネットリストの記述へと変換し、当該ネットリストに基づいて、各端子同士の接続状態を実現する信号データへと変更することにより実行される。
 図27は、本変形例に係るデータ変換の例を示す図である。例えば、クライアントPC 300において、図6に示すような回路設計領域310において、ユーザは、ブレッドボード30上にではなく、自由に回路を設計する。例えば、電源、抵抗、LEDが図のように端子同士が接続されるという回路をユーザがソフトウェア上で設計する。
 このように設計された回路図から、回路情報データ自動生成部246は、自動的にブレッドボード30上の配線、配置を生成し、信号データ及び配置データを生成する。例えば、図27の例のような回路図は、図6の回路設計領域310に示すようなブレッドボード30上の回路へと変換される。
 なお、ユーザがソフトウェア上において設計するとしたが、これには限られない。例えば、プリント基板の表面と裏面をそれぞれ撮影してサーバ2の回路情報データ自動生成部246へと送信することによりOCR処理を行い自動的にブレッドボード30上の配線、配置へと変換し、各種データを出力するようにしてもよい。この場合、素子の規格等の読み取れなかったデータについては、ユーザが入力したデータを用いて補正できるようにしてもよい。
 回路情報データ自動生成部246により生成された回路に関するデータは、アップロード部200によりデータ格納部202にアップロードされるようにしてもよい。別の例としては、サーバ2に接続して、回路情報データ自動生成部246を使用することにより、ブレッドボード30の配線及び素子の配置を自動的に生成し、ローカルに出力できるようにしてもよい。
 (変形例16)
 ブレッドボード30上からは配線が見えないので、これらの配線を仮想的に見られるようにしてもよい。
 サーバ2に配線可視化部をさらに備えてもよい。配線可視化部は、信号データ格納部204に格納されている信号データに基づいて、ブレッドボード30の配線を可視化できるようなデータを生成してもよい。可視化できるようなデータとは、例えば、VR(Virtual Reality)、AR(Augmented Reality)技術を用いて表示させるようなデータである。例えば、VRデータへと変換する場合、タブレット端末等に当該VRデータを送信することにより、VRの映像として出力する。ARデータへと変換する場合、例えば、ブレッドボード30をARマーカとして識別子、当該ブレッドボード30に重なるように配線データをタブレット端末等を介して表示できるようにする。
 VRデータ、ARデータには、配線のみならず、素子等の配置も重ねて表示するようにしてもよい。この場合、配線可視化部は、信号データ格納部204だけではなく、配置データ格納部206も参照してデータを生成する。さらには、回路データ格納部208も参照することにより、回路の説明等を併せてVR、ARとして出力するようにしてもよい。
 本変形例によれば、配線が通常では見ることのできないブレッドボード30において、その配線情報を視覚的にとらえることが可能となる。また、ARとして表示させる場合には、データをダウンロードし、素子を配置した後にAR表示をすることにより、素子の配置等をユーザが確認する補助として機能することもできる。
 (変形例17)
 データ格納システム1に登録されているユーザごとに、ポイントが付与されるようにしてもよい。
 図28は、本変形例に係るサーバ2の構成の一例を示す図である。サーバ2はさらに、ポイント管理部248を備える。ポイント管理部248は、ストア部216と接続され、ストアを利用したユーザに対して適切なポイントを付与する。付与されたポイントは、ユーザごとに管理される。
 例えば、回路データをアップロードすると5ポイント、アップロードされたデータが他のユーザによりダウンロードされると2ポイント、他のユーザがアップロードしたデータをダウンロード、又は、関連した部品を購入すると1ポイント、等のポイントをユーザごとに付与する。アップロード頻度等に基づいて付与するポイントを決めてもよい。付与されたポイントは、ストア部216において使用することも可能であるし、別の例としては、他のポイントサービス等と連携して使用することも可能である。ストア部216において使用する場合、例えば、ダウンロードする際の購入金額の軽減、制限が与えられる場合の制限の軽減等を行ってもよい。また、仮想通貨のように扱ってもよく、他のユーザにポイントを転送、ユーザ間におけるトレード等を行う等できるようにしてもよい。
 ポイントに基づいてユーザをランク付けするようにしてもよい。ランク付けが高くなったユーザには、称号を与えるようにしてもよい。このように、ランク付けや称号が与えられることにより、データを検索した際に、検索されたデータに対するユーザのランク等を出力することが可能となる。ダウンロードするユーザは、アップロードしたユーザのランク等を参考にしてダウンロードするデータを選択することが可能となる。
 ポイントを用いる例として、例えば、管理者側又はユーザ側が主催となるコンテストや、イベントを開催し、ポイントの使用、付与を行うようにしてもよい。例えば、○○を実行する回路をアップロード、等のイベントを開催できる。アップロードされたデータは、管理者又はユーザが投票等により評価できるようにしてもよい。評価に基づいて、ポイントを付与するようにしてもよい。投票にポイントを使用するようにしてもよい。このようなイベント等を開催することにより、ユーザによるデータ格納システム1の使用頻度を向上させることもできる。
 なお、ランク付け、イベント等は、ポイント等に関連すると説明したが、これには限られない。例えば、ポイントとは別に、ランク付けを行い、イベント等においても、ポイントではなく、このランクが変動するようにしてもよい。さらに、ランクが高くなると、データの購入時における金銭の割引等のインセンティブを与えるようにしてもよい。
 図29は、ポイントとは別にランク付けを行う場合のサーバ2の構成の一例を示す図である。この場合、ポイント管理部248は必須の構成ではない。ポイント管理部248の代わりに、ランク管理部250を備えていてもよい。ランク管理部250は、データ格納部202に格納されているユーザ情報と紐付けられているランク情報について、上記のようなランクの変動がある場合には、このランクの変動を管理する。このように、データ格納部202とランク管理部250とが連携することによりランクの管理を行う。
 (変形例18)
 データ検索部210における検索機能についての前述以外に様々機能を備えていてもよい。
 図30は、本変形例に係るサーバ2の構成の一例を示す図である。サーバ2はさらに、機能同等回路検索部252を備える。機能同等回路検索部252は、同じ機能であるが異なる構成となる機能を検索する。この検索は、データ検索部210が行ってもよい。
 一例として、フィルタ回路等は、機能が同じであるが異なる構成となる回路が多数存在する。データ選択部212が回路のデータを選択した後、機能同等回路検索部252は、同等の機能を有する回路をデータ検索部210が検索した結果から抽出する。または、データ格納部202から抽出してもよい。
 機能同等回路検索部252が検索した結果は、ユーザが回路を選択した後に表示され、例えば、「同等の機能を有する回路が他にもあります。」等と表示し、ユーザに同等の回路を表示することを促してもよい。
 このように、同等の回路を表示させることにより、ユーザビリティを向上させることが可能となる。以下に検索についてさらに別の例を列挙する。
 部品で検索を行えるようにしてもよい。部品で検索を行うと、購入できる部品、当該部品を用いた回路例等の検索が行える。逆に、部品を購入した後に、自動的に、購入した部品を用いた回路例等が表示されるようにしてもよい。
 他のユーザがほしいと思っている部品を表示するようにしてもよい。例えば、素子情報格納部240が備えられている場合において、あるユーザが保持している部品を他のユーザがほしいというアラートを表示させることも可能である。もちろん、ユーザがほしいと思っている部品を登録できるようにすることもできる。この機能は、各種データをダウンロードした際に足りない部品について、当該部品をほしい部品として登録ができるようにしてもよい。
 上記のように、オンラインで部品を提供してくれるユーザを検索することも可能である。また、別の例としては、ある部品がほしい場合に、逆オークション形式で部品購入の意思を示してもよい。もちろん、ある部品が必要では無くなった場合に、オークション形式で部品を売る意思を示してもよい。
 ユーザが保持している部品を登録することにより、ユーザが保持している部品に閉じた状態で生成できる回路を検索できるようにしてもよい。この検索を行う場合、カテゴリ等を限定できるようにしてもよい。
 さらに、ユーザが保持している部品に、少数の部品を追加することにより生成できる回路を検索して出力するようにしてもよい。少数の部品とは、例えば、1つ以下の部品、2つ以下の部品といった所定数以下の部品としてもよいし、100円以内、500円以内といった所定料金以内で購入できる部品としてもよい。
 (変形例19)
 データ格納システム1は、回路保護についての機構を備えていてもよい。
 図31は、本変形例に係るサーバ2の構成の一例を示す図である。サーバ2はさらに、回路保護部254を備える。回路保護部254は、ネットワーク4と、アップロード部200との間に備えられ、ユーザがアップロードしようとしている回路がブレッドボード30及び回路素子のうち少なくとも1つを故障又は破壊等をしないように保護する。
 ブレッドボード30及び回路素子のうち1つが故障を発生させるような回路である場合に、回路保護部254は、当該回路に関するデータのアップロードをリジェクトする。故障を発生させる可能性のある回路とは、例えば、電源のプラスとマイナスを配線で直接接続するような回路である。これに限定されることなく、故障の原因となるような回路をリジェクトする。
 リジェクトの対象となる回路の判別は、例えば、シミュレータを用いて抽出してもよい。また、所定のルールファイルを生成しておき、当該ルールファイルに該当するか否かにより判別をするようにしてもよい。
 ブレッドボード30が故障した際には、保険が適用できるようにしておいてもよい。例えば、ブレッドボード30にテスト用の信号を送信し、当該テストがクリアできたか否かで判断する。ブレッドボード30に対する保険は、ダウンロードしたデータに基づく回路のみならず、他の要因で故障した場合に適用できるようにしてもよい。
 ユーザがダウンロードした回路について、当該回路を動作させた場合に、安全に機能を発揮できたか否かのフラグを、ダウンロードするデータに対して付与するようにしてもよい。このフラグは、例えば、回路データに記述される。
 逆にダウンロードしたデータを用いた回路において不具合が発生した場合には、当該データに不具合が発生した旨のフラグを付与するようにしてもよい。所定数の当該フラグが付与されたデータについては、ダウンロードを一時的に停止したり、ダウンロードの凍結をしたりしてもよい。
 以上のように、ブレッドボード30又は回路素子等の部品を保護するような機構をデータ格納システム1は備えることも可能である。
 (変形例20)
 回路情報については、バージョン管理できるようにしてもよい。
 図32は、本変形例に係るサーバ2の構成の一例を示す図である。サーバ2はさらに、バージョン管理部256を備える。バージョン管理部256は、データ格納部202と接続され、データ格納部202に格納されている各種データについてバージョン管理を行うことが可能である。ここで、バージョン管理とは、簡単に言うと、データの編集等において複数人で共有して行える構成のことを言う。
 例えば、あるユーザがアップロードしたデータに対して、他のユーザが改良の余地があることを発見した場合、当該アップロードしたデータに対するコピーをバージョン管理部256内に作成し、当該コピーに対して編集を行う。編集は、ソフトウェア上で行ってもよいし、ブレッドボード30を同期させることにより行ってもよい。このように、複数人によりデータの編集を行うことを可能とすることにより、格納されているデータの機能を向上させることが可能となる。機能向上だけには限られず、別の機能へ応用等を行ってもよい。
 バージョン管理部256に保存されたデータは、最初にアップロードしたユーザが管理権限を有し、データ格納部202へとコミットできるようにしてもよいし、編集したユーザが別のデータとしてデータ格納部202へとコミットできるようにしてもよい。編集したユーザがコミットする場合、元となるデータを紐付けて参照できるようにしてもよい。
 また、一般的なバージョン管理と同様に、データをリバートしたり、マージしたりできるようにしてもよい。ストア部216が備えられている場合には、最初にアップロードされた有償、無償等に対する属性を継承するようにしてもよい。
 このように、バージョン管理することにより、データ格納システム1に格納されているデータのブラッシュアップを行うことが可能となる。
 (変形例19)
 配線状態が時系列で変化するようなデータを生成するようにしてもよい。
 図33は、本変形例に係るサーバ2の構成の一例を示す図である。サーバ2はさらに、条件付データ生成部258を備える。条件付データ生成部258は、所定条件、例えば、時系列に基づいて配線が更新されるような信号データを生成する。
 ユーザは、データ生成の際には、例えば、GUI等を用いて時系列に沿ってどのような配線になるかを入力する。例えば、最初は配線Aでスタートし、何秒後には配線Bとなる、といったデータである。この配線の更新は、周期的に更新されるものであってもよい。
 このような時系列データを生成する場合、ブレッドボード30側においても、時系列で更新できるような仕組みとしておく。このようにすることにより、配線の状態が変化するような回路をブレッドボード30で再現することが可能となる。
 なお、配線の状態の変更は、時系列には限られず、他の所定条件により変化するものであってもよい。所定の条件とは、例えば、ある端子間の電位差が所定の電位差となった場合、ある端子間に流れる電流が所定の電流量となった場合、等である。このようにすることにより、スイッチのような役割をブレッドボード30上の回路に持たせることが可能となる。
 (変形例20)
 回路図等が与えられた場合に、種々のデータへと変換できるようにしてもよい。
 図34は、本変形例に係るサーバ2の構成の一例を示す図である。サーバ2はさらに、他属性データ生成部260を備える。他属性データ生成部260は、回路図、実体配線図、ブレッドボードの配線図、プリント基板の配線図等を登録することにより、他の任意のデータを生成する。ここで、属性とは、回路図、実体配線図、等の図の属するクラスのことを示す。
 例えば、アップロード部200にアップロードされた情報について、他の属性へと変換したデータを生成することが可能である。アップロード部200を介さずに、サーバ2へと接続されたクライアント3から単独で当該機能を利用できるようにしてもよい。
 このように、データ格納システム1は、各種情報を相互に変換するようにしてもよい。
 上述した実施形態に係るデータ格納システム1には、複数のユーザが同時に接続してもよい。また、複数のクライアント3に対して同じタイミングで同一の又は異なる信号データ等をダウンロードさせてもよい。また、複数のユーザが同じタイミングでアップロードを行えるようにしてもよい。クラウド上に実装されてもよく、分散管理されている場合には、適切なタイミングでデータを同期するようにしてもよい。また、オープンな環境ではなく、クローズドな環境としてもよい。すなわち、特定少数又は特定多数のユーザのみにアクセスを可能とするようにしてもよい。もちろん、不特定少数又は不特定多数のユーザが利用できるようにしてもよい。
 上述した実施形態において種々のインターフェースを備える場合を説明したが、これらのインターフェースは、各部が備えている必要は無く、図示しないインターフェース管理部が統括して備えておき、必要に応じて必要なインターフェースをクライアント3へと出力するようにしてもよい。すなわち、インターフェース管理部は、サーバ2及びクライアント3の少なくとも一方に備えられているものであってもよい。
 本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。また、当然のことながら、本発明の要旨の範囲内で、これらの実施の形態を部分的に適宜組み合わせることも可能である。
 例えば、前述した実施形態及び変形例は、必要に応じて適切に組み合わせて用いることが可能である。
 例えば、クライアントPC 300は、コンピュータである必要は無く、動作に必要な手段を備えたデバイスであってもよい。また、クライアントPC 300とブレッドボード30との接続インターフェースは、有線又は無線のネットワークを用いてもよい。
1:データ格納システム
2:サーバ
200:アップロード部
202:データ格納部
204:信号データ格納部
206:配置データ格納部
208:回路データ格納部
210:データ検索部
212:データ選択部
214:ダウンロード部
216:ストア部
218:制限付与部
220:使用回数制限付与部
222:使用時間制限付与部
224:ノイズ付与部
226:回路保護制限付与部
228:クライアント相互動作部
230:回路情報データ生成部
232:配線生成部
234:配置生成部
236:シミュレーション部
238:部品発注部
240:素子情報格納部
242:等価回路データ生成部
244:回路データ抽出部
246:回路情報データ自動生成部
248:ポイント管理部
250:ランク管理部
252:機能同等回路検索部
254:回路保護部
256:バージョン管理部
258:条件付データ生成部
260:他属性データ生成部
3、3A、3B:クライアント
30、30A、30B:ブレッドボード
300、300A、300B:クライアントPC
302:入力インターフェース
304:出力インターフェース
310:回路設計領域
312:使用素子表示領域
314:説明入力領域
316:カテゴリ選択領域
318:配線書込ボタン
320:アップロードボタン
322:回路データ保存ボタン
324:ボード情報取込ボタン
330:検索結果表示領域
332:検索条件入力領域
334:カテゴリ選択領域
336:検索ボタン
338:ダウンロードボタン
340:回路データ保存ボタン
342:配線情報書込ボタン
350:ノイズ発生部
352:モニタリング部
354:システム電源部
356、356A、356B:ブレッドボード側送受信部
358、358A、358B:信号入出力部
360、360A、360B:端子管理部
4:ネットワーク
5:クラウドサーバ
6:操作端末
600:操作端末側送受信部
602:端子状態表示部
604:端子状態指示部

Claims (39)

  1.  外部からの信号により回路構成要素の端子同士の接続状況の変更が制御可能なブレッドボードの配線を変更する信号データ、及び、当該信号データを用いる場合におけるブレッドボード上の回路構成要素の配置を示す配置データ、を紐付けて格納する、データ格納部と、
     前記データ格納部に前記信号データ及び前記配置データをアップロードする、アップロード部と、
     前記データ格納部に格納されている少なくとも1つの前記信号データ及び前記配置データのうち、少なくとも前記信号データをダウンロードする、ダウンロード部と、
     を備える、データ格納システム。
  2.  前記データ格納部に格納されている前記信号データ及び前記配置データについて、データの検索を行う、データ検索部をさらに備え、
     前記ダウンロード部は、前記データ検索部に検索された結果に基づいてデータをダウンロードする、請求項1に記載のデータ格納システム。
  3.  前記データ格納部に格納されている少なくとも1つの前記信号データ及び前記配置データからダウンロードされるデータを選択する、データ選択部をさらに備え、
     前記ダウンロード部は、前記データ選択部に選択されたデータをダウンロードする、請求項1又は請求項2に記載のデータ格納システム。
  4.  前記データ格納部は、所定機能を実現する回路の全部又は一部を格納する、請求項1乃至請求項3のいずれかに記載のデータ格納システム。
  5.  前記アップロード部は、前記所定機能を実現する回路の全部又は一部をアップロードする、請求項4に記載のデータ格納システム。
  6.  前記ダウンロード部は、前記所定機能を実現する回路の全部又は一部をダウンロードする、請求項4又は請求項5に記載のデータ格納システム。
  7.  前記データ格納部に格納されているデータを無償又は有償
    で販売する、ストア部をさらに備え、
     前記ダウンロード部は、前記ストア部により販売されたデータをダウンロードする、請求項1乃至請求項6のいずれかに記載のデータ格納システム。
  8.  前記ストア部は、同じデータを無償及び有償で販売した場合に、無償で販売したデータと、有償で販売したデータとの間に機能差を設けることが可能である、請求項7に記載のデータ格納システム。
  9.  前記ダウンロード部がダウンロードするデータについて、当該ダウンロードするデータに使用回数の制限を付与する、使用回数制限付与部をさらに備える、請求項1乃至請求項8のいずれかに記載のデータ格納システム。
  10.  前記ダウンロード部がダウンロードするデータについて、当該ダウンロードするデータに使用時間の制限を付与する、使用時間制限付与部をさらに備える、請求項1乃至請求項9のいずれかに記載のデータ格納システム。
  11.  前記ダウンロード部がダウンロードするデータについて、当該ダウンロードするデータを用いる配線にノイズを加えるデータを付与する、ノイズ付与部をさらに備え、
     前記ダウンロード部は、ノイズを加える旨のデータが付与されたデータをダウンロードする、請求項1乃至請求項10のいずれかに記載のデータ格納システム。
  12.  前記ダウンロード部がダウンロードするデータについて、当該ダウンロードするデータの配線上におけるパラメータの範囲の設定をし、回路を保護する制限を付与する、回路保護制限付与部をさらに備える、請求項1乃至請求項11のいずれかに記載のデータ格納システム。
  13.  データのアップロード後、データ作成中又はデータ作成後において、各種前記制限を変更する、制限変更部、をさらに備える、請求項7乃至請求項12のいずれかに記載のデータ格納システム。
  14.  前記ダウンロード部がダウンロードするデータのダウンロード先の識別子を、当該ダウンロード先がダウンロード可能であるデータと紐付けて管理する、ID管理部をさらに備える、請求項1乃至請求項13のいずれかに記載のデータ格納システム。
  15.  前記ダウンロード部は、前記信号データが使用されるブレッドボードに一意的に付与される識別子によりダウンロードするブレッドボードを識別して前記ダウンロードを管理する、請求項14に記載のデータ格納システム。
  16.  ブレッドボードに一意的に付与される前記識別子は、ブレッドボードのMACアドレスである、請求項15に記載のデータ格納システム。
  17.  ブレッドボードに一意的に付与される前記識別子は、ブレッドボードに装着可能な外部のチップ、又は、ブレッドボードに備えられているチップにより提供されるものである、請求項16に記載のデータ格納システム。
  18.  前記ダウンロード部は、複数のブレッドボードに対して、同じタイミングで同一の前記信号データをダウンロードする、請求項1乃至請求項17のいずれかに記載のデータ格納システム。
  19.  前記信号データがダウンロードされたブレッドボードの端子における情報と連携して動作する回路を構成する、遠隔動作部をさらに備える、請求項1乃至請求項18のいずれかに記載のデータ格納システム。
  20.  前記信号データがダウンロードされた複数のブレッドボードを連携して動作させる、クライアント相互動作部をさらに備える、請求項1乃至請求項19のいずれかに記載のデータ格納システム。
  21.  前記データ格納部に格納する前記信号データを生成することが可能なインターフェースを備える、配線生成部、をさらに備える、請求項1乃至請求項20のいずれかに記載のデータ格納システム。
  22.  前記データ格納部に格納する前記配置データを生成することが可能なインターフェースを備える、配置生成部、をさらに備える、請求項1乃至請求項21のいずれかに記載のデータ格納システム。
  23.  前記データ格納部に格納する、前記信号データ及び前記配置データに基づいてシミュレーションモデルを生成する、シミュレーション部、をさらに備える、請求項1乃至請求項22のいずれかに記載のデータ格納システム。
  24.  前記シミュレーション部は、前記信号データ及び前記配置データに基づいた回路において、入力信号を設定し、当該入力信号に対する出力信号をシミュレートして出力する、請求項23に記載のデータ格納システム。
  25.  前記データ格納部に格納されている前記信号データ及び前記配置データに基づいた回路と等価な回路を生成する、等価回路データ生成部、をさらに備える、請求項1乃至請求項24のいずれかに記載のデータ格納システム。
  26.  前記等価回路データ生成部は、前記配置データに基づいた回路構成要素とは同一の又は異なる回路構成要素を用いた等価な回路を生成する、請求項25に記載のデータ格納システム。
  27.  前記データ格納部に格納されている前記配置データに基づいた回路構成要素を発注することができるインターフェースを備える、部品発注部、をさらに備える、請求項1乃至請求項26のいずれかに記載のデータ格納システム。
  28.  前記アップロード部を介してデータをアップロードしたユーザ及び前記ダウンロード部を介してデータをダウンロードしたユーザの少なくとも一方に、システム内又はシステム外で使用することが可能なポイントを付与し、当該ポイントを管理する、ポイント管理部、をさらに備える、請求項1乃至請求項27のいずれかに記載のデータ格納システム。
  29.  システムに登録されているユーザ情報について、各ユーザに紐付けられたランクを管理する、ランク管理部、をさらに備える、請求項1乃至請求項28のいずれかに記載のデータ格納システム。
  30.  前記データ格納部に格納されているデータに関連した機能を有する回路についての前記信号データ及び前記配置データを検索する、機能同等回路検索部、をさらに備える請求項1乃至請求項29のいずれかに記載のデータ格納システム。
  31.  前記データ格納部に格納されるデータについて、ブレッドボード又は回路構成要素の故障が発生しないように故障の原因となる回路情報をリジェクトする、回路保護部、をさらに備える請求項1乃至請求項30のいずれかに記載のデータ格納システム。
  32.  前記データ格納部に格納されているデータのバージョン管理を行う、バージョン管理部、をさらに備える請求項1乃至請求項31のいずれかに記載のデータ格納システム。
  33.  所定条件により回路の配線情報を変更していく前記信号データを生成するインターフェースを備える、条件付データ生成部、をさらに備える、請求項1乃至請求項32のいずれかに記載のデータ格納システム。
  34.  前記所定条件は、経過時間であり、前記条件付データ生成部は、時系列にそって回路の配線情報を更新する、請求項33に記載のデータ格納システム。
  35.  前記アップロード部は、回路図、実体配線図、ブレッドボードの配線図、配線が制御されたブレッドボードからのデータ、及び、プリント基板の少なくとも1つの情報のアップロードを受け付け、
     前記アップロードされた情報に基づいて、前記アップロードされた情報とは異なる情報のうち少なくとも1つを生成する、他属性データ生成部、をさらに備える、請求項1乃至請求項34のいずれかに記載のデータ格納システム。
  36.  クラウドサーバ上に実装され、複数のユーザによる同じタイミングにおけるアクセスを可能とし、複数のクライアントに対して同じタイミングで同一の又は異なる前記信号データをダウンロードする、請求項1乃至請求項35のいずれかに記載のデータ格納システム。
  37.  データ格納部が、外部からの信号により回路構成要素の端子同士の接続状況の変更が制御可能なブレッドボードの配線を変更する信号データ、及び、当該信号データを用いる場合におけるブレッドボード上の回路構成要素の配置を示す配置データ、を紐付けて格納し、
     アップロード部が、前記データ格納部に前記信号データ及び前記配置データをアップロードし、
     ダウンロード部が、前記データ格納部に格納されている少なくとも1つの前記信号データ及び前記配置データのうち、少なくとも前記信号データをダウンロードする
     データ格納システムの制御方法。
  38.  コンピュータに、
     外部からの信号により回路構成要素の端子同士の接続状況の変更が制御可能なブレッドボードの配線を変更する信号データ、及び、当該信号データを用いる場合におけるブレッドボード上の回路構成要素の配置を示す配置データ、を紐付けて格納する、データ格納手段、
     前記データ格納手段に前記信号データ及び前記配置データをアップロードする、アップロード手段、
     前記データ格納手段に格納されている少なくとも1つの前記信号データ及び前記配置データのうち、少なくとも前記信号データをダウンロードする、ダウンロード手段
     として機能させる、プログラム。
  39.  コンピュータに、
     外部からの信号により回路構成要素の端子同士の接続状況の変更が制御可能なブレッドボードの配線を変更する信号データ、及び、当該信号データを用いる場合におけるブレッドボード上の回路構成要素の配置を示す配置データ、を紐付けて格納しているデータ格納手段を備えるサーバに対して、データを検索する条件を入力する、検索条件入力手段、
     前記検索条件入力手段に入力された検索条件を前記サーバに送信する、検索条件送信手段、
     前記サーバから送信された検索結果を表示する、検索結果表示手段、
     前記検索結果表示手段に表示されている1又は複数の検索結果のうち、少なくとも1つが選択されると、選択された検索結果についての前記信号データをダウンロードするリクエストを前記サーバに送信する、リクエスト送信手段、
     前記リクエストに対して前記サーバから送信された各種データを受信する、データ受信手段、
     として機能させる、プログラム。
PCT/JP2018/009759 2018-03-13 2018-03-13 データ格納システム、データ格納システムの制御方法及びプログラム WO2019175972A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/009759 WO2019175972A1 (ja) 2018-03-13 2018-03-13 データ格納システム、データ格納システムの制御方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/009759 WO2019175972A1 (ja) 2018-03-13 2018-03-13 データ格納システム、データ格納システムの制御方法及びプログラム

Publications (1)

Publication Number Publication Date
WO2019175972A1 true WO2019175972A1 (ja) 2019-09-19

Family

ID=67907513

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/009759 WO2019175972A1 (ja) 2018-03-13 2018-03-13 データ格納システム、データ格納システムの制御方法及びプログラム

Country Status (1)

Country Link
WO (1) WO2019175972A1 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06348786A (ja) * 1993-06-14 1994-12-22 Nec Corp 実チップボードの自動配線システム
JP2003076575A (ja) * 2001-08-31 2003-03-14 Fujitsu Ltd アクセス制御装置及び試験方法
JP2003167930A (ja) * 2001-11-29 2003-06-13 Hitachi Ltd プリント基板の回路設計支援方法および支援装置
WO2008146913A1 (ja) * 2007-05-30 2008-12-04 Sony Corporation コンテンツダウンロードシステムおよびコンテンツダウンロード方法、コンテンツ供給装置およびコンテンツ供給方法、コンテンツ受信装置およびコンテンツ受信方法、並びにプログラム
JP2009288986A (ja) * 2008-05-28 2009-12-10 Interface:Kk 多品種少量電子機器生産支援システム及び多品種少量電子機器生産支援プログラム
JP2010218052A (ja) * 2009-03-13 2010-09-30 Sharp Corp 設計支援装置および設計支援プログラムおよび記録媒体
JP2011028644A (ja) * 2009-07-28 2011-02-10 Fujitsu Semiconductor Ltd 電源ノイズ解析方法及び電源ノイズ解析プログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06348786A (ja) * 1993-06-14 1994-12-22 Nec Corp 実チップボードの自動配線システム
JP2003076575A (ja) * 2001-08-31 2003-03-14 Fujitsu Ltd アクセス制御装置及び試験方法
JP2003167930A (ja) * 2001-11-29 2003-06-13 Hitachi Ltd プリント基板の回路設計支援方法および支援装置
WO2008146913A1 (ja) * 2007-05-30 2008-12-04 Sony Corporation コンテンツダウンロードシステムおよびコンテンツダウンロード方法、コンテンツ供給装置およびコンテンツ供給方法、コンテンツ受信装置およびコンテンツ受信方法、並びにプログラム
JP2009288986A (ja) * 2008-05-28 2009-12-10 Interface:Kk 多品種少量電子機器生産支援システム及び多品種少量電子機器生産支援プログラム
JP2010218052A (ja) * 2009-03-13 2010-09-30 Sharp Corp 設計支援装置および設計支援プログラムおよび記録媒体
JP2011028644A (ja) * 2009-07-28 2011-02-10 Fujitsu Semiconductor Ltd 電源ノイズ解析方法及び電源ノイズ解析プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WEB ARDUINO 123D CIRCUITS, I/O, vol. 39, no. 2, 1 February 2014 (2014-02-01), pages 68 - 70 *

Similar Documents

Publication Publication Date Title
TW504626B (en) Method and system for facilitating electronic circuit and chip design using remotely located resources
US20180011958A1 (en) Methods for engineering integrated circuit design and development
US20090037287A1 (en) Software Marketplace and Distribution System
US20090037492A1 (en) Framework for Synchronizing Applications
RU2473179C2 (ru) Система и способ управления аватаром на платформе мгновенного обмена сообщениями
KR20200136808A (ko) 제품의 유지보수 관리 시스템 및 방법
US8347256B2 (en) System and method of assisting circuit design
CN109597727A (zh) 电子设备的检测方法、检测装置、服务器及检测系统
JP6885152B2 (ja) 情報処理システム、情報処理装置、情報処理方法、及び情報処理プログラム
CN109286652B (zh) 应用销售管理服务器系统以及边缘服务器
WO2021018366A1 (en) Adaption of a production process, edge device of an industrial control system and product ordering process
WO2019175972A1 (ja) データ格納システム、データ格納システムの制御方法及びプログラム
US20190028457A1 (en) Application sales management server system
CN110569416A (zh) 基于数据爬取的app控件的处理方法及相关产品
JP6806601B2 (ja) 機器情報管理システム
US10638012B2 (en) Information processing system, information processing apparatus, and information processing method
JP2020149564A (ja) ウェブサービス提供サーバ及びプログラム
JP7110439B2 (ja) プログラム管理システム、及び、外部機器
KR20200068921A (ko) Vr 갤러리 시스템 및 이를 이용한 vr 갤러리 관리 방법
KR102239144B1 (ko) 마스크 관리 장치 및 방법
JP2004118584A (ja) ライセンス管理サーバ、方法及びプログラム
KR20210037883A (ko) 입체모형 제작관리서버
KR101770352B1 (ko) 전자문서 서비스 제공 시스템
KR100891492B1 (ko) 회원간 컨텐츠 직거래 시스템
JP2002288360A (ja) ソフトウェア購入方法及びシステム

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: 18909443

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: 18909443

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP