Suet Fai Kan Herbalist
budchoo.com online store
P A N G  Industries
Content last updated:
August 20, 2018 12:57

pang@budchoo.com

Featured site of the day on

[ Budchoo Lab ]
Powered by
P A N G Industries 中文版
P A N G  Industries CompTIA A+ Certification
View Pang Industries's profile on LinkedIn
Waveform of the Joule Thief I built.
LED driving
Time in a can
RGB color mixer
Old code
- written independently during college education
Robotic motor control
- Tone activated actuators controlled by disposable phone App
Monster Clicker
- Parallel port Learning IR Remote
- An exercise in "dead bug soldering"
Mobile software development 0.1
Mobile software Development 0.2
Android Development 0.2
High Voltage Power Supply
Connector Babel

Computer Controlled Holiday Lights

The Programmable
Computer Controlled
Remote Control Car
project (PCCRCC)

These days we will probably call this ADM -
Autonomous Drone Management.


Introduction from 2001:
Computer controlled RC car, CPU interfaces with controller with a bunch of switching transistors. Can preprogram course of action just like a NASA interplanetary probe. May add feedback circuit later on if I can have the necessary radio channels.

Update(051601) on the computer controlled RC car, it is done, the documentation is also done, just needs a little organizating and uploading before you can see how it was put together. It has worked for a couple of months now, but due to lack of input, all the CPU can do is either control the little RC car wirelessly in a preprogrammed course or generate random movements. As you might have guess, this gets old quick. Unfortunately, due to the size of the slave vehicle, it is difficult to provide realtime telemetry. So I cheated on the implementation in feedback. I put a light source on the vehicle and added a light sensor to the base station. In a dark testing environment, when the CPU sees light, it knows the vehicle is close by, and can then control the vehicle accordingly. As of last night it controls the car only on one axis: come closer if you are too far, and back off if you are too close. Experimentation yielded an acceptible equilibrium where the vehicle will hunt around, moving closer and then further until it reaches the acceptible position. 

Update update (052101) The light hunting algorithm has been improved with a little fuzzy logic, instead of moving a fixed amount until the optimal distance is reached, it now knows how far off it is and adjusts its movement accordingly. i.e. instead of going back and forth with the intelligence of a thermostat, it now applies just the right amount of movement until it get there and stays there. Less fun to watch it run but it is easier on the batteries. One problem with fuzzy logic though, instead of stopping at precisely the exact place, it seems sometimes decide "arhh, that's close enough, never mind the details" and stop very close to the mark but not quite there. I'll upload some graphs later to explain better. At this stage, I have to decide whether to let the program know it can also do turns and implement that or stay with one dimension and make the thing learn about fuzzy logic by itself, and see if it will evolve it. And as my buddy has suggested, it's probably time to migrate the whole thing to a laptop PC rather than sticking with the APPLE IIe.

More elaborate algorithm to come, as the goal is to have the car wander around a two dimensional plane and be able to figure out by itself where it needs to go, how to get there, and if the AI is there, learn from its own experience. All with just the feedback of one single photoresister. The Holy Grail would be to have the machine learn a la WOPR/Joshua in "War Games," i.e. being able to learn from experience and spontanously attempt to apply learned knowledge to other topics. (Maybe even teach its creater a thing or two.) One thing is certain, I don't want a HAL9000, let it learn, let it make philosophical decisions, but three basic laws or not, thou shalt not kill thy creater.

Note from 2014, people still dream about AI.

The Programmable
Computer Controlled
Intelligent Battery Charger
project (PCCIBC)

Introduction from 2001 when it was first built.

It was designed for a loud-music-junkie pal of mine who had so many amps hooked up to his battery / charger it kills the both of them without something like this. The system monitors the discharge rate, and for now, when it notices the voltage gets too low, will turn on the charger until the voltage indicates the battery is fully charged.

The system uses a home brewed optical coupler to monitor the battery voltage and protect the Apple IIe. And a Triac to turn the line voltage on and off to the charger. (I built the triac circuit to flash "marry christmas" in morse code with the christmas lights last december. It works with any 110V appliance up to 6amps, that's like 600+Watt, plenty.)

An easy software upgrade would be to use simple linear regression to predict when the battery will die at the current discharging rate. To enable it to see dimly into the future, so to speak, so it will turn on the charger before you even know it was needed =) For the same token, it will then be able to tell, at the current charging rate, how much longer until the charging will be done. (That one shouldn't be linear tho, but if we let the apple do it repeatedly at small time intervals, we'll still have a pretty good estimate.) Yeah, I could use all them fancy algorithms I learned in econometrics and multiple weirdo regressions to let it really crunch the future, maybe later. 

I say easy because the code now already plots on the screen the charge/discharge rate. The computer just doesn't know it has access to the curve yet. (Right now it just plots it one point at a time.)

Oh yeah, this is one of the first projects of Pang Industries. Again, it is just a prototype, once I can work out the requirements to replace the apple's job with a cheap microcontroller, then we might see this on sale.

Advanced Model Railroad power supply.

To our new friends at the awesome Historical Railway Society,
here are the files that I have for a transistorized power supply / speed controller - the Cooler Crawler by Ken Willmott and Rich Weyand. The reason this controller is different, maybe slightly safer for kids, is because instead of turning a lever to set power level valve style, you would control the speed like one would on a cruise control in a car. A push button will allow you to hold to increase speed, when you release it it will more or less stay at that speed, a second button will decrease the power / speed. A cancel / emergency stop that will cut power, and a switch for reversing direction. Since you cannot just slam a lever to max, you have to press and hold a button for the speed to gradually pick up, it actually performs more like a real heavily loaded train.

