Commit Graph

416 Commits

Author SHA1 Message Date
iabdalkader
39495a1fd7 Update WiFi streaming scripts. 2016-04-06 02:58:42 +02:00
iabdalkader
270fd4437d Update WiFi streaming script. 2016-04-06 02:57:11 +02:00
iabdalkader
838ffb4fd7 Add WiFi MJPEG streamer + FIR. 2016-04-05 22:37:06 +02:00
iabdalkader
2cbf6f08de Update WiFi scan script 2016-04-05 22:36:03 +02:00
iabdalkader
ea63340282 Add WINC1500 fw update script. 2016-04-05 22:35:38 +02:00
Kwabena W. Agyeman
0abd5d3688 Working on scripts...
Moved feature detection scripts into their own folders and added explict
frame_skip value per Ibrahim's request.

Finished working on snapshot and video recording scripts for next
release.

... From CMUcam4 work I learned that people will just want examples that
do "X" thing. So, in general, our examples should include a simple
script showing off a feature and then a more complex script that does "X"
where "X" is some app that a person would want. For example, we'll get
reuqests for face tracking with servos, and movement detection with
servos. So, instead of answering this question a million times with an
example script we'll just have examples for all kinds of things people
will want.

Gotta automate dealing with help support at the end of the day...
2016-04-02 11:18:20 -04:00
iabdalkader
fab730aeeb Update MJPEG streaming examples. 2016-03-31 22:36:41 +02:00
Kwabena W. Agyeman
94bc225542 Moved examples arround.
Tried to emulate Arduino's 11 folders... I'd perfer to have all the
shield scripts in one folder... but, that might not make sense. I don't
really want one script per folder however. So, I might merge some more
stuff in the future. I have a grand idea here that will become evident as
I work though the examples.

Anyway, the current structure is not final. It will be in flux for a
little while.

As for Git History, folder history is the best we're going to get. Git
and GitHub don't seem to deal with moves too well.
2016-03-30 21:30:11 -04:00
iabdalkader
20dcb16e9f Add NTP example. 2016-03-31 02:47:12 +02:00
iabdalkader
4d21a0b732 Add tcp_client and DNS examples. 2016-03-31 01:07:40 +02:00
iabdalkader
bd7eed6b54 Move Python scripts to separate directories. 2016-03-28 23:19:09 +02:00
Kwabena W. Agyeman
a6c2efcebe Renamed Display to Draw
And fixed type in blend. Per Ibrahim's suggestion.
2016-03-26 10:26:19 -04:00
iabdalkader
b2e77e9dce Add wifi scan and connect examples. 2016-03-26 01:55:16 +02:00
iabdalkader
7109748146 Update FIR Python examples. 2016-03-25 14:03:56 +02:00
Kwabena W. Agyeman
a74dd50eaf Improved IR code.
Return min and max from read_ir now. Also, made drawing functions take
IR values.

Example scripts have been updated to work with the new module code.
2016-03-24 19:52:00 -04:00
Kwabena W. Agyeman
2ef24cec0f Add BLE Driver
This a python module driver for the BLE module. It puts the module into
a mode that's good for machine interfacing and handles parsing commands
for you. Additionally, it lets you get access to the low level serial
port.

Users who want to use this driver will need to read and understand the
TruConnect API for what commands they can execute. This driver simply
makes executing commands easy. The user simply needs to call the
"command()" function with the strings listed on the TruConnect API and
they will get the response from the command back as a byte object.

Once the user has executed the nessary commands to setup the BLE
connection they can then do:

ble.command("str")

To put the BLE module into streaming mode and then they can just
directly access the serial port via:

ble.uart().write(<data>)

