--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/e0b6d60f-a578-4f65-99be-edbf920731c6n%40googlegroups.com.
Hi xp Liao,
amazing miniaturization. Congrats!
For real position awareness of the kind your are describing you would need to write new "discovery" code. There are some existing capabilities in OpenPnP, but I don't think any of them would really bring out the advantages of your design.
Discovering at the beginning of the job or with the press of a
button would be no problem. Automatic triggering when plugging in
the feeder is harder in OpenPnP, I guess. So my advice would be to
design a scan-and-report routine, which OpenPnP could then work
with. Adding such a routine in Java would not be hard, IMHO, and I
could perhaps help (assuming Open Source, Open Hardware).
Full plug-in position awareness from the plate sounds
ambitious/expensive. Did you ever consider the nozzle going across
the feeders, and using the feeder's proximity sensor to know which
feeder should report its data, then using the nozzle's position
for location?
_Mark
> One question is if we provide the USB to serial interface, will that be good enough for scan and report?
Yes, as long as works with text lines (not binary), and
command/response, I see no problems. It does not need to be
G-code, anything textual with decimal numbers is fine. But if you
write the firmware yourselves, I recommend adopting a G-code like
syntax and implementing M115 for discovery of the firmware type,
which you can use with I&S to auto-setup.
> with i2c reading the position info from baseplate
Sounds complicated. How many contacts per feeder do you need? How
do you plug them in reliably? How much does a connector cost?
I'm just asking because your current feeder (the one shown
on YouTube) is actually very much following the K.I.S.S.
principle with the proximity sensor feed impulse, tape
transport by pulling on the protective film (just one motor
needed), its autonomous nature, etc. I very much like that.
So in that spirit, I hope you'll keep true to that principle, and
plan to extend on it 🙂.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/GVXPR10MB8154A78E679FD016B52D8D8EA4A2A%40GVXPR10MB8154.EURPRD10.PROD.OUTLOOK.COM.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/db24e863-0807-4da9-b7fe-4556065755ca%40makr.zone.
Hi xpLiao,
just to be very clear: You will have to program this into OpenPnP
in Java. Or use the scripting support of OpenPnP. So it is
basically you, who says what you want to do. OpenPnP has no such
functionality yet.
Personally, I would use OpenPnP to store component info. I would use some constant UUID in the feeder (MCUs typically have them) to associate the feeder with the part. This way you don't need to program parts into the feeder, which would require a second program,
Think about the workflow: I assume parts are already
automatically imported from the ECAD into OpenPnP, so they are
available and can be selected from a drop-down, which eliminates
any typos there.
If a feeder is listed for the first time, OpenPnP would just
create the feeder in OpenPnP with the part unassigned. The user
can then select the missing parts (that's already how it works
in OpenPnP). By storing the UUID on the feeder, OpenPnP then
always knows which part is loaded in the feeder. Plus all the
other associated info from the ECAD or entered by the user.
The coordinate system is tricky. You would somehow have to enter
at least three corner-points of the plate in OpenPnP, I guess.
Maybe you would even want to support multiple plates?
I would not query the status unless prompted by the user. But you can enforce it in the job preparation handler.
_m
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/CANbLAndHg1Z2GifXWZUDGJnsinU_dQUL2_aBT5NH0arzKhYaEQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/97d331ec-6ca6-4143-b91c-05541193c364%40makr.zone.
Hi xpLiao,
the problem with fiducials on your design is that they are at
drastically different Z heights. So they will almost certainly be
too blurred, and the camera parallax might be too large for any
kind of precision. Plus the feeders are likely to have some
wiggling room if still plugged in LEGO-like.
So perhaps you will have to mount fiducials on some structure
rising up to the feeder surface level. Perhaps the plate would be
more like a crate, with a wall around it. This would also align
the feeders.
Another approach would be to forget about the plate and use the
feeders themselves for position (sprocket hole vision, as you
already use). The user would have to jog to the first few feeders,
until OpenPnP can derive the grid from the feeders it already
knows, taking their position data into account. It should be
possible to interpolate/extrapolate from existing feeders,
gradually improving the accuracy. The advantage of that is that
all information can be stored on the feeder, no extra GUI for
"plates" is needed.
This is pretty much how the "+" button on the ReferencePushPullFeeder already works, for rows of feeders. I assume you have watched the video there:
https://youtu.be/5QcJ2ziIJ14?feature=shared&t=295
Storing and synchronizing common attributes, like the overall
plate dimensions, and the actuator getting its report, for a whole
array of feeders is also done in the BlindsFeeder. You could
look into that code.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/CANbLAneXP6GjvOS%3DGuaQwGZOX_yrVgEz6c8LuwzT9vU_apRcgw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/ccb68535-d366-4a68-b924-a031850ae5f9%40makr.zone.
Brilliant!
How exactly does the feeding work? By proximity or through the
same electronics that discovers the feeders?
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/CANbLAneHqGVkRJRrv5AtA-sn2Nk%2BvvdMA6f%2BfPmjjtoLJ5nVFQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/06a6f5c4-9ad4-47a2-854a-4e3b63b70435%40makr.zone.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/90899bc4-397c-471d-9979-22d4d3869a18n%40googlegroups.com.