I will do a write up on my implementation and my understanding of how it works in a few days. Here is what they say on trains.com The circuit provides some pretty precise control. And hopefully I can have some other useful designs too I/O wise, like the IR and WiFi ideas we talked about. Thanks for your hospitality and letting Nathan and Willie play on your layout for so long.

Interesting side note: The components used in this project was sourced from the legendary Mike Quinn Electronics, shortly before the place was closed.
Unsolicited Commentary: There is a reason why pretty much all manfacturing of gadgets (along with the skilled jobs with it) are moving overseas. What once was the supplier of the digital revolution, experimentation, and innovation is becoming an endangered species.

Unless noted otherwise, graphics and text and designs are all Copyright (c) P A N G Industries.
Trademarks are the properties of their respective owners.
Please Contact us if you claim ownership of content and wish to have them removed.


Post your comments here.
071515 21:44:52
011216 10:03:27
011216 10:09:34
011516 13:34:51 Testing
011516 13:42:20
011516 13:42:28 Testing
021816 23:46:59
021816 23:54:20
030716 20:43:47
030716 20:43:48
032116 13:53:05
032116 14:00:51
041916 18:35:38
041916 18:38:39
051016 23:17:41
051016 23:24:44
061116 13:02:03
061116 13:07:45
061416 19:00:34
061416 19:07:43
070816 17:58:13
070816 18:04:06
091316 17:05:33
091416 18:32:36
091416 18:39:13
101316 1:53:47
101316 2:00:26
110916 23:14:00
110916 23:20:18
121916 23:57:38
122016 0:02:52
010517 3:10:09
010517 3:17:39
031517 17:19:44
040817 1:34:05
051617 2:37:28
051617 2:44:40
062617 15:33:04
071117 16:59:17
071117 18:53:46
071117 19:00:48
071117 20:39:09
071117 20:46:16
071317 23:01:00
071317 23:01:04
072817 14:47:42
081217 3:12:34
082617 15:30:05
091017 3:07:31
091217 20:23:29
091217 20:29:10
092417 20:30:14
092417 20:31:11
092417 20:34:17
092917 17:38:16
100617 21:13:21
100617 21:17:58
100917 18:33:07
100917 18:34:12
100917 18:35:56
101617 11:20:00
102617 13:22:59
102617 13:24:59
102617 13:29:23
103117 12:51:40
110317 21:49:30
111017 17:11:05
111017 17:21:25
111017 17:21:29
111617 14:50:53
112617 13:26:10
112617 13:30:09
112617 13:30:17
112617 13:32:18
120117 17:08:03
120617 21:37:11
120617 21:43:07
121217 4:01:54
121217 4:04:12
121217 4:09:50
121717 1:56:05
122617 23:52:25
122617 23:53:37
122617 23:55:30
010118 1:35:08
010918 23:58:05
011018 0:08:49
011018 23:09:30
011018 23:10:14
011018 23:18:42
011518 23:50:02
012618 4:33:04
012618 4:39:25
012618 4:40:25
013118 2:15:43
021018 4:12:18
021018 4:18:14
021118 1:08:34
021118 1:13:59
021118 1:26:55
021118 7:17:15
021118 7:18:47
021118 7:22:47
021618 12:16:59
030218 17:21:41
030218 17:24:53
030218 17:25:26
030818 4:53:33
031318 9:41:11
031318 9:46:43
050418 21:25:54
050418 21:35:22
050718 13:25:05
050718 13:36:53
050718 13:59:59
050718 14:05:54
050718 14:19:47
050718 14:20:02
050718 14:22:24
051618 9:10:28
051618 9:22:23
051618 9:49:54
051618 10:02:39
051618 10:07:59
051618 10:13:10
051618 10:16:26
061318 0:40:38
061318 0:53:42
061318 1:05:37
061318 10:32:50
061318 10:46:29
061318 10:57:27
061318 11:09:38
061318 11:21:02
061318 11:32:43
061318 13:25:48
061318 13:37:25
061318 13:59:28
061318 14:09:17
061318 14:17:13
061318 14:19:59
061318 14:20:08
061318 16:10:43
061318 16:24:17
061318 16:49:13
061318 16:56:06
061318 17:08:49
061318 17:21:49
061318 17:30:02
061318 17:45:19
061318 18:02:37
061318 18:05:12
070718 13:01:03
070718 13:14:02
070718 13:35:40
070718 13:47:31
070718 13:51:45
070718 13:56:39
070718 14:00:12
080318 1:02:50
080318 1:14:21
080318 2:43:39
080318 3:25:29
080318 3:48:04
080318 3:59:53
080318 4:22:45
080318 4:39:40
080318 4:42:11
080618 10:38:15
080618 10:52:32
080618 11:06:08
080618 11:19:00
080618 12:01:35
080618 12:01:44
080618 12:21:14
080618 12:26:14
080618 12:39:22
080618 13:01:07
080618 13:20:02
080618 13:22:32
091118 11:56:38
091118 12:07:59
091118 12:30:50
091118 12:42:06
091118 12:56:02
091218 16:11:40
091218 16:14:42
091218 16:20:10
091218 16:22:04
091218 16:23:52
091218 16:24:29
091218 16:29:47
091418 11:21:00
091418 11:28:27
091418 11:42:10
091418 11:46:58
091418 11:51:23
091418 11:52:57
091418 12:16:21
091418 12:22:19

>