And etc.
2016-03-20 12:58:32 -04:00
Kwabena W. Agyeman
97a456c837 Add copy color.
The copy color function now works. It will automatically determine the
best thresholds to use to track a particular color blob for you.
2016-03-19 13:41:48 -04:00
iabdalkader
cb211024c9 Increase serial timeout after connecting. 2016-03-19 18:53:54 +02:00
iabdalkader
5069a71e10 Break after connecting.
* Add break in serial connect retry loop
2016-03-19 18:47:44 +02:00
Kwabena W. Agyeman
94910c8ed7 Move LCD code into module. It's now ultra fast, safe and friendly. I
tested everything too and added an example script (very simple).
2016-03-17 20:01:03 -04:00
iabdalkader
e13da8b3b8 Update PyInstaller's Spec File.
* Add pinout.png.
* Update to pyinstaller-3.1.1
* Note: this only works with setuptools==19.2
2016-03-15 00:44:00 +02:00
iabdalkader
819027f525 Use pin aliases in scripts. 2016-03-15 00:15:32 +02:00
iabdalkader
f85f42f7bf Up IDE tag name. 2016-03-15 00:05:56 +02:00
iabdalkader
65ddf182b1 Update pin-out image. 2016-03-15 00:03:33 +02:00
iabdalkader
6136bd04e1 Try to connect a few times before giving up.
* Fixes the connect button hang issue.
2016-03-11 03:37:35 +02:00
Kwabena W. Agyeman
66248c444b Update Gif to use fb_alloc_all.
And tested it along with mjpeg to make sure all this stuff is good. I
also see the issue with QQVGA now. That just appeared.
2016-03-05 22:29:21 -05:00
Kwabena W. Agyeman
5316b26d83 Added a new mjpeg module for Mjpeg support.
The built-in mjpeg module allows you to record videos seamlessly. It
will automatically compress the frame buffer using the extra space in the
main ram. So... you don't have to pass it jpeg images. Gets 7 FPS at
320x240 while connected to the computer too (it has to compress the
frame twice in this situation).

Anyway, the module work like Gif.
2016-03-05 20:03:48 -05:00
Kwabena W. Agyeman
9325029675 Add support for color gif.
Color gifs look very good for how bad you'd expect them to be with just
7 bits of color (rgb232) - quite amazing. Also, I  hardened the gif
module to make it "user ready".
2016-03-04 23:30:01 -05:00
iabdalkader
596cdf527c Lower the text buffer polling rate. 2016-03-02 04:02:27 +02:00
Kwabena W. Agyeman
98f4dde21f Add new morph function.
The morph function lets you convolve the image with a kernel. It's
decently fast right now. But, in the future we'll have to optimize it by
a lot (unrolling loops, using SIMD instructions, etc.).

Anyway, along with morph I added an edge detection test script showing
how you can use a high pass filter on an image to get all the edges in
it. This is not as good as canny edge dection... but, it's about the
same and fast enough.

We'll need a Hough Transform system in the future to make edge dection
useful. Not sure how that will be implemented... so, that's going to be
far away for now.
2016-02-29 18:04:45 -05:00
Kwabena W. Agyeman
fb8b357c24 Dilate and errode working.
The old code did not actually implement the errode anhd dilate kernels
correctly. However, it migh have been a little faster because it avoided
the boundary problem.

In the future we can optimize all the kernel code to have different loops
for doing the edges of image versus the center. But, for now, this is
good enough. QVGA color tracking with kernels will be slow, but, the
speed can be improved with QQVGA resolution. Using a 3x3 kernel is
plenty fast. Larger ones are slower.

