Pick to light system advice

Thread Starter

zazas321

Joined Nov 29, 2015
936
Hey. I am trying to design a pick to light system ( just started looking into it now) and would like to for some general advice.

For those who do not know what is pack to light system have a look here:
https://sdi.systems/pack-to-light/

So my general idea is that I will have a number / each one will have and LED and some sort of sensor(IR, Proximity?). I will be scanning the barcode of the item and based on that item, certain boxes will be lit indicating that I need to grab from that particular box.

Now my main concern is what microcontroller to pick for this particular task. Since I am not a programming or electronics expert, I would like to make it as simple to use but have a possibility to expand the system later. I have experience with Arduinos and stm32 mcu's. Since I will need a large amount of items to sort ( Lets say up to 50 boxes), each box will need to have a sensor and an LED connected to it.

What are my options in terms of suitable microcontrollers/ dev boards /nucleo boards available in the market?

What sensors should I be mostly looking at? Is i2c with variable slave address the best option here since I would be able to read all of the sensors with a single i2c bus? What about the i2c speed when connecting 50 sensors?

Any advice is appreciated!
 

geekoftheweek

Joined Oct 6, 2013
1,202
Finding 50 of the same sensors with enough pins to be able to configure 50 different addresses probably won't happen. You'll need some sort of switching setup and even then you'll have to find different manufacturers with different parts of different address ranges to make it branch out enough to get it to work. Once you are done with all that you may exceed the bus capacitance and the I2C won't even work.

A separate microcontroller for each bin would be how I would go. Maybe even multiple bins depending on how many pins each bin will need. The microcontroller would handle all functions of that bin (or group) and can be programmed with any address you want (almost). Normal digital sensors, buttons, displays, and such could be connected to the microcontroller cheaper than a bunch of I2C stuff. You could then connect multiple microcontrollers to say an ESP8266 and create a WiFi to I2C converter and have the main communication be over WiFi which would ultimately connect to your desktop, server, or whatever would serve as the master control.
 

djsfantasi

Joined Apr 11, 2010
9,156
Finding 50 of the same sensors with enough pins to be able to configure 50 different addresses probably won't happen. You'll need some sort of switching setup and even then you'll have to find different manufacturers with different parts of different address ranges to make it branch out enough to get it to work. Once you are done with all that you may exceed the bus capacitance and the I2C won't even work.

A separate microcontroller for each bin would be how I would go. Maybe even multiple bins depending on how many pins each bin will need. The microcontroller would handle all functions of that bin (or group) and can be programmed with any address you want (almost). Normal digital sensors, buttons, displays, and such could be connected to the microcontroller cheaper than a bunch of I2C stuff. You could then connect multiple microcontrollers to say an ESP8266 and create a WiFi to I2C converter and have the main communication be over WiFi which would ultimately connect to your desktop, server, or whatever would serve as the master control.
Think smaller. 50 items take 6 bits to address. I2C can theoretically address 128 items. Practically, it’s much less.

So, I’d organize the items into 4 groups of 16 items each. 16 is a lot easier to address vis I2C. 2 bits would then select which group...

It’s a matter of organizing into manageable groups and going beyond brute force addressing.
 

geekoftheweek

Joined Oct 6, 2013
1,202
Think smaller. 50 items take 6 bits to address. I2C can theoretically address 128 items. Practically, it’s much less.

So, I’d organize the items into 4 groups of 16 items each. 16 is a lot easier to address vis I2C. 2 bits would then select which group...

It’s a matter of organizing into manageable groups and going beyond brute force addressing.
I was thinking more along the lines of say connecting an array of I2C devices. Some have pins on the device to set one, two, or three bits of the address and the rest is hardwired internally. That would limit you to seven of the same devices on the same buss. I haven't seen anything where the whole address could be set that way.

Microcontrollers obviously don't have that limitation and after I posted that comment I thought an array of shift registers, multiplexing, and even a couple 64 pin, or one 128 pin controllers could make a manageable group of whatever.

Edit...

I read it again and realized what you are trying to say.

Actually if it is just a IR sensor and LED four groups of 16 could be easily done with a few flip flops for the outputs and the other way for the inputs. Toggle the appropriate clock and enables on the flip flops and alternate between reading sensors and setting LEDs.
 
Last edited:

Thread Starter

zazas321

