Skip to content

Commit 5339d43

Browse files
new update
1 parent c06672e commit 5339d43

15 files changed

+146
-36
lines changed

.github/workflows/build.yml

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
name: build site using Pelican
22
on:
3-
push:
4-
branches: [master]
5-
paths-ignore:
6-
- code/**
3+
workflow_dispatch:
74
jobs:
85
build-main:
96
runs-on: ubuntu-latest

aaaa/updates/almost_there.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ Title: It works!... almost
22
Date: 2023-01-09
33
Series: arduino-testing
44

5-
Today I fiddled around with the Armdroid and the patch cable I made to connect the Armdroid's parallel port to my Arduino. After working out the pin numbers, I was able to get motors to run.
5+
Today I fiddled around with the Armdroid and the patch cable I made to connect the Armdroid's parallel port to my Arduino. After working out the pin numbers (it turned out to be the same as what I had found online), I was able to get motors to run.
66

7-
Originally I was using a cheap 2-amp-max bench power supply and occasionally the Arduino would glitch and a motor would start wiggling randomly. Doing some quick calculations with the Armdroid's power demands (6 motors, 2 phases each, 0.3 amps per phase) showed that the Armdroid was potentially drawing 3.6 amps, way more than the rated 2 amps of the power supply I was using, and so the voltage was probably drooping enough to cause the Arduino to go haywire.
7+
Originally I was using a cheap 2-amp bench power supply from my engineering teacher and occasionally the Arduino would glitch and a motor would start stuttering randomly. Doing some quick calculations with the Armdroid's power demands (6 motors, 2 phases each, 0.3 amps per phase) showed that the Armdroid was potentially drawing 3.6 amps, way more than the rated 2 amps of the power supply I was using, and so the voltage was probably drooping enough to cause the Arduino to brown-out.
88

9-
I dug out the large 12-volt NiMH battery pack that I was already planning on using for the Armdroid and hooked it up. This battery was rated for 20 amps maximum (ten times the mximum power output of the power supply) and everything worked nicely. Almost.
9+
I dug out the large 12-volt NiMH battery pack that I was already planning on using for the Armdroid and hooked it up. This battery was rated for 20 amps maximum (ten times the maximum power output of the power supply) and everything worked nicely. Almost.
1010

11-
While I was fiddling around with it I was able to determine which port address controlled to which motor. I was able to determine 6 of the 8 motor numbers from fiddling with it, and wrote them into the code with the joysticks module I had made up on a breadboard so I could control the Armdroid. I took a guess on the other two motors.
11+
While I was fiddling around with it I was able to determine which port address controlled to which motor. I was able to determine 6 of the 8 motor numbers from fiddling with it, and wrote them into the code with the joysticks module I had made up on a breadboard so I could control the Armdroid. I took a guess on the other two motors.
1212

1313
Unfortunately, one motor still didn't work. Either I guessed wrong and I was sending the signal to the wrong motor port, or the motor was physically malfunctioning. The `WRIST_RIGHT` motor would not turn, and I do not really know why.
1414

aaaa/updates/circuit1.md

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
Title: Circuit Work, part 1
22
Series: circuit-work
33
Date: 2022-09-21
4+
Modified: 2023-04-14
45

5-
Todat I started to work out the circuit of the small control board in the conveyor belt, before I tackled the larger circuit board in the Armdroid itself. There are pictures of this circuit board on the [conveyor images page]({filename}../info/images/conveyor.md).
6+
Today I started to work out the circuit of the small control board in the conveyor belt, before I tackled the larger circuit board in the Armdroid itself. There are pictures of this circuit board on the [conveyor images page]({filename}../info/images/conveyor.md).
67

78
First, I worked out the power supply. This is the entire top half of the board, and the traces are very wide, as the motor is very power-hungry:
89

@@ -14,6 +15,6 @@ Next is the 555 timer clock circuit:
1415

1516
![clock]({attach}555_clock_circuit.png)
1617

17-
Again, this is a very common circuit to generate a clock signal. The chosen values for the resistors cause the circuit to oscillate at 47 Hz for low speed (only R4 connected), 168 Hz for medium speed (R3 & R4 in parallel) and 252 Hz for high (R2 & R4 in parallel), according to the Falstad simulator.
18+
Again, this is a very standard circuit to generate a clock signal using a 555 timer. The chosen values for the resistors cause the circuit to oscillate at 47 Hz for low speed (only R4 connected), 168 Hz for medium speed (R3 & R4 in parallel) and 252 Hz for high (R2 & R4 in parallel), according to the Falstad simulator. (It uses a lot fo power in my opinion. If R2, R3, R4, and R5 were swapped out for 1kΩ, 4.7kΩ, 27kΩ, and 10kΩ, and C6 changed to 0.47µF, it would still oscillate at the same frequencies while using only 10% of the power as the existing circuit.)
1819

1920
I have not been able to work out the circuit of the latches and motor driver yet. It's hard because some of the traces are hidden under the IC sockets. Hopefully I will figure it out soon.

aaaa/updates/disassembly.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ Today I finished disassembling the broken Armdroid. It is now a pile of pieces,
55

66
![pieces]({attach}armdroid_disassembled.png)
77

8-
(The close observer may notice the base is missing. I forgot about that because I had taken it off earlier to test the motors and reverse engineer the circuit board. Oops!)
8+
(The close observer may notice the base and circuit board are missing from this photo. I forgot about that because I had taken them off earlier to test the motors and reverse engineer the circuit board. Oops!)
99

10-
Additionally, I made some more progress trying to get the Armdroid to actually work. The two-pin GX16 connector doesn't have a matching power cord anywhere I would know of, so I pulled it off from the power wire and replaced it with a two-terminal Anderson connector, leftover ffrom my school's now-defunct FTC team.
10+
Additionally, I made some more progress trying to get the Armdroid to actually work. The two-pin GX16 connector doesn't have a matching power cord anywhere I would know of, so I pulled it off from the power wire and replaced it with a two-terminal Anderson connector, leftover from my school's now-defunct FTC team.
1111

1212
![wire]({attach}armdroid_wire_fix.png)
1313

14-
The FTC team left behind a bunch of 12 volt, 3000 mAh batteries, plus chargers, that I am pretty sure would be more than sufficient to power the Armdroid. We'll see if they work.
14+
The FTC team left behind a bunch of 12 volt, 3000 mAh batteries, plus chargers, that I am pretty sure would be more than sufficient to power the Armdroid. I'll see if they work.

aaaa/updates/investigation.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ Modified: 2022-09-23
55

66
A couple days ago it finally dawned on me that I hadn't tested the power supply inside the [conveyor belt](/armdroid/page/images/conveyor.html) that came with the Armdroid. So I plugged everything together and turned it on.
77

8-
The motor started making a "d-d-d-d-d-d-d-d-d-d-d-d" sound like it was trying to move, and when I (carefully!) removed the cover with the motor on, I could see that it was indeed trying to move, but something was wrong and it was jumping backwards every cycle. I didn't really know what was going on, but unfortunately the bell rang at the end of lunch and I had to go to fifth period.
8+
The motor started making a buzzing sound like it was trying to move, and when I (carefully!) removed the cover with the motor on, I could see that it was indeed trying to move, but something was wrong and it was jumping backwards every cycle. I didn't really know what was going on, but unfortunately the bell rang at the end of lunch and I had to go to fifth period.
99

10-
Today I pulled the little circuit board off the plastic standoffs it was attached to and had a look at it. Back when I opened the front cover to get the pictures of it, the heatsunk chip popped out of its socket, and so I absentmindedly smushed it back in. It turns out that one of its pins had missed the hole in the socket when I had done that and was not connected, hence the missing step in the driver cycle. And the out-of-place pin was hiding between the socket and the stepper motor's plug next to it, where I could not see without taking the board out. Sneaky sneaky.
10+
Today I pulled the little circuit board off the plastic standoffs it was attached to and had a look at it. Back when I opened the front cover to get the pictures of it, the heatsunk chip popped out of its socket, and so I absentmindedly jammed it back in. It turns out that one of its pins had missed the hole in the socket when I had done that and was not connected, hence the missing step in the driver cycle. And the out-of-place pin was hiding between the socket and the stepper motor's plug next to it, where I could not see it without taking the board out. Oops!
1111

1212
After fixing the chip's pin, the motor ran just fine. On "high" it ran about 60 RPM (and with 200 steps per revolution, that's 200 Hz for the clock if each step takes one oscillation of the clock), on "medium" it ran about 40 RPM, and "low" was 20 RPM (3 seconds per revolution).
1313

aaaa/updates/testing.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ After my [investigation]({filename}investigation.md) with the conveyor belt, I t
66

77
I took the accessory motor port out of the broken Armdroid and used it to connect the turntable followed by the screw slider to the conveyor belt's control board. And the weird thing was, no matter how I set the switches on the control panel, (fast/medium/slow, forward/reverse, etc) the motors would just refuse to run. They just made the same "d-d-d-d-d-d-d-d-d-d-d-d" sound like they were trying to move.
88

9-
I double checked all the connections, and they were okay. I double checked the ~~ULN2003A~~ (EDIT: that was an incorrect assumtion!), and it had all of its pins in its socket (and was getting quite hot, thus the heatsink). There's clearly something I am missing.
9+
I double checked all the connections, and they were okay. I double checked the ~~ULN2003A~~ (EDIT: that was an incorrect assumption!), and it had all of its pins in its socket (and was getting quite hot, thus the heatsink). There's clearly something I am missing.

aaaa/updates/working.md

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
Title: 3 pins? Yes?
2+
Date: 2023-04-14
3+
4+
It's been quite a while since I last shared an update. But then again, not much has happened since then, either.
5+
6+
I figured out how to remove the claw from its mounting on the wrist joint, and replaced it with the old-style three finger gripper from the spare-parts Armdroid. And, as I had read elsewhere, it looked very creepy and lifelike when I operated it -- that is, until one of the three strings connected to the fingers snapped (it had probably dry-rotted) and rendered the whole claw useless and I was forced to reinstall the standard 2-finger gripper.
7+
8+
I also was able to install the new Anderson-connector power adapter I had made up [earlier]({filename}disassembly.md), and
9+
10+
The Arduino program I initially wrote still worked, and it worked very well for what it did. Unfortunately I have not yet been able to add any sort of autonomous movement, but I don't think that would be too difficult. The only downside is that trigonometry on the Arduino is very slow -- although it can can be sped up a lot from the default.
11+
12+
The original interface to the Armdroid I made used a parallel port, which occupied 8 pins of the Arduino and I really couldn't do much else (sensors, etc). I also didn't have any serial-in parallel-out pin expander chips to be able to reduce the pin usage of the Arduino.
13+
14+
Then my engineering teacher taught us about shift registers and how they are made out of flip-flops... and I remembered that I had a spare Armdroid circuit board lying around, which conspicuously uses eight quad D flip flop integrated circuits ([74LS175](/armdroid/info/resources/datasheets/74LS175-d-flip-flop.pdf)) to hold the bits for the stepper motors. Since I didn't need the circuit board, I pulled out two of them (thank God for the IC sockets!) and started wiring them up into a shift register. I also wrote [some Arduino code](https://github.com/dragoncoder047/armdroid/blob/c06672e7eefa750ace01bf089cd30fd8e7fa89f4/code/armdroid-class/armdroid.hpp#L33-L71) to interface it to the homebrew shift register. I haven't completely wired it up yet, but I'm crossing my fingers it will work. In theory it should.

build.py

100644100755
File mode changed.

updates/2022/circuit-work-part-1.html

+5-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)