I also added the ability for you to set the threshold for erode and
dialte. This lets you make the kenrel a little bit smarter so that it
won't errode or dilate a pixel unless the threshold is met. Meaning,
you'll be able to use erode to erode an image down to 1 pixel wide
lines.
2016-02-28 16:27:49 -05:00
iabdalkader
052d64e79c Set frame size to QQVGA in gif script. 2016-02-28 21:37:23 +02:00
iabdalkader
2e7ded5dd4 Add GIF module 2016-02-28 21:34:47 +02:00
iabdalkader
b40c07c75d Add BLE example. 2016-02-28 04:12:56 +02:00
iabdalkader
955856488c Add profile face XML cascade 2016-02-28 04:09:39 +02:00
iabdalkader
0aed3f4961 Add image filters example. 2016-02-28 04:07:28 +02:00
iabdalkader
c050509b9d Update descriptor scripts.
* Use the new match_descriptor.
* Add commented line that loads descriptor from file
2016-02-28 03:56:02 +02:00
iabdalkader
08f7cb8832 Add LBP descriptor example script 2016-02-28 03:51:57 +02:00
Kwabena W. Agyeman
4ed49082a1 Background Subtraction is working!!!
Woot, all the effort to make it so you can manipulate the image buffer
with an image off disk works!

Try out the motion_detection script.
2016-02-27 11:58:37 -05:00
Kwabena W. Agyeman
1121a6f7df Fixed save image.
It now figures out the file type from the file extension. If no file
extension is given it just saves the file as BMP if its not a JPEG image
or JPEG if it's a JPEG image. If you specify an extension and the file is
not of that type then it will give you an error.

The new test_save.py should run until you reach the JPEG image part
where it quits due to lack of JPEG support natively on OV7725 boards.
Maybe JPEG mode should be supoorted by just compressing pictures?
2016-02-26 22:00:04 -05:00
iabdalkader
8b87656241 Update kpts script.
* Draw FPS on framebuffer
2016-02-26 23:14:32 +02:00
iabdalkader
f66757f264 Fix ROI size sent from IDE.
* Rectangle was changed from int to short.
2016-02-26 03:03:29 +02:00
iabdalkader
84e2e1fa0d Update keypoints scripts. 2016-02-26 03:03:08 +02:00
iabdalkader
9f7b370b0e Update face_tracking script.
* Search for new keypoints within a detected face.
* Draw based on matching percentage of keypoints.
2016-02-22 03:32:32 +02:00
iabdalkader
8d4131426d Update face, eye and iris detection scripts. 2016-02-21 23:04:31 +02:00
iabdalkader
baee885cd4 Update eye detection Python script. 2016-02-21 20:39:48 +02:00
Kwabena W. Agyeman
140ceb3b77 Fixed bug in centroid and added tests.
Stuff works. Yay! Moving on to other things now.
2016-02-20 16:04:59 -05:00
Kwabena W. Agyeman
88d9c02a1b Draw keypoints now accepts lists.
Made draw keypoints accept lists of (x, y, angle) tuples. I did this so
it could be used to show object rotation easily.
2016-02-20 16:04:59 -05:00
Kwabena W. Agyeman
b01adfee26 Fixed up drawing code and scripts along with drawing code.
Set pixel works too now.
2016-02-19 22:55:50 -05:00
Kwabena W. Agyeman
a035aae493 Fixed set pixel. 2016-02-19 21:05:02 -05:00
iabdalkader
c4c25c70d9 Fix Enable/Disable JPEG 2016-02-19 18:10:04 +02:00
iabdalkader
19450b8810 Update Python examples 2016-02-19 18:03:20 +02:00
Kwabena W. Agyeman
b27dfde61f Remvoed set pixel code for now. 2016-02-18 23:02:15 -05:00
Kwabena W. Agyeman
bcd5151412 New drawing functions.
All the drawing functions have been updated to handle automatic clipping
when drawing offscren and work with both grayscale and RGB565.
Additionally, all functions now accept color arguments.

I've also updated the example scripts with the new functions and tested
them out to make sure they work.