Joined Nov 29, 2015
936
Ok thank you all for the responses. Since I thought about it a little bit more, I have an idea:

Since I will be scanning the barcodes and using the database to find the correct item, I will require to use a computer or some sort of device that is capable of running the server (could be raspberry pi?). I am thinking of having a lets say an Arduino UNO for 10-20 boxes. Since I had some trouble finding an i2c proximity sensor with variable address ( most of them have fixed slave address), I am thinking of using 5 analog inputs that arduino has and use 1-2 multiplexer chips to make 10 available analog inputs and use analog proximity sensors instead. An LEDs can be driven through digital ports.

What I am still confused about though is the database/server part of this project. What are my options to handle that? I will probabaly be hosting my own SQL local database which will ideally be linked to some external database which holds all the information about existing items. But how do I connect/trasnfer data from the database/server to individual arduino boards?
 

geekoftheweek

Joined Oct 6, 2013
1,202
Check out ESP8266. The E or F version is probably what you want. You can connect your Arduinos to it and use it as a WiFi to I2C/SPI/serial converter. You use the Arduino IDE to program them and since you already work with Arduino you have the basics covered. I don't know the maximum distance they will cover, but the one I have sitting on my desk can connect to the router 50 feet away no problem. There are some versions that allow an external antenna to be connected which should extend the range. There are wired ethernet modules you can connect to Arduino or whatever, but I haven't tried anything yet as they seem to involve me learning TCP details I'm not willing to put time into.

Actually you could base the whole project around the ESP8266 and leave out the Arduinos if you really wanted to. They don't have the pin count of the Arduino, but a couple shift registers or something like a couple PCA9500 io expanders would get you where you need to be. You could connect up to seven PCA9500 to a single I2C bus.

Edit... I missed the part of the analog IR sensors. Unfortunately the ESP8266 only has one ADC and from what I've read it's not a very good one to start with. Maybe set them up with a comparator to turn analog to digital.
 
Last edited:

Reloadron

Joined Jan 15, 2015
7,501
So my general idea is that I will have a number / each one will have and LED and some sort of sensor(IR, Proximity?). I will be scanning the barcode of the item and based on that item, certain boxes will be lit indicating that I need to grab from that particular box.
I really do not see this as a matter of which uC to use as much as writing a software routine to do what you want to do. You want to scan (read) a bar code and based on that bar code do something or several somethings. What you linked to is a software bundle. On a very large scale this is what distributors like Amazon use in their warehouses. You mention bar codes but what are the sensors sensing? What I see is a software solution long before trying to define hardware needs.

I scan a bar sode and now what?

Ron
 

Thread Starter

zazas321

Joined Nov 29, 2015
936
First of all thanks for your answer.

Once the barcode is scanned, my general idea is that it should send a sql query to database and retrieve all the relevant information for the particular scanned item. With that information i will be determining which leds to turn ON. I will probably need a local database which will hold the information on the specific items and their location ( which box they are put in). The local database will be linked to the main database which hold the actual information about every possible item we have in stock.
 

Reloadron

Joined Jan 15, 2015
7,501
First of all thanks for your answer.

Once the barcode is scanned, my general idea is that it should send a sql query to database and retrieve all the relevant information for the particular scanned item. With that information i will be determining which leds to turn ON. I will probably need a local database which will hold the information on the specific items and their location ( which box they are put in). The local database will be linked to the main database which hold the actual information about every possible item we have in stock.
Yes, so you need a database. What you are looking to do is not the typical work of software. Maybe 15 years ago I wrote a routine in Visual Basic (I am not and never was a programmer type) but it was good enough. I wrote it for our calibration department to help move it to a paperless system. For the data base Access was plenty. The user scanned a bar code clicked a search button and it brought up his required calibration procedure as well as the history on the specific instrument he or she scanned. There was much more to it but here nor there.

You start with a clean blank sheet of paper and list your requirements one by one. You define each step you want to do. There are likely a few dozen turn key solutions to what you are looking to do already out there just like what you linked to. Worry about any robotics later which physically retrieve items. Learn how to write the code to query a data base and decide which code you want to use. Just remember you need a HID (Human Interface Device) which will likely use forms you generate. The bar code scanning is easy. You scan and populate a text box then a search query of your data base then whatever you want to do.

Ron
 
Top