Agent of despair: Machinic, precise and uncompromising - a randomly picked coloured coin for input that corresponds to an embedded principle of class for output, Red is 'very, very bad', Green is 'very good' and Blue is 'ok'.
In the 80's, for many working class families, the Gas Meter Box became the Gateway between warmth and cold, similarly the Internet Gateway is following suit. Not happy with access discrepancies as they are, mr donald trump has now repealed laws that were put in place to protect net neutrality.
Initial "rough" sketching.
Both the prototyping and final internal structures were made using card, this was mainly because of the complexity and precision needed to insure the platform reader within the box could be made quickly. And because the structural design became as complicated as the code, I decided to go with a hybrid of Card, PLA and Ply for the final work. In the future, I will continue to use card for complex structure but would definitely use some stronger for the finshed work.
Below is an extract from a file I kept to track my progress. I have included extracts from the sub headings:
- Technical Notes/Comments.
- Create LCD code and converge into TCS34725.
- Converge Servo library into code.
- Create an enclosure.
- Create a jumper board for RGB sensor and the LCD screen.
- Create Tokens.
- Create Chassis and internal mechanism.
- Pseudocode: Pseudocode allows for a free flowing interpretation of something (process) into an algorithm without having to worry about syntax.
1 Take a coloured token and put into a box.
2 Box reads the colour of the token.
3 Screen will display a message based on the colour of the token.
4 Addition (with time) Add a motor so token are released after a colour has been registered.
Pseudo Code refined.
1.1 Read colour token into (X).
1.2 Store variable for later use.
2.1 Make a decision based on (X).
3.1 Output a string message based on decision process using (X). tcs.getRawData(&r, &g, &b, &c); (Understand this function (is it a function?))
4.1 Display text for at least 10 secs and then release token.
4.2 Drop token using a servo motor (am forewanerned there may be a Library clash in respect of timing with the servo.h and liquidcrystal.h libraries).
Pseudo Code refined again.
1.1.1 Use a function to read colour, essentially the R, G, B values.
3.1.1 Randomize output from 3 different catagories. Class A, Class B and Class C.
4.1.1 Use a delay function for the servo.
4.2.1 Move server at 180 degree angle and back again.
- Troubleshooting. (RGB Sensor with LCD and Arduino)
f. Translate numerical values to text strings. The value of r (r >= 14000 && r <=17000) based on a specific colour and with a given proximity of 5mm from TCS34725 Sensor. **This does not take into consideration the enclosure (yet to be made)**
RESULT: No translation required. I merely use string statements based on the ranges that I have set.
g. Print text to LCD to insure there are no overlooked issues with perhaps type or the library LiquidCrystal.h
Comment out all Serial.print and Lcd.print leaving the above IF statement to insure that the decision making is operational.
RESULT: A string prints to LCD based on whether the IF statements is TRUE or FALSE.
h. Add a motor the board and test.
SERVO MOTOR INTERGRATION (troubleshooting).
a. Include the library Servo.h and create an instance Servo.myServo.
RESULT: Program compiles.
b. Tell arduino what myServo is attached to Pin(9). myServo.attach(9);
- SERVO MOTOR INTERGRATION (troubleshooting).
https://www.sparkfun.com/datasheets/LCD/ADM1602K-NSW-FBS-3.3v.pdf (LCD DataSheet)
https://www.youtube.com/watch?v=durXAuJWGk4 (Great Fritizing video, from 0 to manufacturer).
https://www.youtube.com/watch?v=imQTCW1yWkg (Home made PCB).
https://newdisplay.en.alibaba.com/product/60496105660-803203904/Monochrone_character_lcd_module_16x2_lcd_display_panel_NDS1602A_V2.html (LCD Datasheet).
Fritzing & Component DataSheet Extracts
Component, Breadboard & Schematic.
Extending the breadboard with soldered strip board connectors.