Additionally, I wrote a test suite for the drawing functions to make
sure they work.
2016-02-18 22:40:12 -05:00
iabdalkader
7f9e95fdd5 Add enable/disable JPEG to preferences dialog. 2016-02-18 05:10:10 +02:00
iabdalkader
6b52c82e39 Add find face+eyes example script 2016-02-17 22:35:29 +02:00
iabdalkader
6b5cdce4aa Update face detection example 2016-02-17 22:09:02 +02:00
iabdalkader
dd7c8809a3 Update MLX Python script. 2016-02-10 17:35:40 +02:00
iabdalkader
dbd69a3a25 Remove framebuffer locking.
* Not needed anymore.
2016-02-09 01:11:25 +02:00
iabdalkader
05144b63b1 Make the IDE handle older FW versions. 2016-02-06 20:10:16 +02:00
iabdalkader
b61ac5f067 Display the correct IDE version. 2016-02-06 19:32:02 +02:00
iabdalkader
eb97a51183 Fix the ABI version to avoid breaking older IDE's 2016-02-06 19:19:55 +02:00
iabdalkader
51390c9326 Update version mismatch error 2016-02-06 18:07:09 +02:00
iabdalkader
cf641af6b0 Add command to return script running flag.
* Return script running flag to disable/enable execute and stop buttons.
* Up ABI version
2016-02-06 17:59:52 +02:00
iabdalkader
cc312c3a53 Draw the last frame when fb is not ready. 2016-02-06 16:11:30 +02:00
iabdalkader
1d932b0b5a Update MLX python scripts 2016-01-25 23:53:46 +02:00
iabdalkader
3eddaa5c10 Update MLX example 2016-01-25 22:32:46 +02:00
iabdalkader
7bccf220c4 Add MLX-LCD example. 2016-01-18 19:34:06 +02:00
iabdalkader
f28d3f6235 Update MLX example 2016-01-18 19:29:50 +02:00
iabdalkader
4ba640a842 Uncomment sensor.reset in blob_detection example 2015-10-04 00:29:20 +02:00
iabdalkader
fc2a5bb1c7 Use python2 to run openmv.py, pydfu.py and openmv-ide.py 2015-10-03 23:53:03 +02:00
iabdalkader
8fd4ea6d16 Add pinout dialog to Help menu. 2015-10-01 23:51:00 +02:00
iabdalkader
f45128955f Move serial port opening to openmv.py 2015-09-27 23:41:25 +02:00
iabdalkader
99884ea399 Fix IDE's Version String. 2015-09-26 00:00:13 +02:00
iabdalkader
29cbe8dc12 Add About Dialog. 2015-09-25 23:53:08 +02:00
iabdalkader
8f747b518d Fix IDE tag name 2015-09-24 01:00:45 +02:00
iabdalkader
9398ae0248 Add check for update
* Add check for latest release in IDE.
2015-09-23 05:04:55 +02:00
iabdalkader
f887659869 Fix default baudrate in openmv example
* Fix baudrate in openmv.py example
2015-09-14 03:25:31 +02:00
iabdalkader
4c065fac6e Fix menuitems underscores
* Issue #36
2015-09-14 03:00:30 +02:00
iabdalkader
cf9c643ca0 Remove unused import 2015-09-14 02:47:27 +02:00
iabdalkader
e81e6d189e Fix style/lang search path 2015-09-11 07:03:10 +02:00
iabdalkader
b03a77a80e Append IDE directory to style search paths 2015-09-11 07:00:45 +02:00
iabdalkader
c1fb84c164 Cleanup PyInstaller spec file 2015-09-10 02:17:26 +02:00
iabdalkader
159ab5dc7e Add BUNDLE attributes 2015-09-09 01:40:08 +02:00
iabdalkader
d47fafbc49 Generate an app for Mac OS X 2015-09-09 01:38:06 +02:00
iabdalkader
8692546dad Add Mac OS X to PyInstaller spec file 2015-09-08 23:09:50 +02:00
iabdalkader
80259c7071 List Mac OS X ttys 2015-09-08 23:04:04 +02:00
iabdalkader
d031ea87f1 Implement set_pixel 2015-08-20 16:25:37 +02:00
iabdalkader
9f4664c2b8 Append version to PyInstaller packages 2015-08-19 18:17:39 +02:00
iabdalkader
3341c894c5 Update PyInstaller Spec file
* Bundle gtksourceview style/lang files
2015-08-19 16:41:21 +02:00
iabdalkader
ddf3a8a232 Disable pyinstaller console. 2015-08-19 00:20:51 +02:00
iabdalkader
161b2d6a43 Increase keypoints threshold 2015-08-15 16:46:31 +02:00
iabdalkader
e04f7ec0fb Disable built-in DFU on Windows 2015-08-14 16:06:42 +02:00
iabdalkader
29af37cb93 Load helloworld.py on start up 2015-08-13 23:14:08 +02:00
iabdalkader
3b45053d84 Remove lib scripts dir 2015-08-13 23:12:14 +02:00
iabdalkader
0b07c82a79 Update examples 2015-08-13 23:09:06 +02:00
iabdalkader
5903859ab5 Fix VREF threshold in self tests script 2015-08-06 23:13:49 +02:00
iabdalkader
0aa9f23d0a Add self-tests script 2015-08-06 12:19:00 +02:00
iabdalkader
a3d1413423 Update colorbar script 2015-08-06 12:16:52 +02:00
iabdalkader
0c9ec07aa7 Update colorbar script 2015-08-04 12:22:12 +02:00
iabdalkader
4b55a1f949 Add colorbar test script 2015-08-04 12:19:01 +02:00
iabdalkader
5c0e6b8710 Increase serial timeout 2015-08-04 10:41:33 +02:00
iabdalkader
be82b952c3 Use timeout_add to lower CPU usage 2015-08-04 10:34:01 +02:00
iabdalkader
730348f98c Use gtk main_quit instead of sys.exit 2015-07-31 15:18:59 +02:00
iabdalkader
ccc4de8488 Revert to numpy 2015-07-31 15:18:41 +02:00
iabdalkader
71d38bcca8 Pull binaries from firmware directory 2015-07-28 20:34:07 +02:00
iabdalkader
c866827e1b Add bundle dir 2015-07-28 20:17:13 +02:00
iabdalkader
85b956554f Add PyInstaller spec file and update mkpkg 2015-07-28 19:51:49 +02:00
iabdalkader
c91ff380ce Check udev file when connecting. 2015-07-18 14:19:33 +02:00
iabdalkader
d691482385 Update connection failure message 2015-07-16 08:16:49 +02:00
iabdalkader
9234a04f68 Fix typo 2015-07-12 04:15:31 +02:00
iabdalkader
80e025dcd7 Append .py when saving files
* Fixes issue #41
2015-07-09 06:36:26 +02:00
iabdalkader
9d51051ba8 Return FR_NO_FILE if built-in cascade not found 2015-07-09 04:38:07 +02:00
iabdalkader
6c1d1ede81 Fix IDE boards names 2015-07-09 03:51:00 +02:00
iabdalkader
b18104abec Fix c header cascade 2015-07-09 03:34:18 +02:00
iabdalkader
645070f11e Add c header cascade option 2015-07-09 02:21:04 +02:00
iabdalkader
50e95cf3d5 Cleanup the cascade generator
* Add command line args
* Add cascade name arg
* Add cascade info arg
2015-07-09 00:30:02 +02:00
iabdalkader
66db27c4c0 Add baudrate setting
* Add a baudrate combo selection
* Add baudrate to config file
* Use 921600 in the default config
2015-07-08 03:29:24 +02:00
iabdalkader
182a844cd2 Add FW version command
* Add FW version command to usbdbg.
* Add FW version function to openmv.py
* Check for major version in the IDE.
2015-07-04 03:44:42 +02:00
iabdalkader
0d0086f6b3 Import pydfu on Linux only for openmv module 2015-07-04 01:54:02 +02:00
iabdalkader
f851600d50 Import pydfu on Linux only 2015-07-04 01:51:58 +02:00
iabdalkader
46d2f9db18 Remove usb imports 2015-07-04 01:48:02 +02:00
Ibrahim Abd Elkader
65bb893790 Merge pull request #48 from dhylands/pydfu-improvement
pydfu - minor improvement in list construction.
2015-07-01 23:44:00 +03:00
Dave Hylands
1790d04c87 pydfu - minor improvement in list construction.
This was a change done by @dpgeorge in the micropython tree and
I'm basically migrating back to openmv.
2015-07-01 12:40:09 -07:00
Dave Hylands
2e27055f69 Fix pydfu.py to work with Beta 1 and Beta 2 versions of PyUSB
In PyUSB 1.0.0.b1, the usb.util.get_string function takes a lenght argument.
In PyUSB 1.0.0.b2, it no longer takes a length argument.

Since python2 seems to come with PyUSB 1.0.0.b1 and python3 seems to come
with 1.0.0.b2, this change allows the same source to work with either
version of PyUSB.
2015-06-21 06:41:01 -07:00
iabdalkader
b8273fec98 Update examples 2015-05-05 14:07:05 +03:00
iabdalkader
95e1ef70c2 Show pop-up menu only when cam is connected
* Fixes #35
2015-05-01 05:13:18 +03:00
iabdalkader
26425fa66e Rollback to gtksourceview 2015-04-30 08:11:50 +03:00
iabdalkader
80740ed910 Catch device disconnected except when exiting DFU 2015-04-29 00:01:59 +03:00
iabdalkader
8fef7ee4a9 Add last firmware path to config file 2015-04-28 22:26:18 +03:00
iabdalkader
0354614d8a Use Python2.7 in IDE 2015-04-28 22:16:42 +03:00
iabdalkader
0215a4ad23 Request text buffer only if buf_len > 0 2015-04-28 22:15:47 +03:00
iabdalkader
cbd37fc360 Remove stop script before exec
* No need to send stop before exec anymore
2015-04-28 22:12:32 +03:00
iabdalkader
b9d96dab42 Fix pydfu/libusb issue
* See https://github.com/walac/pyusb/issues/94
2015-04-22 02:28:12 +02:00
iabdalkader
51907dc7cd Set baudrate once when opening port 2015-02-10 07:01:05 +02:00
iabdalkader
754cce406c Implement debugging over CDC 2015-02-08 11:12:24 +02:00
iabdalkader
62a213522d Remove old test script 2015-02-08 10:42:28 +02:00
iabdalkader
38f4ed963d Fix Typo 2015-02-08 07:26:07 +02:00
iabdalkader
f99ae139ad Fix IDE path in py2exe 2014-11-15 08:16:41 +02:00
iabdalkader
903f524a28 Catch except when releasing dev 2014-11-15 03:37:02 +02:00
iabdalkader
35a7cb47f7 Return string COM ports for Windows 2014-11-10 22:55:11 +02:00
iabdalkader
ebb884b174 Set preferences dialog title 2014-11-10 22:50:18 +02:00
iabdalkader
acf0c7b17e Move config file and user scripts to home dir 2014-11-10 22:12:30 +02:00
iabdalkader
02777986c1 Fix warning about disconnected device 2014-11-10 21:59:50 +02:00
iabdalkader
7dfc2f0f24 Add preferences dialog, serial port enumeration 2014-11-10 21:58:41 +02:00
iabdalkader
5f58d6e3d6 Remove QT IDE 2014-11-10 20:44:00 +02:00
iabdalkader
6a0af1f3c3 Use separate configs for cdc/hid and debug
* This is the only solution that works with libusb on Windows
* Soft-disconnect is used to switch between configs
2014-11-10 19:36:34 +02:00
iabdalkader
2ea5a6e639 Use appdirs to manage file paths 2014-11-10 01:36:10 +02:00
iabdalkader
7fa3142d71 Catch except when serial is closed 2014-11-06 15:15:01 +02:00
iabdalkader
40d43a2a8c Add OMV Debug Interface 2014-11-06 15:14:33 +02:00